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

Ps 5.7 ft 732 #1309

Merged
merged 2 commits into from
Jan 20, 2017
Merged

Ps 5.7 ft 732 #1309

merged 2 commits into from
Jan 20, 2017

Conversation

george-lorch
Copy link
Contributor

No description provided.

George O. Lorch III added 2 commits January 20, 2017 13:09
- Advanced PerconaFT git submodule pointer to new commit for fix
@george-lorch
Copy link
Contributor Author

@george-lorch george-lorch merged commit b2c2983 into percona:5.7 Jan 20, 2017
@george-lorch george-lorch deleted the ps-5.7-FT-732 branch January 20, 2017 23:02
inikep pushed a commit to inikep/percona-server that referenced this pull request Dec 20, 2023
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
inikep pushed a commit to inikep/percona-server that referenced this pull request Dec 20, 2023
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
inikep pushed a commit to inikep/percona-server that referenced this pull request Jan 15, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
inikep pushed a commit that referenced this pull request Jan 17, 2024
…le (#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
inikep pushed a commit to inikep/percona-server that referenced this pull request Jan 17, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
inikep pushed a commit to inikep/percona-server that referenced this pull request Jan 17, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
inikep pushed a commit to inikep/percona-server that referenced this pull request Feb 8, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request Feb 9, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request Feb 9, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request Feb 12, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request Apr 12, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request Apr 12, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request Apr 12, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request Apr 15, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request Apr 15, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request Apr 15, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request Apr 15, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request Apr 15, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request Apr 15, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request Apr 15, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request Apr 15, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request Apr 15, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request Apr 16, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request Apr 16, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request Apr 16, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request Apr 16, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request Apr 16, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request Apr 16, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request Apr 16, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request Apr 18, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request Apr 29, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request May 13, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request May 24, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
oleksandr-kachan pushed a commit to oleksandr-kachan/percona-server that referenced this pull request May 27, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
VarunNagaraju pushed a commit to VarunNagaraju/percona-server that referenced this pull request May 31, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
VarunNagaraju pushed a commit to VarunNagaraju/percona-server that referenced this pull request Jun 5, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
VarunNagaraju pushed a commit to VarunNagaraju/percona-server that referenced this pull request Jun 10, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
VarunNagaraju pushed a commit to VarunNagaraju/percona-server that referenced this pull request Jun 12, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
VarunNagaraju pushed a commit to VarunNagaraju/percona-server that referenced this pull request Jun 12, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
dlenev pushed a commit to dlenev/percona-server that referenced this pull request Jul 25, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
dlenev pushed a commit to dlenev/percona-server that referenced this pull request Jul 30, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
dlenev pushed a commit to dlenev/percona-server that referenced this pull request Aug 21, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
dlenev pushed a commit to dlenev/percona-server that referenced this pull request Aug 28, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
dlenev pushed a commit to dlenev/percona-server that referenced this pull request Aug 30, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
inikep pushed a commit that referenced this pull request Sep 23, 2024
…le (#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
inikep pushed a commit that referenced this pull request Sep 25, 2024
…le (#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
inikep pushed a commit to inikep/percona-server that referenced this pull request Sep 25, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
dlenev pushed a commit to dlenev/percona-server that referenced this pull request Oct 17, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
dlenev pushed a commit to dlenev/percona-server that referenced this pull request Oct 17, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
dlenev pushed a commit to dlenev/percona-server that referenced this pull request Oct 22, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
inikep pushed a commit to inikep/percona-server that referenced this pull request Oct 28, 2024
…le (percona#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

fbshipit-source-id: b5ab4d03a984cd0615ad2a828af80b7389b2508f
inikep pushed a commit that referenced this pull request Oct 30, 2024
…le (#1309)

Upstream commit ID: facebook/mysql-5.6@3ba4f39
PS-8951: Merge percona-202305 (https://jira.percona.com/browse/PS-8951)

Summary:
This fixes issue 1295 and has a workaround for issue 1200. facebook/mysql-5.6#1200
facebook/mysql-5.6#1295

The fix for issue 1295 is to get the value of the base level from RocksDB rather than assuming that L0 compacts into L1 because L1 might not be the base level when dynamic leveled compaction is used -- in that case the base level can be Ln where n > 1 because L1 isn't needed yet.

There are two workarounds for issue 1200. The hacky one is to sleep for 1 second between requesting memtable flush and L0 -> base_level compaction.

The alternative is to add a new global variable, rocksdb_compact_lzero_now, that when set will request L0 -> base_level compaction. This allows a client to first set rocksdb_force_flush_memtable_now, wait for that to finish, then set rocksdb_compact_lzero_now.

Other changes:
* rocksdb_force_flush_memtable_now default value changed to OFF to match what is done for rocksdb_force_flush_memtable_and_lzero_now and rocksdb_compact_lzero_now
* confirm that the value to which these variables are set can be parsed, that wasn't done for all of them
* don't raise an error when these are set to OFF, that will be a no-op

Note: these variables are triggers, an action is taken when this is done: set global var = ON | true | 1

But these variables always show the value 0 (OFF, false). Their value doesn't change.

Pull Request resolved: facebook/mysql-5.6#1309

Differential Revision: D45789784

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

1 participant