-
Notifications
You must be signed in to change notification settings - Fork 51
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-watch: support RAW option? #6527
Comments
Was thinking about this / brainstorming ideas:
|
hmmm, alternately, it might be far easier if "raw" could be supported through a tweak in the treeobject format. i.e. could This way protocol wise, almost nothing has to change. Only internals of parsing the treeobject. |
did some prototypes prototype 1 - I tried to hack non-base64 into a treeobj value, effectively through tricks like this:
ended up giving up on the prototype, too many subtle gotchas throughout the code. I'm sure I could solve them if I put in more effort, but I think it reached a point of "not meant to be" prototype 2 - when using FLUX_KVS_STREAM did a hack to send the data "raw" on the RPC response instead of creating a treeobj object
and some hackery had to be done in the doing some
tests, the average time on corona went from 10.6 seconds to 9.6 seconds, so about a 9% improvement. So not bad. The above is slightly flawed in that it assumes that the data being sent "raw" is a safe transmittable utf-8 string and the other side assumes whatever it is reading is an normal string. In some circumstances, such as eventlogs, I think this is a safe assumption? I think this may require a tad more thought, but I think this has some promise |
Per comments in #6523 (comment), the
treeobj_create_val()
can be quite costly for large amounts of data, especially due to the base64 encoding that goes on internally.In some cases, return the raw value instead of treeobject might be warranted for performance and convenient. FLUX_KVS_STREAM might be such a case, since it is looking up individual blob refs rather than the true "combined" value from the KVS.
The text was updated successfully, but these errors were encountered: