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

Avoid usage of RocksDB deleteRange() in DbLedgerStorage #1620

Closed
wants to merge 1 commit into from

Conversation

merlimat
Copy link
Contributor

Motivation

There are few issues that are reconducible to a performance degradation in RocksDB when using deleteRange() feature (eg: apache/pulsar#1737 and others).

There is some discussion going on RocksDB to address this issue: facebook/rocksdb#3959

In the meantime, we should rollback the change and don't use deleteRange until these issues are resolved.

Changes

This PR is essentially reverting back the commit YahooArchive@4b84990 from Yahoo branch (which was squashed when merging back to apache).
The only addition here is to use DELETE_ENTRIES_BATCH_SIZE to amortize the cost of batch.flush() when there are many ledgers with few entries.

@merlimat
Copy link
Contributor Author

run integration tests

@sijie sijie modified the milestones: 4.8.0, 4.9.0 Aug 23, 2018
@sijie sijie closed this in dca471d Aug 23, 2018
sijie pushed a commit that referenced this pull request Aug 23, 2018
### Motivation

There are few issues that are reconducible to a performance degradation in RocksDB when using deleteRange() feature (eg: apache/pulsar#1737 and others).

There is some discussion going on RocksDB to address this issue: facebook/rocksdb#3959

In the meantime, we should rollback the change and don't use deleteRange until these issues are resolved.

### Changes

This PR is essentially reverting back the commit YahooArchive@4b84990 from Yahoo branch (which was squashed when merging back to apache).
The only addition here is to use `DELETE_ENTRIES_BATCH_SIZE` to amortize the cost of `batch.flush()` when there are many ledgers with few entries.

Author: Matteo Merli <mmerli@apache.org>

Reviewers: Ivan Kelly <ivank@apache.org>, Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1620 from merlimat/rollback-delete-range

(cherry picked from commit dca471d)
Signed-off-by: Sijie Guo <sijie@apache.org>
sijie pushed a commit that referenced this pull request Aug 23, 2018
### Motivation

There are few issues that are reconducible to a performance degradation in RocksDB when using deleteRange() feature (eg: apache/pulsar#1737 and others).

There is some discussion going on RocksDB to address this issue: facebook/rocksdb#3959

In the meantime, we should rollback the change and don't use deleteRange until these issues are resolved.

### Changes

This PR is essentially reverting back the commit YahooArchive@4b84990 from Yahoo branch (which was squashed when merging back to apache).
The only addition here is to use `DELETE_ENTRIES_BATCH_SIZE` to amortize the cost of `batch.flush()` when there are many ledgers with few entries.

Author: Matteo Merli <mmerli@apache.org>

Reviewers: Ivan Kelly <ivank@apache.org>, Enrico Olivelli <eolivelli@gmail.com>, Sijie Guo <sijie@apache.org>

This closes #1620 from merlimat/rollback-delete-range

(cherry picked from commit dca471d)
Signed-off-by: Sijie Guo <sijie@apache.org>
@merlimat merlimat modified the milestones: 4.9.0, 4.8.0 Aug 23, 2018
@merlimat merlimat deleted the rollback-delete-range branch August 23, 2018 17:20
hangc0276 added a commit that referenced this pull request Nov 18, 2022
…ance (#3653)

### Motivation
The entry log location index deletion is deleted in batches one by one currently, and it will have low performance. Refer to: #3646

Matteo has introduced deleteRange API a few years ago, but rollback due to RocksDB delete ranges bug. #1620.  The RocksDB bug has been addressed since 5.18.0 https://github.com/facebook/rocksdb/blob/main/HISTORY.md#5180-2018-11-30. We can bring the `deleteRange` API back to improve the entry log location deletion performance.

### Changes
Bring `deleteRange` API back for entry log location deletion.
hangc0276 added a commit that referenced this pull request Nov 21, 2022
…ance (#3653)

The entry log location index deletion is deleted in batches one by one currently, and it will have low performance. Refer to: #3646

Matteo has introduced deleteRange API a few years ago, but rollback due to RocksDB delete ranges bug. #1620.  The RocksDB bug has been addressed since 5.18.0 https://github.com/facebook/rocksdb/blob/main/HISTORY.md#5180-2018-11-30. We can bring the `deleteRange` API back to improve the entry log location deletion performance.

Bring `deleteRange` API back for entry log location deletion.

(cherry picked from commit 696919c)
zhaohaidao pushed a commit to zhaohaidao/bookkeeper that referenced this pull request Nov 21, 2022
…ance (apache#3653)

### Motivation
The entry log location index deletion is deleted in batches one by one currently, and it will have low performance. Refer to: apache#3646

Matteo has introduced deleteRange API a few years ago, but rollback due to RocksDB delete ranges bug. apache#1620.  The RocksDB bug has been addressed since 5.18.0 https://github.com/facebook/rocksdb/blob/main/HISTORY.md#5180-2018-11-30. We can bring the `deleteRange` API back to improve the entry log location deletion performance.

### Changes
Bring `deleteRange` API back for entry log location deletion.
nicoloboschi pushed a commit to datastax/bookkeeper that referenced this pull request Jan 11, 2023
…ance (apache#3653)

The entry log location index deletion is deleted in batches one by one currently, and it will have low performance. Refer to: apache#3646

Matteo has introduced deleteRange API a few years ago, but rollback due to RocksDB delete ranges bug. apache#1620.  The RocksDB bug has been addressed since 5.18.0 https://github.com/facebook/rocksdb/blob/main/HISTORY.md#5180-2018-11-30. We can bring the `deleteRange` API back to improve the entry log location deletion performance.

Bring `deleteRange` API back for entry log location deletion.

(cherry picked from commit 696919c)
(cherry picked from commit e159510)
yaalsn pushed a commit to yaalsn/bookkeeper that referenced this pull request Jan 30, 2023
…ance (apache#3653)

### Motivation
The entry log location index deletion is deleted in batches one by one currently, and it will have low performance. Refer to: apache#3646

Matteo has introduced deleteRange API a few years ago, but rollback due to RocksDB delete ranges bug. apache#1620.  The RocksDB bug has been addressed since 5.18.0 https://github.com/facebook/rocksdb/blob/main/HISTORY.md#5180-2018-11-30. We can bring the `deleteRange` API back to improve the entry log location deletion performance.

### Changes
Bring `deleteRange` API back for entry log location deletion.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants