Package org.jgroups.protocols
Class COUNTER
- java.lang.Object
-
- org.jgroups.stack.Protocol
-
- org.jgroups.protocols.COUNTER
-
public class COUNTER extends Protocol
Protocol which is used byCounterServiceto provide a distributed atomic counter- Since:
- 3.0.0
- Author:
- Bela Ban
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classCOUNTER.AddAndGetRequestprotected static classCOUNTER.BooleanResponseprotected static classCOUNTER.CompareAndSetRequeststatic classCOUNTER.CounterHeaderprotected classCOUNTER.CounterImplprotected static classCOUNTER.DeleteRequestprotected static classCOUNTER.ExceptionResponseprotected static classCOUNTER.GetOrCreateRequestprotected static classCOUNTER.GetOrCreateResponseprotected static classCOUNTER.ReconcileRequestprotected static classCOUNTER.ReconcileResponseprotected classCOUNTER.ReconciliationTaskprotected static interfaceCOUNTER.Requestprotected static classCOUNTER.RequestTypeprotected static classCOUNTER.ResendPendingRequestsprotected static interfaceCOUNTER.Responseprotected static classCOUNTER.ResponseTypeprotected static classCOUNTER.SetRequestprotected static classCOUNTER.SimpleRequestprotected static classCOUNTER.SimpleResponseResponse without dataprotected static classCOUNTER.UpdateRequestprotected static classCOUNTER.ValueResponseprotected static classCOUNTER.VersionedValue
-
Field Summary
Fields Modifier and Type Field Description protected java.util.List<Address>backup_coordsBackup coordinators.protected booleanbypass_bundlingprotected AddresscoordThe address of the cluster coordinator.protected java.util.concurrent.ConcurrentMap<java.lang.String,COUNTER.VersionedValue>countersprotected booleandiscard_requestsSet to true during reconciliation process, will cause all requests to be discardedprotected Addresslocal_addrprotected intnum_backupsprotected java.util.Map<Owner,Tuple<COUNTER.Request,Promise>>pending_requestsprotected COUNTER.ReconciliationTaskreconciliation_taskprotected java.util.concurrent.Future<?>reconciliation_task_futureprotected longreconciliation_timeoutprotected static byteREQUESTprotected static byteRESPONSEprotected longtimeoutprotected Viewview-
Fields inherited from class org.jgroups.stack.Protocol
after_creation_hook, down_prot, ergonomics, id, log, stack, stats, up_prot
-
-
Constructor Summary
Constructors Constructor Description COUNTER()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static COUNTER.RequestcreateRequest(COUNTER.RequestType type)protected static COUNTER.ResponsecreateResponse(COUNTER.ResponseType type)voiddeleteCounter(java.lang.String name)Sent asynchronously - we don't wait for an ackjava.lang.Objectdown(Event evt)An event is to be sent down the stack.protected static java.lang.Stringdump(java.lang.String[] names, long[] values, long[] versions)java.lang.StringdumpPendingRequests()java.lang.StringgetAddress()java.lang.StringgetBackupCoords()booleangetBypassBundling()protected COUNTER.VersionedValuegetCounter(java.lang.String name)CountergetOrCreateCounter(java.lang.String name, long initial_value)protected OwnergetOwner()java.lang.StringgetView()protected voidhandleRequest(COUNTER.Request req, Address sender)protected voidhandleResponse(COUNTER.Response rsp, Address sender)protected voidhandleView(View view)java.lang.StringprintCounters()protected static long[]readReconciliationLongs(java.io.DataInput in, int len)protected static java.lang.String[]readReconciliationNames(java.io.DataInput in, int len)protected static COUNTER.RequestrequestFromBuffer(byte[] buf, int offset, int length)protected static BufferrequestToBuffer(COUNTER.Request req)protected static COUNTER.RequestTyperequestToRequestType(COUNTER.Request req)protected static COUNTER.ResponseresponseFromBuffer(byte[] buf, int offset, int length)protected static BufferresponseToBuffer(COUNTER.Response rsp)protected static COUNTER.ResponseTyperesponseToResponseType(COUNTER.Response rsp)protected voidsend(Address dest, Buffer buffer)protected voidsendCounterNotFoundExceptionResponse(Address dest, Owner owner, java.lang.String counter_name)protected voidsendRequest(Address dest, COUNTER.Request req)protected voidsendResponse(Address dest, COUNTER.Response rsp)voidsetBypassBundling(boolean bypass_bundling)protected voidstartReconciliationTask()protected voidstopReconciliationTask()protected static StreamablestreamableFromBuffer(byte[] buf, int offset, int length)protected static BufferstreamableToBuffer(byte req_or_rsp, byte type, Streamable obj)java.lang.Objectup(Event evt)An event was received from the protocol below.java.lang.Objectup(Message msg)A single message was received.protected voidupdateBackups(java.lang.String name, long value, long version)protected static voidwriteReconciliation(java.io.DataOutput out, java.lang.String[] names, long[] values, long[] versions)-
Methods inherited from class org.jgroups.stack.Protocol
accept, afterCreationHook, destroy, down, enableStats, getConfigurableObjects, getDownProtocol, getDownServices, getId, getIdsAbove, getLevel, getLog, getName, getProtocolStack, getSocketFactory, getThreadFactory, getTransport, getUpProtocol, getUpServices, getValue, init, isErgonomics, level, parse, providedDownServices, providedUpServices, requiredDownServices, requiredUpServices, resetStatistics, resetStats, setDownProtocol, setErgonomics, setId, setLevel, setProtocolStack, setSocketFactory, setUpProtocol, setValue, start, statsEnabled, stop, up
-
-
-
-
Field Detail
-
bypass_bundling
protected boolean bypass_bundling
-
timeout
protected long timeout
-
reconciliation_timeout
protected long reconciliation_timeout
-
num_backups
protected int num_backups
-
local_addr
protected Address local_addr
-
discard_requests
protected boolean discard_requests
Set to true during reconciliation process, will cause all requests to be discarded
-
view
protected View view
-
coord
protected Address coord
The address of the cluster coordinator. Updated on view changes
-
backup_coords
protected java.util.List<Address> backup_coords
Backup coordinators. Only created if num_backups > 0 and coord=true
-
reconciliation_task_future
protected java.util.concurrent.Future<?> reconciliation_task_future
-
reconciliation_task
protected COUNTER.ReconciliationTask reconciliation_task
-
counters
protected final java.util.concurrent.ConcurrentMap<java.lang.String,COUNTER.VersionedValue> counters
-
pending_requests
protected final java.util.Map<Owner,Tuple<COUNTER.Request,Promise>> pending_requests
-
REQUEST
protected static final byte REQUEST
- See Also:
- Constant Field Values
-
RESPONSE
protected static final byte RESPONSE
- See Also:
- Constant Field Values
-
-
Method Detail
-
requestToRequestType
protected static COUNTER.RequestType requestToRequestType(COUNTER.Request req)
-
responseToResponseType
protected static COUNTER.ResponseType responseToResponseType(COUNTER.Response rsp)
-
getBypassBundling
public boolean getBypassBundling()
-
setBypassBundling
public void setBypassBundling(boolean bypass_bundling)
-
getAddress
public java.lang.String getAddress()
-
getView
public java.lang.String getView()
-
getBackupCoords
public java.lang.String getBackupCoords()
-
getOrCreateCounter
public Counter getOrCreateCounter(java.lang.String name, long initial_value)
-
deleteCounter
public void deleteCounter(java.lang.String name)
Sent asynchronously - we don't wait for an ack
-
down
public java.lang.Object down(Event evt)
Description copied from class:ProtocolAn event is to be sent down the stack. A protocol may want to examine its type and perform some action on it, depending on the event's type. If the event is a message MSG, then the protocol may need to add a header to it (or do nothing at all) before sending it down the stack usingdown_prot.down().
-
up
public java.lang.Object up(Event evt)
Description copied from class:ProtocolAn event was received from the protocol below. Usually the current protocol will want to examine the event type and - depending on its type - perform some computation (e.g. removing headers from a MSG event type, or updating the internal membership list when receiving a VIEW_CHANGE event). Finally the event is either a) discarded, or b) an event is sent down the stack usingdown_prot.down()or c) the event (or another event) is sent up the stack usingup_prot.up().
-
up
public java.lang.Object up(Message msg)
Description copied from class:ProtocolA single message was received. Protocols may examine the message and do something (e.g. add a header) with it before passing it up.
-
handleRequest
protected void handleRequest(COUNTER.Request req, Address sender)
-
getCounter
protected COUNTER.VersionedValue getCounter(java.lang.String name)
-
handleResponse
protected void handleResponse(COUNTER.Response rsp, Address sender)
-
printCounters
public java.lang.String printCounters()
-
dumpPendingRequests
public java.lang.String dumpPendingRequests()
-
handleView
protected void handleView(View view)
-
getOwner
protected Owner getOwner()
-
sendRequest
protected void sendRequest(Address dest, COUNTER.Request req)
-
sendResponse
protected void sendResponse(Address dest, COUNTER.Response rsp)
-
updateBackups
protected void updateBackups(java.lang.String name, long value, long version)
-
sendCounterNotFoundExceptionResponse
protected void sendCounterNotFoundExceptionResponse(Address dest, Owner owner, java.lang.String counter_name)
-
requestToBuffer
protected static Buffer requestToBuffer(COUNTER.Request req) throws java.lang.Exception
- Throws:
java.lang.Exception
-
responseToBuffer
protected static Buffer responseToBuffer(COUNTER.Response rsp) throws java.lang.Exception
- Throws:
java.lang.Exception
-
streamableToBuffer
protected static Buffer streamableToBuffer(byte req_or_rsp, byte type, Streamable obj) throws java.lang.Exception
- Throws:
java.lang.Exception
-
streamableFromBuffer
protected static Streamable streamableFromBuffer(byte[] buf, int offset, int length) throws java.lang.Exception
- Throws:
java.lang.Exception
-
requestFromBuffer
protected static final COUNTER.Request requestFromBuffer(byte[] buf, int offset, int length) throws java.lang.Exception
- Throws:
java.lang.Exception
-
createRequest
protected static COUNTER.Request createRequest(COUNTER.RequestType type)
-
responseFromBuffer
protected static final COUNTER.Response responseFromBuffer(byte[] buf, int offset, int length) throws java.lang.Exception
- Throws:
java.lang.Exception
-
createResponse
protected static COUNTER.Response createResponse(COUNTER.ResponseType type)
-
startReconciliationTask
protected void startReconciliationTask()
-
stopReconciliationTask
protected void stopReconciliationTask()
-
writeReconciliation
protected static void writeReconciliation(java.io.DataOutput out, java.lang.String[] names, long[] values, long[] versions) throws java.io.IOException- Throws:
java.io.IOException
-
readReconciliationNames
protected static java.lang.String[] readReconciliationNames(java.io.DataInput in, int len) throws java.io.IOException- Throws:
java.io.IOException
-
readReconciliationLongs
protected static long[] readReconciliationLongs(java.io.DataInput in, int len) throws java.io.IOException- Throws:
java.io.IOException
-
dump
protected static java.lang.String dump(java.lang.String[] names, long[] values, long[] versions)
-
-