org.neo4j.kernel.ha
Class MasterClient

java.lang.Object
  extended by org.neo4j.com.Client<Master>
      extended by org.neo4j.kernel.ha.MasterClient
All Implemented Interfaces:
org.jboss.netty.channel.ChannelPipelineFactory, Master

public class MasterClient
extends org.neo4j.com.Client<Master>
implements Master

The Master a slave should use to communicate with its master. It serializes requests and sends them to the master, more specifically MasterServer (which delegates to MasterImpl on the master side.


Nested Class Summary
protected static class MasterClient.AcquireIndexLockSerializer
           
protected static class MasterClient.AcquireLockSerializer
           
static class MasterClient.HaRequestType
           
 
Nested classes/interfaces inherited from class org.neo4j.com.Client
org.neo4j.com.Client.ConnectionLostHandler
 
Field Summary
protected static org.neo4j.com.Deserializer<LockResult> LOCK_RESULT_DESERIALIZER
           
 
Fields inherited from class org.neo4j.com.Client
DEFAULT_MAX_NUMBER_OF_CONCURRENT_CHANNELS_PER_CLIENT, DEFAULT_READ_RESPONSE_TIMEOUT_SECONDS, NO_STORE_ID_GETTER
 
Constructor Summary
MasterClient(String hostNameOrIp, int port, org.neo4j.kernel.impl.util.StringLogger stringLogger, org.neo4j.com.StoreIdGetter storeIdGetter, org.neo4j.com.Client.ConnectionLostHandler connectionLostHandler, int readTimeoutSeconds, int lockReadTimeout, int maxConcurrentChannels)
           
 
Method Summary
 org.neo4j.com.Response<LockResult> acquireGraphReadLock(org.neo4j.com.SlaveContext context)
           
 org.neo4j.com.Response<LockResult> acquireGraphWriteLock(org.neo4j.com.SlaveContext context)
           
 org.neo4j.com.Response<LockResult> acquireIndexReadLock(org.neo4j.com.SlaveContext context, String index, String key)
           
 org.neo4j.com.Response<LockResult> acquireIndexWriteLock(org.neo4j.com.SlaveContext context, String index, String key)
           
 org.neo4j.com.Response<LockResult> acquireNodeReadLock(org.neo4j.com.SlaveContext context, long... nodes)
           
 org.neo4j.com.Response<LockResult> acquireNodeWriteLock(org.neo4j.com.SlaveContext context, long... nodes)
           
 org.neo4j.com.Response<LockResult> acquireRelationshipReadLock(org.neo4j.com.SlaveContext context, long... relationships)
           
 org.neo4j.com.Response<LockResult> acquireRelationshipWriteLock(org.neo4j.com.SlaveContext context, long... relationships)
           
 org.neo4j.com.Response<IdAllocation> allocateIds(org.neo4j.kernel.IdType idType)
           
 org.neo4j.com.Response<Long> commitSingleResourceTransaction(org.neo4j.com.SlaveContext context, String resource, org.neo4j.com.TxExtractor txGetter)
           
 org.neo4j.com.Response<Void> copyStore(org.neo4j.com.SlaveContext context, org.neo4j.com.StoreWriter writer)
           
 org.neo4j.com.Response<Void> copyTransactions(org.neo4j.com.SlaveContext context, String ds, long startTxId, long endTxId)
           
 org.neo4j.com.Response<Integer> createRelationshipType(org.neo4j.com.SlaveContext context, String name)
           
 org.neo4j.com.Response<Void> finishTransaction(org.neo4j.com.SlaveContext context, boolean success)
           
 org.neo4j.com.Response<org.neo4j.helpers.Pair<Integer,Long>> getMasterIdForCommittedTx(long txId, org.neo4j.kernel.impl.nioneo.store.StoreId storeId)
          Gets the master id for a given txId, also a checksum for that tx.
protected  int getReadTimeout(org.neo4j.com.RequestType<Master> type, int readTimeout)
           
 org.neo4j.com.Response<Void> initializeTx(org.neo4j.com.SlaveContext context)
          Called when the first write operation of lock is performed for a transaction.
 org.neo4j.com.Response<Void> pullUpdates(org.neo4j.com.SlaveContext context)
           
protected static IdAllocation readIdAllocation(org.jboss.netty.buffer.ChannelBuffer buffer)
           
 void rollbackOngoingTransactions(org.neo4j.com.SlaveContext context)
           
protected  boolean shouldCheckStoreId(org.neo4j.com.RequestType<Master> type)
           
 
Methods inherited from class org.neo4j.com.Client
closeChannel, getInternalProtocolVersion, getMyStoreId, getPipeline, readTransactionStreamHeader, readTransactionStreams, releaseChannel, sendRequest, sendRequest, shutdown, storeIdGetterForDb, toString, writeContext
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.neo4j.kernel.ha.Master
shutdown
 

Field Detail

LOCK_RESULT_DESERIALIZER

protected static final org.neo4j.com.Deserializer<LockResult> LOCK_RESULT_DESERIALIZER
Constructor Detail

MasterClient

public MasterClient(String hostNameOrIp,
                    int port,
                    org.neo4j.kernel.impl.util.StringLogger stringLogger,
                    org.neo4j.com.StoreIdGetter storeIdGetter,
                    org.neo4j.com.Client.ConnectionLostHandler connectionLostHandler,
                    int readTimeoutSeconds,
                    int lockReadTimeout,
                    int maxConcurrentChannels)
Method Detail

getReadTimeout

protected int getReadTimeout(org.neo4j.com.RequestType<Master> type,
                             int readTimeout)
Overrides:
getReadTimeout in class org.neo4j.com.Client<Master>

shouldCheckStoreId

protected boolean shouldCheckStoreId(org.neo4j.com.RequestType<Master> type)
Overrides:
shouldCheckStoreId in class org.neo4j.com.Client<Master>

allocateIds

public org.neo4j.com.Response<IdAllocation> allocateIds(org.neo4j.kernel.IdType idType)
Specified by:
allocateIds in interface Master

createRelationshipType

public org.neo4j.com.Response<Integer> createRelationshipType(org.neo4j.com.SlaveContext context,
                                                              String name)
Specified by:
createRelationshipType in interface Master

initializeTx

public org.neo4j.com.Response<Void> initializeTx(org.neo4j.com.SlaveContext context)
Description copied from interface: Master
Called when the first write operation of lock is performed for a transaction.

Specified by:
initializeTx in interface Master

acquireNodeWriteLock

public org.neo4j.com.Response<LockResult> acquireNodeWriteLock(org.neo4j.com.SlaveContext context,
                                                               long... nodes)
Specified by:
acquireNodeWriteLock in interface Master

acquireNodeReadLock

public org.neo4j.com.Response<LockResult> acquireNodeReadLock(org.neo4j.com.SlaveContext context,
                                                              long... nodes)
Specified by:
acquireNodeReadLock in interface Master

acquireRelationshipWriteLock

public org.neo4j.com.Response<LockResult> acquireRelationshipWriteLock(org.neo4j.com.SlaveContext context,
                                                                       long... relationships)
Specified by:
acquireRelationshipWriteLock in interface Master

acquireRelationshipReadLock

public org.neo4j.com.Response<LockResult> acquireRelationshipReadLock(org.neo4j.com.SlaveContext context,
                                                                      long... relationships)
Specified by:
acquireRelationshipReadLock in interface Master

acquireGraphWriteLock

public org.neo4j.com.Response<LockResult> acquireGraphWriteLock(org.neo4j.com.SlaveContext context)
Specified by:
acquireGraphWriteLock in interface Master

acquireGraphReadLock

public org.neo4j.com.Response<LockResult> acquireGraphReadLock(org.neo4j.com.SlaveContext context)
Specified by:
acquireGraphReadLock in interface Master

acquireIndexReadLock

public org.neo4j.com.Response<LockResult> acquireIndexReadLock(org.neo4j.com.SlaveContext context,
                                                               String index,
                                                               String key)
Specified by:
acquireIndexReadLock in interface Master

acquireIndexWriteLock

public org.neo4j.com.Response<LockResult> acquireIndexWriteLock(org.neo4j.com.SlaveContext context,
                                                                String index,
                                                                String key)
Specified by:
acquireIndexWriteLock in interface Master

commitSingleResourceTransaction

public org.neo4j.com.Response<Long> commitSingleResourceTransaction(org.neo4j.com.SlaveContext context,
                                                                    String resource,
                                                                    org.neo4j.com.TxExtractor txGetter)
Specified by:
commitSingleResourceTransaction in interface Master

finishTransaction

public org.neo4j.com.Response<Void> finishTransaction(org.neo4j.com.SlaveContext context,
                                                      boolean success)
Specified by:
finishTransaction in interface Master

rollbackOngoingTransactions

public void rollbackOngoingTransactions(org.neo4j.com.SlaveContext context)

pullUpdates

public org.neo4j.com.Response<Void> pullUpdates(org.neo4j.com.SlaveContext context)
Specified by:
pullUpdates in interface Master

getMasterIdForCommittedTx

public org.neo4j.com.Response<org.neo4j.helpers.Pair<Integer,Long>> getMasterIdForCommittedTx(long txId,
                                                                                              org.neo4j.kernel.impl.nioneo.store.StoreId storeId)
Description copied from interface: Master
Gets the master id for a given txId, also a checksum for that tx.

Specified by:
getMasterIdForCommittedTx in interface Master
Parameters:
txId - the transaction id to get the data for.
storeId - clients store id.
Returns:
the master id for a given txId, also a checksum for that tx.

copyStore

public org.neo4j.com.Response<Void> copyStore(org.neo4j.com.SlaveContext context,
                                              org.neo4j.com.StoreWriter writer)
Specified by:
copyStore in interface Master

copyTransactions

public org.neo4j.com.Response<Void> copyTransactions(org.neo4j.com.SlaveContext context,
                                                     String ds,
                                                     long startTxId,
                                                     long endTxId)
Specified by:
copyTransactions in interface Master

readIdAllocation

protected static IdAllocation readIdAllocation(org.jboss.netty.buffer.ChannelBuffer buffer)


Copyright © 2002-2012 The Neo4j Graph Database Project. All Rights Reserved.