Split store
Dispatches requests to up to 256 account and object stores. These stores may reside on different servers.
Instance creation
my $splitStore = CDS::SplitStore->new($key); $splitStore->assignAccounts(0, 255, $store1); $splitStore->assignObjects(0, 127, $store2); $splitStore->assignObjects(128, 255, $store3);
Instantiates and configures a split store.
Store behavior
Each store request is cryptographically mapped onto a number from 0..255, and dispatched to the corresponding store.
For get, put, and book requests, the mapping is derived from the object hash:
List and modify requests are mapped using the account hash:
Key is a 32-byte sequence known to the store operator only, and used to encrypt the hash. This prevents outsiders from guessing the store to which an object or account is mapped. This additional encryption step also ensures that each slot will statistically get the same amount of objects and accounts.
Once the store is in use, the mapping must remain the same.
Garbage collection
Garbage must be collected on the split store as a whole. It is not possible to collect garbage on the individual stores separately. As of now, no tools are available for that.
The split store is currently only implemented in Perl.