forked from LLNL/UnifyFS
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
client: satisfy read requests from local extent info if possible
This adds a second segment tree to the client metadata of each file (fid) that tracks all extents written to the file. We use this to satisfy later read requests by having the client refer to this segment tree and then copy data directly from its data logs. Any request that cannot be fully satisfied on the client is sent to the server for processing. The goal is to make reads as fast as writes in the case that a client process reads back the same data it wrote. This optimization cannot be used as currently written for apps that call truncate, because the server currently has no way to inform the client that it should truncate its extent list. To let users opt-in, a new UNIFYFS_CLIENT_LOCAL_EXTENTS=1 option is added to enable local read back. This optimization is off by default. This moves read request splitting from the client to the server. Splitting the read requests into 1MB chunks was limiting performance, and this splitting is not necessary when the client is reading its own data. This also moves the write index splitting from the client to the server. TEST_CHECKPATCH_SKIP_FILES=common/src/unifyfs_configurator.h
- Loading branch information
Showing
9 changed files
with
794 additions
and
481 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.