-
Notifications
You must be signed in to change notification settings - Fork 2
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
Vectorized chunk writes #23
base: main
Are you sure you want to change the base?
Conversation
|
||
if (should_rollover || is_finalizing_) { | ||
rollover_(); |
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.
Compared to the old functionality, rollover_() would now be called if should_rollover==false but is_finalizing==true, whereas it wouldn't have before. I just want to make sure that is intended.
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.
Correct. I previously didn't want to call rollover_()
when finalizing because it would uselessly increment a counter, but the alternative was to add another check on is_finalizing_
to call close_files_()
-- but only when we had a ragged append dimension. This is simpler, and the increment doesn't matter.
return success; | ||
})); | ||
|
||
if (!queued) { |
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.
Probably doesn't need to queue a new job?
ArrayWriter
data_root_()
constructs the path to the location where chunk or shard files are currently going to be writtenmetadata_path_()
constructs the path to the array metadata fileversion_()
compress_buffers_()
withcompress_chunk_buffer_()
, which compresses one buffer at a timemake_data_sinks_()
andclose_sinks_()
pure virtual methodsSinkCreator
methods to be explicit about which type of sink (S3 or filesystem).FileWriteGather
(Windows) orpwritev
(POSIX).