Skip to content

Conversation

chu11
Copy link
Member

@chu11 chu11 commented Mar 1, 2025

Problem: It would be convenient to know the size of the data in a val or valref object without decoding/reading the data. However there is no metadata for that.

Support an optional size key in 'val' and 'valref' objects. It allows us to know the size of the data without wasting cycles decoding or reading the data.


As mentioned in

flux-framework/flux-core#6264
flux-framework/flux-core#6266

it would be convenient to know how much data there is in a KVS entry without reading all of the contents.

Side note, it may be useful to also know the size of each blobref in a valref object, but I will leave that for another possible RFC change when the time arrives.

Problem: It would be convenient to know the size of the data in
a val or valref object without decoding/reading the data.  However
there is no metadata for that.

Support an optional size key in 'val' and 'valref' objects.  It
allows us to know the size of the data without wasting cycles
decoding or reading the data.
Comment on lines +85 to +90
The following OPTIONAL names are supported:

- *size*, contains the size of the decoded data within a *val* object
or the total size of data stored in the blobrefs of a *valref* object.


Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems like it could be neat.

A thought on adding size to dir and dirref: since every KVS metadata update involves updating all parent metadata back to the root, we could use that fact to keep a cumulative size in dir and dirref objects. That is, a directory would contain the sum of the sizes of files and directories it contains. The root would then contain the total size of the namespace. These sizes could be a little bit misleading due to the automatic de-duplication inherent in the content design, but it still might be useful and it would accurately reflect the size of the subtree if dumped with flux-dump(1).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants