Feature #4313
closedmon: generic key/value service
0%
Updated by Joao Eduardo Luis about 11 years ago
- Category set to Monitor
- Status changed from New to Fix Under Review
- Assignee set to Joao Eduardo Luis
Basically, every single piece of code is now being kept on Monitor.cc. It should be moved to a different file, ideally a class inheriting PaxosService, although it really doesn't need the same guarantees as the other PaxosServices.
The whole approach follows the idea that we should be able to read a value from any monitor in the cluster, but we should only stash values through the leader, so we can leverage Paxos to do the actual dissemination of the stashed key:value.
So we have all the write operations being forwarded to the leader, who will encode them in a transaction and submit them to paxos; once all monitors commit, the leader will then reply to the client. By leveraging Paxos this way, we avoid a whole lot of trouble making these values available to all the monitors in the cluster.
I believe the approach is quite simple, and should work as it is -- thorough testing pending the creating of a simple test to perform operations alongside other tests.
Currently supported operations:
- ceph store put <key> <value> or - ceph store put <key> -i <in-file> - ceph store get <key> or - ceph store get <key> -o <out-file> - ceph store delete <key> - ceph store list - ceph store exists <key>
Btw, available @ wip-4313 commit:83ad6a7e8382b75113883f1594d831682fdca503
Updated by Sage Weil about 11 years ago
- Target version set to v0.61 - Cuttlefish
Updated by Sage Weil about 11 years ago
- Translation missing: en.field_story_points set to 5.00
Updated by Joao Eduardo Luis about 11 years ago
pull request: https://github.com/ceph/ceph/pull/150
Pushing it up for review only.
Needs to be thoroughly tested (which I will do in the morning), but from my meager testing looks like it's working fine.
Updated by Joao Eduardo Luis about 11 years ago
Dozed off in front of the TV and forgot to push the branches.
repushed code can still be found on https://github.com/ceph/ceph/pull/150
new pull request with a script to test the 'config-key' api can be found on https://github.com/ceph/ceph/pull/162 (please read pull request notes before merging)
Updated by Sage Weil about 11 years ago
- Status changed from Fix Under Review to Resolved