New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
librbd: journal framework for tracking exclusive lock transitions #7529
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Later commits will add the ability to allocate tags and associate them with registered clients. Signed-off-by: Jason Dillaman <dillaman@redhat.com>
I wish there were a notification when the check failed: test/cls_journal/test_cls_journal.cc: In member function ‘virtual void TestClsJournal_TagList_Test::TestBody()’: test/cls_journal/test_cls_journal.cc:515:283: error: converting to ‘boost::optional’ from initializer list would use explicit constructor ‘boost::optional::optional(const Expr&) [with Expr = int; T = long unsigned int]’ ASSERT_EQ(0, client::tag_list(ioctx, oid, "id1", 0, &tags)); ^ In file included from test/cls_journal/test_cls_journal.cc:4:0: ./cls/journal/cls_journal_client.h:82:5: error: initializing argument 4 of ‘int cls::journal::client::tag_list(librados::IoCtx&, const string&, const string&, boost::optional, std::set*)’ int tag_list(librados::IoCtx &ioctx, const std::string &oid, ^ |
@jdurgin fun times -- compiles under F23. I'll explicitly convert it to an optional and try again. |
In the case of librbd, a new tag will be allocated when the exclusive lock is acquired. All tags for the same dataset (e.g. librbd image) will belong to the same class. Tags are automatically pruned on tag create / client unregister if no other clients' commit position would require the tags. Signed-off-by: Jason Dillaman <dillaman@redhat.com>
The opaque structure will support journal client applications to store and retrieve complex state. Fixes: ceph#13298 Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
librbd, for example, will allocate a new tag after acquiring the exclusive lock. Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
jdurgin
added a commit
that referenced
this pull request
Feb 6, 2016
librbd: journal framework for tracking exclusive lock transitions Reviewed-by: Josh Durgin <jdurgin@redhat.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.