Skip to content

Conversation

@wkliao
Copy link
Member

@wkliao wkliao commented Jan 1, 2026

When adding new data objects into an existing file, the data section may need to be moved to a higher file offset. The movement is performed in chunks. This hint allows users to customized the chunk size. The default is 1048576 bytes, i.e. 1 MiB.

When file striping unit size is known after file create/open, and the hint nc_data_move_chunk_size is not set by users, the chunk size will be set to the striping size.

When moving variable sections, starting file offsets of all read and write chunks will be aligned with the hint nc_data_move_chunk_size.

wkliao added 2 commits January 1, 2026 13:05
When adding new data objects into an existing file, the data section may
need to be moved to a higher file offset.  The movement is performed in
chunks. This hint allows users to customized the chunk size. The default
is 1048576 bytes, i.e. 1 MiB.
wkliao added 2 commits January 1, 2026 17:30
In addition, define DRY_RUN and VERBOSE and 2 functions for debugging purpose.
wkliao added 3 commits January 2, 2026 15:47
Value of data_chunk depends on file striping_unit
It performs best when set to striping_unit.
* use file striping unit size as moving chunk size by default.
* align write offsets with the striping units to coincide the
  Lustre collective write file domain alignment
@wkliao wkliao merged commit 0b251e9 into master Jan 4, 2026
7 of 9 checks passed
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