Project

General

Profile

Actions

Feature #4313

closed

mon: generic key/value service

Added by Sage Weil about 11 years ago. Updated about 11 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Joao Eduardo Luis
Category:
Monitor
Target version:
% Done:

0%

Source:
Development
Tags:
Backport:
Reviewed:
Affected Versions:
Pull request ID:
Actions #1

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

Actions #2

Updated by Sage Weil about 11 years ago

  • Target version set to v0.61 - Cuttlefish
Actions #3

Updated by Sage Weil about 11 years ago

  • Translation missing: en.field_story_points set to 5.00
Actions #4

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.

Actions #5

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)

Actions #6

Updated by Sage Weil about 11 years ago

  • Status changed from Fix Under Review to Resolved
Actions

Also available in: Atom PDF