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

[SPARK-47278][BUILD] Upgrade rocksdbjni to 8.11.3 #45365

Closed
wants to merge 6 commits into from

Conversation

LuciferYang
Copy link
Contributor

@LuciferYang LuciferYang commented Mar 3, 2024

What changes were proposed in this pull request?

This pr aims to upgrade rocksdbjni from 8.8.1 to 8.11.3.

Why are the changes needed?

The new version bring some bug fixes:

  • Fix a corner case with auto_readahead_size where Prev Operation returns NOT SUPPORTED error when scans direction is changed from forward to backward.
  • Avoid destroying the periodic task scheduler's default timer in order to prevent static destruction order issues.
  • Fix double counting of BYTES_WRITTEN ticker when doing writes with transactions.
  • Fix a WRITE_STALL counter that was reporting wrong value in few cases.
  • A lookup by MultiGet in a TieredCache that goes to the local flash cache and finishes with very low latency, i.e before the subsequent call to WaitAll, is ignored, resulting in a false negative and a memory leak.
  • Fix bug in auto_readahead_size that combined with IndexType::kBinarySearchWithFirstKey + fails or iterator lands at a wrong key
  • Fixed some cases in which DB file corruption was detected but ignored on creating a backup with BackupEngine.
  • Fix bugs where rocksdb.blobdb.blob.file.synced includes blob files failed to get synced and rocksdb.blobdb.blob.file.bytes.written includes blob bytes failed to get written.
  • Fixed a possible memory leak or crash on a failure (such as I/O error) in automatic atomic flush of multiple column families.
  • Fixed some cases of in-memory data corruption using mmap reads with BackupEngine, sst_dump, or ldb.
  • Fixed issues with experimental preclude_last_level_data_seconds option that could interfere with expected data tiering.
  • Fixed the handling of the edge case when all existing blob files become unreferenced. Such files are now correctly deleted.

The full release notes as follows:

Does this PR introduce any user-facing change?

No

How was this patch tested?

Pass GitHub Actions

Was this patch authored or co-authored using generative AI tooling?

No

@LuciferYang LuciferYang marked this pull request as draft March 3, 2024 09:01
@github-actions github-actions bot added the BUILD label Mar 3, 2024
@github-actions github-actions bot added the SQL label Mar 4, 2024
@dongjoon-hyun
Copy link
Member

Thank you, @LuciferYang . Is it ready?

@LuciferYang LuciferYang changed the title [WIP] Test rocksdbjni 8.11.3 [SPARK-47278][BUILD] Upgrade rocksdbjni to 8.11.3 Mar 5, 2024
@LuciferYang
Copy link
Contributor Author

LuciferYang commented Mar 5, 2024

@dongjoon-hyun Let's run another two or three rounds of tests

@LuciferYang LuciferYang marked this pull request as ready for review March 7, 2024 09:57
@yaooqinn
Copy link
Member

yaooqinn commented Mar 7, 2024

Merged to master.

Thank you @LuciferYang @dongjoon-hyun

@yaooqinn yaooqinn closed this in 3112762 Mar 7, 2024
@LuciferYang
Copy link
Contributor Author

Thanks @yaooqinn @dongjoon-hyun

Copy link
Member

@dongjoon-hyun dongjoon-hyun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1, LGTM. Thank you!

jpcorreia99 pushed a commit to jpcorreia99/spark that referenced this pull request Mar 12, 2024
### What changes were proposed in this pull request?
This pr aims to upgrade rocksdbjni from 8.8.1 to 8.11.3.

### Why are the changes needed?
The new version bring some bug fixes:

- Fix a corner case with auto_readahead_size where Prev Operation returns NOT SUPPORTED error when scans direction is changed from forward to backward.
- Avoid destroying the periodic task scheduler's default timer in order to prevent static destruction order issues.
- Fix double counting of BYTES_WRITTEN ticker when doing writes with transactions.
- Fix a WRITE_STALL counter that was reporting wrong value in few cases.
- A lookup by MultiGet in a TieredCache that goes to the local flash cache and finishes with very low latency, i.e before the subsequent call to WaitAll, is ignored, resulting in a false negative and a memory leak.
- Fix bug in auto_readahead_size that combined with IndexType::kBinarySearchWithFirstKey + fails or iterator lands at a wrong key
- Fixed some cases in which DB file corruption was detected but ignored on creating a backup with BackupEngine.
- Fix bugs where rocksdb.blobdb.blob.file.synced includes blob files failed to get synced and rocksdb.blobdb.blob.file.bytes.written includes blob bytes failed to get written.
- Fixed a possible memory leak or crash on a failure (such as I/O error) in automatic atomic flush of multiple column families.
- Fixed some cases of in-memory data corruption using mmap reads with BackupEngine, sst_dump, or ldb.
- Fixed issues with experimental preclude_last_level_data_seconds option that could interfere with expected data tiering.
- Fixed the handling of the edge case when all existing blob files become unreferenced. Such files are now correctly deleted.

The full release notes as follows:

- https://github.com/facebook/rocksdb/releases/tag/v8.9.1
- https://github.com/facebook/rocksdb/releases/tag/v8.10.0
- https://github.com/facebook/rocksdb/releases/tag/v8.11.3

### Does this PR introduce _any_ user-facing change?
No

### How was this patch tested?
Pass GitHub Actions

### Was this patch authored or co-authored using generative AI tooling?
No

Closes apache#45365 from LuciferYang/rocksdbjni-8.11.3.

Lead-authored-by: yangjie01 <yangjie01@baidu.com>
Co-authored-by: YangJie <yangjie01@baidu.com>
Signed-off-by: Kent Yao <yao@apache.org>
@LuciferYang LuciferYang deleted the rocksdbjni-8.11.3 branch March 19, 2024 07:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants