Skip to content
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

[Merged by Bors] - Fix index corruption #2186

Closed
wants to merge 60 commits into from

Conversation

sehz
Copy link
Contributor

@sehz sehz commented Feb 11, 2022

resolves #2116.

  • Fix soundness of the batch offset_delta. Update tests to fully specify behavior.
  • Add internal CLI too to validate the segment. This can be invoked by: cargo run --bin storage-cli --features=cli --release.
  • Change default StorageBytesIterator implementation to use pread call instead of the memory map. It is 10x slower but should reduce I/O overhead.
  • Instead of using async-fil write, use std file system write to avoid reposition call which could batch to be overwritten in high overload case. This could incur some latency due to the fact write is not async. This should be resolved once we have the next generation of the file i/o sub-system.
  • Improve index write logic to improve efficiency. Before it was writing index offset too much.

@sehz sehz marked this pull request as draft February 11, 2022 05:24
@sehz sehz marked this pull request as ready for review February 15, 2022 19:01
@sehz
Copy link
Contributor Author

sehz commented Feb 15, 2022

bors r+

bors bot pushed a commit that referenced this pull request Feb 15, 2022
resolves #2116.

* Fix soundness of the batch offset_delta.  Update tests to fully specify behavior.
* Add internal CLI too to validate the segment.  This can be invoked by: ```cargo run --bin storage-cli --features=cli --release```.
* Change default `StorageBytesIterator` implementation to use `pread` call instead of the memory map.  It is 10x slower but should reduce I/O overhead.  
* Instead of using async-fil write, use `std` file system write to avoid `reposition` call which could batch to be overwritten in high overload case.   This could incur some latency due to the fact `write` is not async.  This should be resolved once we have the next generation of the file i/o sub-system.
* Improve index write logic to improve efficiency.  Before it was writing index offset too much.
@bors
Copy link

bors bot commented Feb 15, 2022

Pull request successfully merged into master.

Build succeeded:

@bors bors bot changed the title Fix index corruption [Merged by Bors] - Fix index corruption Feb 15, 2022
@bors bors bot closed this Feb 15, 2022
@sehz sehz deleted the fix_index_corruption branch February 16, 2022 14:25
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.

SPU stuck with large consumer and producer
1 participant