Package org.jgroups.protocols
Class TIME
java.lang.Object
org.jgroups.stack.Protocol
org.jgroups.protocols.TIME
- All Implemented Interfaces:
Lifecycle
Protocol measuring delivery times. Can be used in the up or down direction
JIRA: https://issues.redhat.com/browse/JGRP-2101
- Since:
- 4.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final AverageMinMaxprotected final AverageMinMaxprotected booleanprotected booleanprotected final AverageMinMaxprotected final AverageMinMaxprotected booleanFields inherited from class org.jgroups.stack.Protocol
after_creation_hook, down_prot, ergonomics, id, local_addr, log, policies, stack, stats, up_prot -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected static voidadd(AverageMinMax avg, long num) protected static doubleavgTimePerMessageIncludingDelay(int num, long time) A message is sent down the stack.voidA single message was received.voidup(MessageBatch batch) Dividing the delivery time for a batch by the batch size is problematic, e.g.Methods inherited from class org.jgroups.stack.Protocol
accept, addPolicy, addr, addr, afterCreationHook, destroy, down, down, enableStats, getAddress, getComponents, getDownProtocol, getDownServices, getId, getIdsAbove, getLevel, getLog, getName, getPolicies, getProtocolStack, getSocketFactory, getThreadFactory, getTransport, getUpProtocol, getUpServices, getValue, init, isErgonomics, level, parse, policies, providedDownServices, providedUpServices, removePolicy, requiredDownServices, requiredUpServices, resetStatistics, setAddress, setDownProtocol, setErgonomics, setId, setLevel, setPolicies, setProtocolStack, setSocketFactory, setUpProtocol, setValue, start, statsEnabled, stop, toString, up
-
Field Details
-
up_delivery_msgs
-
up_delivery_batches
-
avg_up_batch_size
-
down_delivery
-
down_msgs
protected boolean down_msgs -
up_batches
protected boolean up_batches -
up_msgs
protected boolean up_msgs
-
-
Constructor Details
-
TIME
public TIME()
-
-
Method Details
-
resetStats
public void resetStats()- Overrides:
resetStatsin classProtocol
-
down
Description copied from class:ProtocolA message is sent down the stack. Protocols may examine the message and do something (e.g. add a header) with it, before passing it down. -
up
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. -
up
Dividing the delivery time for a batch by the batch size is problematic, e.g. if a batch of 5 is received at time 0 and the 5 messages are delivered at times 20, 40, 60, 80 and 100, then the total time is 100, divided by 5 would be 20 per message.However, this is incorrect as it ignores the waiting times for the individual messages: e.g. message 3 gets delayed for 60 until it is processed.
The correct average delivery time per message is therefore (20+40+60+80+100)/5 = 60.
The above computation is not correct: we don't know whether a protocol looks at all messages: it may even remove some (making 'size' incorrect)!
Also, we don't know whether messages in a batch are processed in order, on by one, or whether they are processed in parallel. Therefore, times for individual messages will not be computed.
-
avgTimePerMessageIncludingDelay
protected static double avgTimePerMessageIncludingDelay(int num, long time) -
add
-