Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This subsystem makes use of the DocumentTree primitive.  The primitive consists of an implementation of AsyncDocumentTree (AtomixDocumentTree) residing on the client machine which submits commands to the remote Copycat state machine (AtomixDocumentTreeState), responsible for maintaining distributed state.  The commands submitted to the primitive are found in AtomixDocumentTreeCommands, it should be noted that there will not necessarily be a one to one correspondence between the commands provided in the AsyncDocumentTree API and the command classes, in many cases a single command class can encapsulate the functionality of several API methodscalls.

Behavior

The DocumentTree primitive supports a tree structure which allows nodes with arbitrary numbers of children.  The primitive also provides efficient prefix filtering which enables listening for notifications from specified subtrees.  Despite the possibility of nodes with extremely large numbers of children sorting the sets of children stored by each node in the tree structure would enable quick O(log n) retrieval (enabled by the use of binary search within the child set).  The structure supports sequential query consistency, slightly relaxing the consistency in order to provide greater availability.but makes no guarantees about the linearizability of queries. 

 

 

Next Steps