ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent-MP/MP.pm
(Generate patch)

Comparing AnyEvent-MP/MP.pm (file contents):
Revision 1.130 by root, Fri Mar 9 17:05:26 2012 UTC vs.
Revision 1.131 by root, Fri Mar 9 19:07:53 2012 UTC

894=back 894=back
895 895
896=head1 DISTRIBUTED DATABASE 896=head1 DISTRIBUTED DATABASE
897 897
898AnyEvent::MP comes with a simple distributed database. The database will 898AnyEvent::MP comes with a simple distributed database. The database will
899be mirrored asynchronously at all global nodes. Other nodes bind to one of 899be mirrored asynchronously on all global nodes. Other nodes bind to one
900the global nodes for their needs. 900of the global nodes for their needs. Every node has a "local database"
901which contains all the values that are set locally. All local databases
902are merged together to form the global database, which can be queried.
901 903
902The database consists of a two-level hash - a hash contains a hash which 904The database structure is that of a two-level hash - the database hash
903contains values. 905contains hashes which contain values, similarly to a perl hash of hashes,
906i.e.:
907
908 $DATABASE{$family}{$subkey} = $value
904 909
905The top level hash key is called "family", and the second-level hash key 910The top level hash key is called "family", and the second-level hash key
906is called "subkey" or simply "key". 911is called "subkey" or simply "key".
907 912
908The family must be alphanumeric, i.e. start with a letter and consist 913The family must be alphanumeric, i.e. start with a letter and consist
913with the name of the application or module using it. 918with the name of the application or module using it.
914 919
915The subkeys must be non-empty strings, with no further restrictions. 920The subkeys must be non-empty strings, with no further restrictions.
916 921
917The values should preferably be strings, but other perl scalars should 922The values should preferably be strings, but other perl scalars should
918work as well (such as undef, arrays and hashes). 923work as well (such as C<undef>, arrays and hashes).
919 924
920Every database entry is owned by one node - adding the same family/subkey 925Every database entry is owned by one node - adding the same family/subkey
921combination on multiple nodes will not cause discomfort for AnyEvent::MP, 926combination on multiple nodes will not cause discomfort for AnyEvent::MP,
922but the result might be nondeterministic, i.e. the key might have 927but the result might be nondeterministic, i.e. the key might have
923different values on different nodes. 928different values on different nodes.

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines