-
Notifications
You must be signed in to change notification settings - Fork 6.2k
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
Extend property map with compaction stats #2794
Conversation
@Tema has imported this pull request. If you are a Facebook employee, you can view this diff on Phabricator. |
Summary: This branch extends existing property map which keeps values in doubles to keep values in strings so that it can be used to provide wider range of properties. The immediate need for that is to provide IO stall stats in an easy parseable way to MyRocks which is also part of this branch. Test Plan: Modify the existing tests which uses doubles to use strings. Added IO stall are tested thought MyRocks test.
@Tema updated the pull request - view changes - changes since last import |
db/internal_stats.cc
Outdated
cf_stats_count_[LEVEL0_NUM_FILES_TOTAL] + | ||
cf_stats_count_[SOFT_PENDING_COMPACTION_BYTES_LIMIT] + | ||
cf_stats_count_[HARD_PENDING_COMPACTION_BYTES_LIMIT] + | ||
cf_stats_count_[MEMTABLE_COMPACTION] + cf_stats_count_[MEMTABLE_SLOWDOWN]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are 2 kinds of stalls
slow down stalls -> Writes continue but with slow down penalty
stopping stalls -> Writes totally stop
I think we should have two different counters ("total_slowdown_stall", "total_stop_stall"
Also applied clang-format for modified code
@Tema updated the pull request - view changes - changes since last import |
@Tema has imported this pull request. If you are a Facebook employee, you can view this diff on Phabricator. |
uint64_t total_stop = | ||
cf_stats_count_[LEVEL0_NUM_FILES_TOTAL] + | ||
cf_stats_count_[HARD_PENDING_COMPACTION_BYTES_LIMIT] + | ||
cf_stats_count_[MEMTABLE_COMPACTION]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we should rename these constants (unrelated to your diff), they aren't descriptive at all.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
note the double-to-string conversion is done while holding the db mutex. I think it's ok as GetMapProperty
is already expensive for populating a map and not called internally.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, Thanks!
@Tema has imported this pull request. If you are a Facebook employee, you can view this diff on Phabricator. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suggested new names
void InternalStats::DumpCFMapStatsIOStalls( | ||
std::map<std::string, std::string>* cf_stats) { | ||
(*cf_stats)["io_stalls.level0_slowdown"] = | ||
std::to_string(cf_stats_count_[LEVEL0_SLOWDOWN_TOTAL]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
L0_FILE_COUNT_LIMIT_SLOWDOWNS
(*cf_stats)["io_stalls.level0_slowdown"] = | ||
std::to_string(cf_stats_count_[LEVEL0_SLOWDOWN_TOTAL]); | ||
(*cf_stats)["io_stalls.level0_slowdown_with_compaction"] = | ||
std::to_string(cf_stats_count_[LEVEL0_SLOWDOWN_WITH_COMPACTION]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LOCKED_L0_FILE_COUNT_LIMIT_SLOWDOWNS
(*cf_stats)["io_stalls.level0_slowdown_with_compaction"] = | ||
std::to_string(cf_stats_count_[LEVEL0_SLOWDOWN_WITH_COMPACTION]); | ||
(*cf_stats)["io_stalls.level0_numfiles"] = | ||
std::to_string(cf_stats_count_[LEVEL0_NUM_FILES_TOTAL]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
L0_FILE_COUNT_LIMIT_STOPS
(*cf_stats)["io_stalls.level0_numfiles"] = | ||
std::to_string(cf_stats_count_[LEVEL0_NUM_FILES_TOTAL]); | ||
(*cf_stats)["io_stalls.level0_numfiles_with_compaction"] = | ||
std::to_string(cf_stats_count_[LEVEL0_NUM_FILES_WITH_COMPACTION]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LOCKED_L0_FILE_COUNT_LIMIT_STOPS
(*cf_stats)["io_stalls.level0_numfiles_with_compaction"] = | ||
std::to_string(cf_stats_count_[LEVEL0_NUM_FILES_WITH_COMPACTION]); | ||
(*cf_stats)["io_stalls.stop_for_pending_compaction_bytes"] = | ||
std::to_string(cf_stats_count_[HARD_PENDING_COMPACTION_BYTES_LIMIT]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PENDING_COMPACTION_LIMIT_STOPS
(*cf_stats)["io_stalls.stop_for_pending_compaction_bytes"] = | ||
std::to_string(cf_stats_count_[HARD_PENDING_COMPACTION_BYTES_LIMIT]); | ||
(*cf_stats)["io_stalls.slowdown_for_pending_compaction_bytes"] = | ||
std::to_string(cf_stats_count_[SOFT_PENDING_COMPACTION_BYTES_LIMIT]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PENDING_COMPACTION_LIMIT_SLOWDOWNS
(*cf_stats)["io_stalls.slowdown_for_pending_compaction_bytes"] = | ||
std::to_string(cf_stats_count_[SOFT_PENDING_COMPACTION_BYTES_LIMIT]); | ||
(*cf_stats)["io_stalls.memtable_compaction"] = | ||
std::to_string(cf_stats_count_[MEMTABLE_COMPACTION]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
MEMTABLE_LIMIT_STOPS
(*cf_stats)["io_stalls.memtable_compaction"] = | ||
std::to_string(cf_stats_count_[MEMTABLE_COMPACTION]); | ||
(*cf_stats)["io_stalls.memtable_slowdown"] = | ||
std::to_string(cf_stats_count_[MEMTABLE_SLOWDOWN]); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
MEMTABLE_LIMIT_SLOWDOWNS
Summary: update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes #695 Differential Revision: D5723305 Pulled By: Tema fbshipit-source-id: 21b4c50
Upstream commit ID : fb-mysql-5.6.35/3f9ff433589a3ab5cb94e249fa649835ee077321 Summary: update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook/mysql-5.6#695 Differential Revision: D5723305 Pulled By: Tema fbshipit-source-id: 21b4c50
Upstream commit ID : fb-mysql-5.6.35/3f9ff433589a3ab5cb94e249fa649835ee077321 Summary: update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook/mysql-5.6#695 Differential Revision: D5723305 Pulled By: Tema fbshipit-source-id: 21b4c50
Upstream commit ID : fb-mysql-5.6.35/3f9ff433589a3ab5cb94e249fa649835ee077321 Summary: update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook/mysql-5.6#695 Differential Revision: D5723305 Pulled By: Tema fbshipit-source-id: 21b4c50
Upstream commit ID : fb-mysql-5.6.35/3f9ff433589a3ab5cb94e249fa649835ee077321 Summary: update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook/mysql-5.6#695 Differential Revision: D5723305 Pulled By: Tema fbshipit-source-id: 21b4c50
Upstream commit ID : fb-mysql-5.6.35/3f9ff433589a3ab5cb94e249fa649835ee077321 Summary: update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook/mysql-5.6#695 Differential Revision: D5723305 Pulled By: Tema fbshipit-source-id: 21b4c50
Upstream commit ID : fb-mysql-5.6.35/3f9ff433589a3ab5cb94e249fa649835ee077321 Summary: update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook/mysql-5.6#695 Differential Revision: D5723305 Pulled By: Tema fbshipit-source-id: 21b4c50
Upstream commit ID : fb-mysql-5.6.35/3f9ff433589a3ab5cb94e249fa649835ee077321 Summary: update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook/mysql-5.6#695 Differential Revision: D5723305 Pulled By: Tema fbshipit-source-id: 21b4c50
Summary: update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes #695 Test Plan: * Check that compaction level metrics are still published to INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS properly * Check the output of the command: ``` mysql> show status like 'rocksdb_stall_%'; +-----------------------------------------------------+-------+ | Variable_name | Value | +-----------------------------------------------------+-------+ | rocksdb_stall_level0_slowdown | 2 | | rocksdb_stall_level0_slowdown_with_compaction | 4 | | rocksdb_stall_level0_numfiles | 10 | | rocksdb_stall_level0_numfiles_with_compaction | 12 | | rocksdb_stall_stop_for_pending_compaction_bytes | 16 | | rocksdb_stall_slowdown_for_pending_compaction_bytes | 14 | | rocksdb_stall_memtable_compaction | 6 | | rocksdb_stall_memtable_slowdown | 8 | | rocksdb_stall_total_count | 56 | | rocksdb_stall_micros | 0 | +-----------------------------------------------------+-------+ ``` (In order to have some non-zero numbers, I've initialized internal RocksDB stall stats with 1-8 numbers. They all doubled in output as there are two column families in my instance: default and system. The stall_micros has been introduced previously. total_count doesn't include level0_slowdown_with_compaction and numfiles_with_compaction as only their total counterparts are included in this counter.) Differential Revision: D5723305 Pulled By: Tema fbshipit-source-id: 1977338
Summary: update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook#695 Test Plan: * Check that compaction level metrics are still published to INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS properly * Check the output of the command: ``` mysql> show status like 'rocksdb_stall_%'; +-----------------------------------------------------+-------+ | Variable_name | Value | +-----------------------------------------------------+-------+ | rocksdb_stall_level0_slowdown | 2 | | rocksdb_stall_level0_slowdown_with_compaction | 4 | | rocksdb_stall_level0_numfiles | 10 | | rocksdb_stall_level0_numfiles_with_compaction | 12 | | rocksdb_stall_stop_for_pending_compaction_bytes | 16 | | rocksdb_stall_slowdown_for_pending_compaction_bytes | 14 | | rocksdb_stall_memtable_compaction | 6 | | rocksdb_stall_memtable_slowdown | 8 | | rocksdb_stall_total_count | 56 | | rocksdb_stall_micros | 0 | +-----------------------------------------------------+-------+ ``` (In order to have some non-zero numbers, I've initialized internal RocksDB stall stats with 1-8 numbers. They all doubled in output as there are two column families in my instance: default and system. The stall_micros has been introduced previously. total_count doesn't include level0_slowdown_with_compaction and numfiles_with_compaction as only their total counterparts are included in this counter.) Differential Revision: D5723305 Pulled By: Tema fbshipit-source-id: 1977338
Summary: update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook#695 Test Plan: * Check that compaction level metrics are still published to INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS properly * Check the output of the command: ``` mysql> show status like 'rocksdb_stall_%'; +-----------------------------------------------------+-------+ | Variable_name | Value | +-----------------------------------------------------+-------+ | rocksdb_stall_level0_slowdown | 2 | | rocksdb_stall_level0_slowdown_with_compaction | 4 | | rocksdb_stall_level0_numfiles | 10 | | rocksdb_stall_level0_numfiles_with_compaction | 12 | | rocksdb_stall_stop_for_pending_compaction_bytes | 16 | | rocksdb_stall_slowdown_for_pending_compaction_bytes | 14 | | rocksdb_stall_memtable_compaction | 6 | | rocksdb_stall_memtable_slowdown | 8 | | rocksdb_stall_total_count | 56 | | rocksdb_stall_micros | 0 | +-----------------------------------------------------+-------+ ``` (In order to have some non-zero numbers, I've initialized internal RocksDB stall stats with 1-8 numbers. They all doubled in output as there are two column families in my instance: default and system. The stall_micros has been introduced previously. total_count doesn't include level0_slowdown_with_compaction and numfiles_with_compaction as only their total counterparts are included in this counter.) Differential Revision: D5723305 Pulled By: Tema fbshipit-source-id: 1977338
Summary: update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook#695 Test Plan: * Check that compaction level metrics are still published to INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS properly * Check the output of the command: ``` mysql> show status like 'rocksdb_stall_%'; +-----------------------------------------------------+-------+ | Variable_name | Value | +-----------------------------------------------------+-------+ | rocksdb_stall_level0_slowdown | 2 | | rocksdb_stall_level0_slowdown_with_compaction | 4 | | rocksdb_stall_level0_numfiles | 10 | | rocksdb_stall_level0_numfiles_with_compaction | 12 | | rocksdb_stall_stop_for_pending_compaction_bytes | 16 | | rocksdb_stall_slowdown_for_pending_compaction_bytes | 14 | | rocksdb_stall_memtable_compaction | 6 | | rocksdb_stall_memtable_slowdown | 8 | | rocksdb_stall_total_count | 56 | | rocksdb_stall_micros | 0 | +-----------------------------------------------------+-------+ ``` (In order to have some non-zero numbers, I've initialized internal RocksDB stall stats with 1-8 numbers. They all doubled in output as there are two column families in my instance: default and system. The stall_micros has been introduced previously. total_count doesn't include level0_slowdown_with_compaction and numfiles_with_compaction as only their total counterparts are included in this counter.) Differential Revision: D5723305 Pulled By: Tema fbshipit-source-id: 1977338
Summary: update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook#695 Test Plan: * Check that compaction level metrics are still published to INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS properly * Check the output of the command: ``` mysql> show status like 'rocksdb_stall_%'; +-----------------------------------------------------+-------+ | Variable_name | Value | +-----------------------------------------------------+-------+ | rocksdb_stall_level0_slowdown | 2 | | rocksdb_stall_level0_slowdown_with_compaction | 4 | | rocksdb_stall_level0_numfiles | 10 | | rocksdb_stall_level0_numfiles_with_compaction | 12 | | rocksdb_stall_stop_for_pending_compaction_bytes | 16 | | rocksdb_stall_slowdown_for_pending_compaction_bytes | 14 | | rocksdb_stall_memtable_compaction | 6 | | rocksdb_stall_memtable_slowdown | 8 | | rocksdb_stall_total_count | 56 | | rocksdb_stall_micros | 0 | +-----------------------------------------------------+-------+ ``` (In order to have some non-zero numbers, I've initialized internal RocksDB stall stats with 1-8 numbers. They all doubled in output as there are two column families in my instance: default and system. The stall_micros has been introduced previously. total_count doesn't include level0_slowdown_with_compaction and numfiles_with_compaction as only their total counterparts are included in this counter.) Differential Revision: D5723305 Pulled By: Tema fbshipit-source-id: 1977338
Summary: update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook#695 Test Plan: * Check that compaction level metrics are still published to INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS properly * Check the output of the command: ``` mysql> show status like 'rocksdb_stall_%'; +-----------------------------------------------------+-------+ | Variable_name | Value | +-----------------------------------------------------+-------+ | rocksdb_stall_level0_slowdown | 2 | | rocksdb_stall_level0_slowdown_with_compaction | 4 | | rocksdb_stall_level0_numfiles | 10 | | rocksdb_stall_level0_numfiles_with_compaction | 12 | | rocksdb_stall_stop_for_pending_compaction_bytes | 16 | | rocksdb_stall_slowdown_for_pending_compaction_bytes | 14 | | rocksdb_stall_memtable_compaction | 6 | | rocksdb_stall_memtable_slowdown | 8 | | rocksdb_stall_total_count | 56 | | rocksdb_stall_micros | 0 | +-----------------------------------------------------+-------+ ``` (In order to have some non-zero numbers, I've initialized internal RocksDB stall stats with 1-8 numbers. They all doubled in output as there are two column families in my instance: default and system. The stall_micros has been introduced previously. total_count doesn't include level0_slowdown_with_compaction and numfiles_with_compaction as only their total counterparts are included in this counter.) Differential Revision: D5723305 Pulled By: Tema fbshipit-source-id: 1977338
Summary: update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes #695 Differential Revision: D5723305 (3f9ff43) Pulled By: Tema fbshipit-source-id: 688fb48f15f
…cebook#695) Summary: update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook#695 Differential Revision: D5723305 (facebook@3f9ff43) Pulled By: Tema fbshipit-source-id: 688fb48f15f
…cebook#695) Summary: update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook#695 Differential Revision: D5723305 (facebook@3f9ff43) Pulled By: Tema fbshipit-source-id: 688fb48f15f
…cebook#695) Summary: update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook#695 Differential Revision: D5723305 (facebook@3f9ff43) Pulled By: Tema fbshipit-source-id: 688fb48f15f
…cebook#695) Summary: update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook#695 Differential Revision: D5723305 (facebook@3f9ff43) Pulled By: Tema fbshipit-source-id: 688fb48f15f
…cebook#695) Summary: update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook#695 Differential Revision: D5723305 (facebook@3f9ff43) Pulled By: Tema fbshipit-source-id: 688fb48f15f
…cebook#695) Summary: update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook#695 Differential Revision: D5723305 (facebook@3f9ff43) Pulled By: Tema fbshipit-source-id: 688fb48f15f
…cebook#695) Summary: update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook#695 Differential Revision: D5723305 (facebook@3f9ff43) Pulled By: Tema fbshipit-source-id: 688fb48f15f
Summary: @update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes #695 Differential Revision: D5723305 Pulled By: Tema
…cebook#695) Summary: @update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook#695 Differential Revision: D5723305 Pulled By: Tema
…cona#695) Summary: @update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook/mysql-5.6#695 Differential Revision: D5723305 Pulled By: Tema
…cebook#695) Summary: @update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook#695 Differential Revision: D5723305 Pulled By: Tema
…cebook#695) Summary: @update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook#695 Differential Revision: D5723305 Pulled By: Tema
…cebook#695) Summary: @update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook#695 Differential Revision: D5723305 Pulled By: Tema
…cebook#695) Summary: @update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook#695 Differential Revision: D5723305 Pulled By: Tema
…cebook#695) Summary: @update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook#695 Differential Revision: D5723305 Pulled By: Tema
…cebook#695) Summary: @update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook#695 Differential Revision: D5723305 Pulled By: Tema
…cebook#695) Summary: @update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook#695 Differential Revision: D5723305 Pulled By: Tema
…cona#695) Summary: @update-submodule: rocksdb The stall counters are already shown in 'SHOW ENGINE ROCKSDB STATUS output' but this command is a bit expensive to run and you have to parse the output to monitor these values. This branch adds these counters to structured output of SHOW GLOBAL STATUS command. Also fixed the bug in INFORMATION_SCHEMA.ROCKSDB_COMPACTION_STATS which showed only integer values but not float. The rocksdb module was updated to bring [this](facebook/rocksdb#2794 (review)) change which has the following changes to GetMapProperty method: 1. Changed values from double to string 2. Change existing keys to start with "compaction." prefix for all keys returned by old version of GetMapProperty. 3. Added stall values with keys starting with "io_stall." prefix Closes facebook/mysql-5.6#695 Differential Revision: D5723305 Pulled By: Tema
Summary:
This branch extends existing property map which keeps values in doubles to keep values in strings so that it can be used to provide wider range of properties. The immediate need for that is to provide IO stall stats in an easy parseable way to MyRocks which is also part of this branch.
Test Plan:
Modify the existing tests which uses doubles to use strings.
Added IO stall are tested thought MyRocks test.