-
Notifications
You must be signed in to change notification settings - Fork 547
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
Adding ObjectStoreOutputFlags to GarnetObjectStoreOutput #923
base: main
Are you sure you want to change the base?
Conversation
…garnet into talzacc/perf_mem_impr
/// <returns></returns> | ||
bool Operate(ref ObjectInput input, ref SpanByteAndMemory output, out long sizeChange, out bool removeKey); |
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.
Reinstate sizeChange as discussed
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.
SizeChange was added to GarnetObjectStoreOutput
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.
GOSO fields should be limited to what information needs to flow from the back-end to the front-end. Let us make sure we verify this holds for all additions to GOSO.
This change is to avoid checking for
GarnetObjectStoreOutput.spanByteAndMemory.Length == 0
in order to determine if object operation was attempted on a mismatched type (and by that to allow object operations to return an empty output and avoid unnecessary allocations)Benchmarks for module operations after the change:
Note: # of allocated bytes decreased for ObjRmw, ObjRead & JsonSet.