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

set m_read_opts.ignore_range_deletions properly #1218

Open
wants to merge 2 commits into
base: fb-mysql-8.0.28
Choose a base branch
from

Conversation

rockeet
Copy link
Contributor

@rockeet rockeet commented Aug 28, 2022

ignore_range_deletions should be set to true when range del is not enabled

ignore_range_deletions should be set to true when range del is not enabled
@facebook-github-bot
Copy link

@yoshinorim has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@Pushapgl
Copy link
Contributor

whats the motivation of this change?

@rockeet
Copy link
Contributor Author

rockeet commented Aug 31, 2022

whats the motivation of this change?

if dont ignore_range_deletions, DB reads will try to construct RangeDelAggregator which waste amount of CPU time without any useful work when rocksdb_enable_delete_range_for_drop_index was set to false.

facebook-github-bot pushed a commit that referenced this pull request Nov 15, 2022
Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: #1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb
inikep pushed a commit to inikep/percona-server that referenced this pull request Feb 16, 2023
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
inikep pushed a commit to inikep/percona-server that referenced this pull request Feb 16, 2023
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
inikep pushed a commit to inikep/percona-server that referenced this pull request Feb 20, 2023
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
inikep pushed a commit to inikep/percona-server that referenced this pull request Feb 24, 2023
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
inikep pushed a commit to inikep/percona-server that referenced this pull request Feb 28, 2023
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
alanliang pushed a commit to alanliang/mysql-5.6 that referenced this pull request Mar 4, 2023
Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook#1218
GitHub Author: leipeng <[email protected]>

Test Plan: Imported from GitHub, without a `Test Plan:` line.

Reviewers: pgl

Reviewed By: pgl

Subscribers: pgl, [email protected]

Differential Revision: https://phabricator.intern.facebook.com/D39115879

Tags: accept2ship
inikep pushed a commit to inikep/percona-server that referenced this pull request Mar 4, 2023
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
inikep pushed a commit to inikep/percona-server that referenced this pull request Mar 29, 2023
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
inikep pushed a commit to inikep/percona-server that referenced this pull request Apr 13, 2023
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
inikep pushed a commit to percona/percona-server that referenced this pull request Apr 14, 2023
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
inikep pushed a commit to inikep/percona-server that referenced this pull request Apr 14, 2023
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
inikep pushed a commit to inikep/percona-server that referenced this pull request Apr 21, 2023
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
inikep pushed a commit to inikep/percona-server that referenced this pull request Apr 24, 2023
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
inikep pushed a commit to inikep/percona-server that referenced this pull request Apr 24, 2023
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
inikep pushed a commit to inikep/percona-server that referenced this pull request Apr 25, 2023
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
inikep pushed a commit to inikep/percona-server that referenced this pull request Apr 26, 2023
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request May 10, 2023
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
inikep pushed a commit to inikep/mysql-5.6 that referenced this pull request May 12, 2023
Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb
inikep pushed a commit to inikep/mysql-5.6 that referenced this pull request May 12, 2023
Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb
inikep pushed a commit to inikep/mysql-5.6 that referenced this pull request May 15, 2023
Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb
inikep pushed a commit to inikep/mysql-5.6 that referenced this pull request May 16, 2023
Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb
inikep pushed a commit to inikep/mysql-5.6 that referenced this pull request May 17, 2023
Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb
inikep pushed a commit to inikep/mysql-5.6 that referenced this pull request May 18, 2023
Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb
VarunNagaraju pushed a commit to VarunNagaraju/percona-server that referenced this pull request May 31, 2024
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
VarunNagaraju pushed a commit to VarunNagaraju/percona-server that referenced this pull request Jun 5, 2024
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
VarunNagaraju pushed a commit to VarunNagaraju/percona-server that referenced this pull request Jun 10, 2024
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
VarunNagaraju pushed a commit to VarunNagaraju/percona-server that referenced this pull request Jun 12, 2024
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
VarunNagaraju pushed a commit to VarunNagaraju/percona-server that referenced this pull request Jun 12, 2024
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
inikep pushed a commit to inikep/mysql-5.6 that referenced this pull request Jul 12, 2024
Summary:
If the intrinsic tmp tables goes beyond some threshold, then we commit the write batch accumulated so far and start new transaction handling the write batch.

**Changes**
* Added a variable rocksdb_max_intrinsic_tmp_table_write_count which controls the size of write batch allowed for intrinsic tmp table. Once we cross that threshold, we will commit the current transaction and then start a new transaction.
* If there are valid open iterators before we commit intrinsic tmp table transaction, then we refresh all iterators back to previous position after committing transaction.  Recursive cte opens multiple iterators for same transaction and we need to refresh all iterators after we commit the current write batch for transaction.
     * I also refreshed the iterators after the first write to the write batch. This is done to handle the special case where we start rocksdb iterator on new transaction(with empty write batch). Then iterator will only see the already committed data, but ignores any new data added in write batch later. So we are pro-actively refresh the iterator after first write in write batch.
* Added a status variable rocksdb_intrinsic_tmp_table_commits to count number of intrinsic tmp table commits.
* create_ondisk_from_heap method uses table->record[1] for insertion. Myrocks encode_value_slice relies on table->record[0] for value encoding. We have reposition the fields in write_row specifically for intrinsic tmp table to point to record[1]. Better way to fix this is to remove the dependency on record[1] from encode_value_slice method and add dependency on input buf from write_row.

Reviewed By: luqun

Differential Revision: D37835016

---------------------------------------------------------------------------------------

Temporarily disable some of rocksdb.tmp_table test

Summary:
RocksDB tmp table needs bug fixes, and meanwhile
disabling some of the rocksdb.tmp_table tests so that it won't
report failures.

Reviewed By: lth

Differential Revision: D41391615

---------------------------------------------------------------------------------------

set m_read_opts.ignore_range_deletions properly (facebook#1218)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim
inikep pushed a commit to inikep/mysql-5.6 that referenced this pull request Jul 12, 2024
Summary:
If the intrinsic tmp tables goes beyond some threshold, then we commit the write batch accumulated so far and start new transaction handling the write batch.

**Changes**
* Added a variable rocksdb_max_intrinsic_tmp_table_write_count which controls the size of write batch allowed for intrinsic tmp table. Once we cross that threshold, we will commit the current transaction and then start a new transaction.
* If there are valid open iterators before we commit intrinsic tmp table transaction, then we refresh all iterators back to previous position after committing transaction.  Recursive cte opens multiple iterators for same transaction and we need to refresh all iterators after we commit the current write batch for transaction.
     * I also refreshed the iterators after the first write to the write batch. This is done to handle the special case where we start rocksdb iterator on new transaction(with empty write batch). Then iterator will only see the already committed data, but ignores any new data added in write batch later. So we are pro-actively refresh the iterator after first write in write batch.
* Added a status variable rocksdb_intrinsic_tmp_table_commits to count number of intrinsic tmp table commits.
* create_ondisk_from_heap method uses table->record[1] for insertion. Myrocks encode_value_slice relies on table->record[0] for value encoding. We have reposition the fields in write_row specifically for intrinsic tmp table to point to record[1]. Better way to fix this is to remove the dependency on record[1] from encode_value_slice method and add dependency on input buf from write_row.

Reviewed By: luqun

Differential Revision: D37835016

---------------------------------------------------------------------------------------

Temporarily disable some of rocksdb.tmp_table test

Summary:
RocksDB tmp table needs bug fixes, and meanwhile
disabling some of the rocksdb.tmp_table tests so that it won't
report failures.

Reviewed By: lth

Differential Revision: D41391615

---------------------------------------------------------------------------------------

set m_read_opts.ignore_range_deletions properly (facebook#1218)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim
inikep pushed a commit to inikep/mysql-5.6 that referenced this pull request Jul 17, 2024
Summary:
If the intrinsic tmp tables goes beyond some threshold, then we commit the write batch accumulated so far and start new transaction handling the write batch.

**Changes**
* Added a variable rocksdb_max_intrinsic_tmp_table_write_count which controls the size of write batch allowed for intrinsic tmp table. Once we cross that threshold, we will commit the current transaction and then start a new transaction.
* If there are valid open iterators before we commit intrinsic tmp table transaction, then we refresh all iterators back to previous position after committing transaction.  Recursive cte opens multiple iterators for same transaction and we need to refresh all iterators after we commit the current write batch for transaction.
     * I also refreshed the iterators after the first write to the write batch. This is done to handle the special case where we start rocksdb iterator on new transaction(with empty write batch). Then iterator will only see the already committed data, but ignores any new data added in write batch later. So we are pro-actively refresh the iterator after first write in write batch.
* Added a status variable rocksdb_intrinsic_tmp_table_commits to count number of intrinsic tmp table commits.
* create_ondisk_from_heap method uses table->record[1] for insertion. Myrocks encode_value_slice relies on table->record[0] for value encoding. We have reposition the fields in write_row specifically for intrinsic tmp table to point to record[1]. Better way to fix this is to remove the dependency on record[1] from encode_value_slice method and add dependency on input buf from write_row.

Reviewed By: luqun

Differential Revision: D37835016

---------------------------------------------------------------------------------------

Temporarily disable some of rocksdb.tmp_table test

Summary:
RocksDB tmp table needs bug fixes, and meanwhile
disabling some of the rocksdb.tmp_table tests so that it won't
report failures.

Reviewed By: lth

Differential Revision: D41391615

---------------------------------------------------------------------------------------

set m_read_opts.ignore_range_deletions properly (facebook#1218)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim
inikep pushed a commit to inikep/mysql-5.6 that referenced this pull request Jul 19, 2024
Summary:
If the intrinsic tmp tables goes beyond some threshold, then we commit the write batch accumulated so far and start new transaction handling the write batch.

**Changes**
* Added a variable rocksdb_max_intrinsic_tmp_table_write_count which controls the size of write batch allowed for intrinsic tmp table. Once we cross that threshold, we will commit the current transaction and then start a new transaction.
* If there are valid open iterators before we commit intrinsic tmp table transaction, then we refresh all iterators back to previous position after committing transaction.  Recursive cte opens multiple iterators for same transaction and we need to refresh all iterators after we commit the current write batch for transaction.
     * I also refreshed the iterators after the first write to the write batch. This is done to handle the special case where we start rocksdb iterator on new transaction(with empty write batch). Then iterator will only see the already committed data, but ignores any new data added in write batch later. So we are pro-actively refresh the iterator after first write in write batch.
* Added a status variable rocksdb_intrinsic_tmp_table_commits to count number of intrinsic tmp table commits.
* create_ondisk_from_heap method uses table->record[1] for insertion. Myrocks encode_value_slice relies on table->record[0] for value encoding. We have reposition the fields in write_row specifically for intrinsic tmp table to point to record[1]. Better way to fix this is to remove the dependency on record[1] from encode_value_slice method and add dependency on input buf from write_row.

Reviewed By: luqun

Differential Revision: D37835016

---------------------------------------------------------------------------------------

Temporarily disable some of rocksdb.tmp_table test

Summary:
RocksDB tmp table needs bug fixes, and meanwhile
disabling some of the rocksdb.tmp_table tests so that it won't
report failures.

Reviewed By: lth

Differential Revision: D41391615

---------------------------------------------------------------------------------------

set m_read_opts.ignore_range_deletions properly (facebook#1218)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim
inikep pushed a commit to inikep/mysql-5.6 that referenced this pull request Jul 19, 2024
Summary:
If the intrinsic tmp tables goes beyond some threshold, then we commit the write batch accumulated so far and start new transaction handling the write batch.

**Changes**
* Added a variable rocksdb_max_intrinsic_tmp_table_write_count which controls the size of write batch allowed for intrinsic tmp table. Once we cross that threshold, we will commit the current transaction and then start a new transaction.
* If there are valid open iterators before we commit intrinsic tmp table transaction, then we refresh all iterators back to previous position after committing transaction.  Recursive cte opens multiple iterators for same transaction and we need to refresh all iterators after we commit the current write batch for transaction.
     * I also refreshed the iterators after the first write to the write batch. This is done to handle the special case where we start rocksdb iterator on new transaction(with empty write batch). Then iterator will only see the already committed data, but ignores any new data added in write batch later. So we are pro-actively refresh the iterator after first write in write batch.
* Added a status variable rocksdb_intrinsic_tmp_table_commits to count number of intrinsic tmp table commits.
* create_ondisk_from_heap method uses table->record[1] for insertion. Myrocks encode_value_slice relies on table->record[0] for value encoding. We have reposition the fields in write_row specifically for intrinsic tmp table to point to record[1]. Better way to fix this is to remove the dependency on record[1] from encode_value_slice method and add dependency on input buf from write_row.

Reviewed By: luqun

Differential Revision: D37835016

---------------------------------------------------------------------------------------

Temporarily disable some of rocksdb.tmp_table test

Summary:
RocksDB tmp table needs bug fixes, and meanwhile
disabling some of the rocksdb.tmp_table tests so that it won't
report failures.

Reviewed By: lth

Differential Revision: D41391615

---------------------------------------------------------------------------------------

set m_read_opts.ignore_range_deletions properly (facebook#1218)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim
dlenev pushed a commit to dlenev/percona-server that referenced this pull request Jul 25, 2024
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
inikep pushed a commit to inikep/mysql-5.6 that referenced this pull request Jul 30, 2024
Summary:
If the intrinsic tmp tables goes beyond some threshold, then we commit the write batch accumulated so far and start new transaction handling the write batch.

**Changes**
* Added a variable rocksdb_max_intrinsic_tmp_table_write_count which controls the size of write batch allowed for intrinsic tmp table. Once we cross that threshold, we will commit the current transaction and then start a new transaction.
* If there are valid open iterators before we commit intrinsic tmp table transaction, then we refresh all iterators back to previous position after committing transaction.  Recursive cte opens multiple iterators for same transaction and we need to refresh all iterators after we commit the current write batch for transaction.
     * I also refreshed the iterators after the first write to the write batch. This is done to handle the special case where we start rocksdb iterator on new transaction(with empty write batch). Then iterator will only see the already committed data, but ignores any new data added in write batch later. So we are pro-actively refresh the iterator after first write in write batch.
* Added a status variable rocksdb_intrinsic_tmp_table_commits to count number of intrinsic tmp table commits.
* create_ondisk_from_heap method uses table->record[1] for insertion. Myrocks encode_value_slice relies on table->record[0] for value encoding. We have reposition the fields in write_row specifically for intrinsic tmp table to point to record[1]. Better way to fix this is to remove the dependency on record[1] from encode_value_slice method and add dependency on input buf from write_row.

Reviewed By: luqun

Differential Revision: D37835016

---------------------------------------------------------------------------------------

Temporarily disable some of rocksdb.tmp_table test

Summary:
RocksDB tmp table needs bug fixes, and meanwhile
disabling some of the rocksdb.tmp_table tests so that it won't
report failures.

Reviewed By: lth

Differential Revision: D41391615

---------------------------------------------------------------------------------------

set m_read_opts.ignore_range_deletions properly (facebook#1218)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim
dlenev pushed a commit to dlenev/percona-server that referenced this pull request Jul 30, 2024
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
inikep pushed a commit to inikep/mysql-5.6 that referenced this pull request Jul 31, 2024
Summary:
If the intrinsic tmp tables goes beyond some threshold, then we commit the write batch accumulated so far and start new transaction handling the write batch.

**Changes**
* Added a variable rocksdb_max_intrinsic_tmp_table_write_count which controls the size of write batch allowed for intrinsic tmp table. Once we cross that threshold, we will commit the current transaction and then start a new transaction.
* If there are valid open iterators before we commit intrinsic tmp table transaction, then we refresh all iterators back to previous position after committing transaction.  Recursive cte opens multiple iterators for same transaction and we need to refresh all iterators after we commit the current write batch for transaction.
     * I also refreshed the iterators after the first write to the write batch. This is done to handle the special case where we start rocksdb iterator on new transaction(with empty write batch). Then iterator will only see the already committed data, but ignores any new data added in write batch later. So we are pro-actively refresh the iterator after first write in write batch.
* Added a status variable rocksdb_intrinsic_tmp_table_commits to count number of intrinsic tmp table commits.
* create_ondisk_from_heap method uses table->record[1] for insertion. Myrocks encode_value_slice relies on table->record[0] for value encoding. We have reposition the fields in write_row specifically for intrinsic tmp table to point to record[1]. Better way to fix this is to remove the dependency on record[1] from encode_value_slice method and add dependency on input buf from write_row.

Reviewed By: luqun

Differential Revision: D37835016

---------------------------------------------------------------------------------------

Temporarily disable some of rocksdb.tmp_table test

Summary:
RocksDB tmp table needs bug fixes, and meanwhile
disabling some of the rocksdb.tmp_table tests so that it won't
report failures.

Reviewed By: lth

Differential Revision: D41391615

---------------------------------------------------------------------------------------

set m_read_opts.ignore_range_deletions properly (facebook#1218)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim
inikep pushed a commit to inikep/mysql-5.6 that referenced this pull request Aug 2, 2024
Summary:
If the intrinsic tmp tables goes beyond some threshold, then we commit the write batch accumulated so far and start new transaction handling the write batch.

**Changes**
* Added a variable rocksdb_max_intrinsic_tmp_table_write_count which controls the size of write batch allowed for intrinsic tmp table. Once we cross that threshold, we will commit the current transaction and then start a new transaction.
* If there are valid open iterators before we commit intrinsic tmp table transaction, then we refresh all iterators back to previous position after committing transaction.  Recursive cte opens multiple iterators for same transaction and we need to refresh all iterators after we commit the current write batch for transaction.
     * I also refreshed the iterators after the first write to the write batch. This is done to handle the special case where we start rocksdb iterator on new transaction(with empty write batch). Then iterator will only see the already committed data, but ignores any new data added in write batch later. So we are pro-actively refresh the iterator after first write in write batch.
* Added a status variable rocksdb_intrinsic_tmp_table_commits to count number of intrinsic tmp table commits.
* create_ondisk_from_heap method uses table->record[1] for insertion. Myrocks encode_value_slice relies on table->record[0] for value encoding. We have reposition the fields in write_row specifically for intrinsic tmp table to point to record[1]. Better way to fix this is to remove the dependency on record[1] from encode_value_slice method and add dependency on input buf from write_row.

Reviewed By: luqun

Differential Revision: D37835016

---------------------------------------------------------------------------------------

Temporarily disable some of rocksdb.tmp_table test

Summary:
RocksDB tmp table needs bug fixes, and meanwhile
disabling some of the rocksdb.tmp_table tests so that it won't
report failures.

Reviewed By: lth

Differential Revision: D41391615

---------------------------------------------------------------------------------------

set m_read_opts.ignore_range_deletions properly (facebook#1218)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim
inikep pushed a commit to inikep/mysql-5.6 that referenced this pull request Aug 6, 2024
Summary:
If the intrinsic tmp tables goes beyond some threshold, then we commit the write batch accumulated so far and start new transaction handling the write batch.

**Changes**
* Added a variable rocksdb_max_intrinsic_tmp_table_write_count which controls the size of write batch allowed for intrinsic tmp table. Once we cross that threshold, we will commit the current transaction and then start a new transaction.
* If there are valid open iterators before we commit intrinsic tmp table transaction, then we refresh all iterators back to previous position after committing transaction.  Recursive cte opens multiple iterators for same transaction and we need to refresh all iterators after we commit the current write batch for transaction.
     * I also refreshed the iterators after the first write to the write batch. This is done to handle the special case where we start rocksdb iterator on new transaction(with empty write batch). Then iterator will only see the already committed data, but ignores any new data added in write batch later. So we are pro-actively refresh the iterator after first write in write batch.
* Added a status variable rocksdb_intrinsic_tmp_table_commits to count number of intrinsic tmp table commits.
* create_ondisk_from_heap method uses table->record[1] for insertion. Myrocks encode_value_slice relies on table->record[0] for value encoding. We have reposition the fields in write_row specifically for intrinsic tmp table to point to record[1]. Better way to fix this is to remove the dependency on record[1] from encode_value_slice method and add dependency on input buf from write_row.

Reviewed By: luqun

Differential Revision: D37835016

---------------------------------------------------------------------------------------

Temporarily disable some of rocksdb.tmp_table test

Summary:
RocksDB tmp table needs bug fixes, and meanwhile
disabling some of the rocksdb.tmp_table tests so that it won't
report failures.

Reviewed By: lth

Differential Revision: D41391615

---------------------------------------------------------------------------------------

set m_read_opts.ignore_range_deletions properly (facebook#1218)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim
dlenev pushed a commit to dlenev/percona-server that referenced this pull request Aug 21, 2024
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
dlenev pushed a commit to dlenev/percona-server that referenced this pull request Aug 28, 2024
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
dlenev pushed a commit to dlenev/percona-server that referenced this pull request Aug 30, 2024
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
inikep pushed a commit to percona/percona-server that referenced this pull request Sep 23, 2024
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
inikep pushed a commit to percona/percona-server that referenced this pull request Sep 25, 2024
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
inikep pushed a commit to inikep/percona-server that referenced this pull request Sep 25, 2024
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
dlenev pushed a commit to dlenev/percona-server that referenced this pull request Oct 17, 2024
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
dlenev pushed a commit to dlenev/percona-server that referenced this pull request Oct 17, 2024
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
dlenev pushed a commit to dlenev/percona-server that referenced this pull request Oct 22, 2024
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
inikep pushed a commit to inikep/percona-server that referenced this pull request Oct 28, 2024
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
inikep pushed a commit to percona/percona-server that referenced this pull request Oct 30, 2024
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
inikep pushed a commit to inikep/percona-server that referenced this pull request Nov 11, 2024
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
inikep pushed a commit to inikep/percona-server that referenced this pull request Nov 14, 2024
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
inikep pushed a commit to inikep/percona-server that referenced this pull request Nov 14, 2024
Upstream commit ID: facebook/mysql-5.6@238afbb
PS-8494: Merge percona-202206 (https://jira.percona.com/browse/PS-8494)

Summary:
ignore_range_deletions should be set to true when range del is not enabled

Pull Request resolved: facebook/mysql-5.6#1218

Reviewed By: Pushapgl

Differential Revision: D39115879

Pulled By: yoshinorim

fbshipit-source-id: 40e7bcb86590c8f9be44dfa3f74277fb3f49a6d5
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.

3 participants