⇤ ← Revision 1 as of 2013-07-06 04:45:08
Size: 993
Comment:
|
Size: 1863
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 9: | Line 9: |
* Replicated | * '''Replicated:''' |
Line 11: | Line 11: |
* Nested | * '''Nested:''' |
Line 13: | Line 13: |
* Persistent | * '''Persistent:''' |
Line 15: | Line 15: |
* Notifiable | * '''Notifiable:''' |
Line 17: | Line 17: |
* Shared memory | * '''Shared memory:''' |
Line 19: | Line 19: |
* Transactional | * '''Transactional:''' |
Line 21: | Line 21: |
== Design == In this document the term "Dictionary" will be used to refer to the entire replicated Dictionary abstraction. The term "local replica" will be used to refer to a particular copy of the dictionary. === Process Access === A Dictionary can be located in process private memory, or in shared memory based on an option when the Dictionary is created. If a dictionary needs === Internode Replication and Communication === ==== Discovery ==== A dictionary will be registered with the [[Group]] service. It is identified by a well-known [[ClusterUniqueId]] or by the [[ClusterUniqueId]] returned by the [[Group]] registration. It may also be identified by a string entry in the [[Name]] service and APIs will accept either a [[ClusterUniqueId]] or a string name. ==== Replication ==== |
Dictionary
The dictionary entity forms the backbone of the coordination of information between nodes in the cluster. This entity is fully replicated to all nodes that are interested in it -- it is not a "distributed" dictionary where every node has partial data.
Major Features
Most major features can be selected at object creation time to optimize for speed or for utility
Replicated: Replicated efficiently to multiple nodes
Nested: Dictionary values can be unique identifiers that resolve to another Dictionary
Persistent: Dictionaries can automatically store themselves to disk (Persistence)
Notifiable: You can subscribe to get notified of changes to dictionaries (Event)
Shared memory: For efficiency, a single service per node can maintain coherency (with the rest of the cluster) of a dictionary. To do this the dictionary is stored in shared memory
Transactional: Dictionary operations can be wrapped in a Transaction
Design
In this document the term "Dictionary" will be used to refer to the entire replicated Dictionary abstraction. The term "local replica" will be used to refer to a particular copy of the dictionary.
Process Access
A Dictionary can be located in process private memory, or in shared memory based on an option when the Dictionary is created.
If a dictionary needs
Internode Replication and Communication
Discovery
A dictionary will be registered with the Group service. It is identified by a well-known ClusterUniqueId or by the ClusterUniqueId returned by the Group registration. It may also be identified by a string entry in the Name service and APIs will accept either a ClusterUniqueId or a string name.