+134
−10
Loading
Optimization of create, stat, and remove operations. The following changes have been made:
gkfs_open() logic refactored.get_metadata() was used on the client for all stat operation, creating a shared_ptr for the Metadata object in the process which was not needed. A new function get_metadata_attr() was created to only return the metadata binary string, which will only create the metadata object if actually required.remove_metadata() and remove_data().gkfs::config::metadata::implicit_data_removal setting: If true, will remove data on the same node during the remove_metadata() RPC. This is mainly an optimization, but will be useful for future asynchronous removal implementations.Previously, the code path looked like this:
stat() to get size and mode.remove() is called which, first, sends a single RPC to the daemon with the metadata. Afterwards, data is removed.It now looks like this:
remove() is called which, first, sends a single RPC to the daemon with the metadata. Before, removing the metadata, the daemon fetches mode and size. If implicit_data_removal is set as a configuration, the data is removed in this RPC as well. mode and size are returned to the client.remove_data() RPC as it was previously.Depends on !66 (merged) and !74 (merged).
Closes #94 (closed)