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
kvs: commit/fence return root ref / sequence after transaction #2018
Conversation
It's useful to get something back that can be fed into I think I added that to |
Yeah, I just sort of copied it from getroot. You probably added it just to add coverage to |
hmmm a lot of causal consistency errors, wonder if I messed up the test in some way.
|
I guess I was using the sh Rebased and repushed. |
a8612c0
to
b069811
Compare
just thought of a way to enhance the causal consistency tests better by using the pause/unpause setroots event, repushed |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's drop the blobref accessor in the API and the flux-kvs
subcommands, since it's likely not helpful.
I feel less strongly about this, but the flux_kvs_fence_get_*()
aliases don't seem all that helpful. Could we drop them and just document that the commit accessors work for fences too?
including getroot?
sounds like a plan. I actually just realized I didn't add manpages for these functions, so gotta add that too. |
OK by me. I don't think it has any users and I don't exactly know what I was thinking. |
re-pushed with suggested changes |
re-push, had a chain-lint failure |
Have responses to a kvs commit/fence request return the root reference and sequence that the transaction was committed to.
rebased / re-pushed |
The blobref accessors in the API are still there. Is there a use for those? |
nah, I left it b/c "it's in getroot too". I can axe it. |
Add convenience get functions for retrieving treeobj or sequence from commit & fence responses. Fixes flux-framework#1994
Support a new -O and -s option on write operations like put, unlink, link, and mkdir. The option will output the RFC11 root treeobj or root sequence number upon a successful write. These outputs can be used for causal consistency, such as by feeding the treeobj to a lookup-at or the sequence number to a wait version.
re-pushed with removal of |
Codecov Report
@@ Coverage Diff @@
## master #2018 +/- ##
==========================================
- Coverage 80.58% 80.56% -0.03%
==========================================
Files 179 179
Lines 28779 28845 +66
==========================================
+ Hits 23191 23238 +47
- Misses 5588 5607 +19
|
Thanks! |
After a kvs commit/fence, have the rpc return the root reference / seq of the resulting root that has all of the changes in a transaction. This root ref / seq can then be used for causal consistency. Add associated library "get" functions in
libkvs/kvs_commit
.The more questionable part of this PR is probably all of the new options I added in
flux-kvs
. Now every write operation (put, mkdir, link, unlink) can output the resulting treeobj, root ref, or sequence number after the write operation has completed. Is it too much? If it's too much, I'd have to add tests another way.