org.terracotta.management.sequence
Class BoundaryFlakeSequenceGenerator

java.lang.Object
  extended by org.terracotta.management.sequence.BoundaryFlakeSequenceGenerator
All Implemented Interfaces:
SequenceGenerator

public final class BoundaryFlakeSequenceGenerator
extends Object
implements SequenceGenerator

Sort of Boundary Flake, inspired by (and related docs):

For this implementation we will use:
 SEQUENCE = TIMESTAMP + NODE_ID + SEQUENCE_ID
 NODE_ID = MAC + PID
 SEQUENCE_ID = CLASSLOADER_ID + INSTANCE_ID + SEQUENCE_MS
 
Where:

This leads to 3 longs (192 bits).

This generator will generate a maximum of about 262,144 sequence numbers / millisecond / instance / classloader / JVM / machine, with high probability to be unique if node id is unique.

Author:
Mathieu Carbou

Constructor Summary
BoundaryFlakeSequenceGenerator()
           
BoundaryFlakeSequenceGenerator(TimeSource timeSource, NodeIdSource nodeIdSource)
           
 
Method Summary
 TimeSource getTimeSource()
           
 Sequence next()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BoundaryFlakeSequenceGenerator

public BoundaryFlakeSequenceGenerator()

BoundaryFlakeSequenceGenerator

public BoundaryFlakeSequenceGenerator(TimeSource timeSource,
                                      NodeIdSource nodeIdSource)
Method Detail

getTimeSource

public TimeSource getTimeSource()
Specified by:
getTimeSource in interface SequenceGenerator

next

public Sequence next()
Specified by:
next in interface SequenceGenerator


Copyright © 2016. All Rights Reserved.