You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Write to multiple WALs concurrently to leverage hardware parallelism.
Raft Engine provides a WriteToken that maps to a WAL stream underneath. If WriteToken is not provided, it will write to the default WAL stream.
User guarantees there will be no concurrent writing to the same region using different tokens. But writes to a region are allowed to be sent to different WALs at different time.
There're two ways to establish total order between logs among muliple log streams,
(1) Raft Engine have awareness of Raft term of the log entries. Key-values use the term of latest log in the region.
(2) Raft Engine internally manages a sequence number for each region.
The text was updated successfully, but these errors were encountered:
This is a preparing work for #258.
Changes:
- Move `fsync` to file handle instead of writer, so that we can call it concurrently in the future. In doing so, we have to remove the sync offset tracking and deprecate `bytes_per_sync` support
- Move `prepare_write` into pipe_log. Introduce a trait `ReactiveBytes` for this purpose.
- Rotate the file during write instead of doing it every write group, the timing is also delayed to the next write after exceeding limit (instead of the write that exceeds the limit).
- Differentiate two types of I/O errors: unrecoverable error from fsync, and retriable error from pwrite. Only bubble error for the latter case, panic early for unrecoverable ones.
- Also refactor the purge code, fix two cases where force-compact is not triggered
Signed-off-by: tabokie <[email protected]>
Write to multiple WALs concurrently to leverage hardware parallelism.
Raft Engine provides aWriteToken
that maps to a WAL stream underneath. IfWriteToken
is not provided, it will write to the default WAL stream.User guarantees there will be no concurrent writing to the same region using different tokens. But writes to a region are allowed to be sent to different WALs at different time.There're two ways to establish total order between logs among muliple log streams,(1) Raft Engine have awareness of Raft term of the log entries. Key-values use the term of latest log in the region.(2) Raft Engine internally manages a sequence number for each region.The text was updated successfully, but these errors were encountered: