-
Notifications
You must be signed in to change notification settings - Fork 719
MyRocks: merge the key packing buffer allocation, annotate m_pack_buffer lifetime #1446
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
MyRocks: merge the key packing buffer allocation, annotate m_pack_buffer lifetime #1446
Conversation
|
This resulted from me proving to myself the lifetime of |
|
Valgrind testing timed out after a few days, with no errors up to that point (45% of |
|
@luqun has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator. |
|
Ack, I am waiting for MEM_* macro for ASan test results and will push again
luqun ***@***.***> writes:
… @luqun commented on this pull request.
------------------------------------------------------------------------------------------------------------------------
In storage/rocksdb/ha_rocksdb.cc:
> @@ -9418,48 +9424,57 @@ int ha_rocksdb::alloc_key_buffers(const TABLE &table_arg,
}
}
- m_sk_packed_tuple = reinterpret_cast<uchar *>(
- my_malloc(PSI_NOT_INSTRUMENTED, max_packed_sk_len, MYF(0)));
- m_sk_packed_tuple_old = reinterpret_cast<uchar *>(
- my_malloc(PSI_NOT_INSTRUMENTED, max_packed_sk_len, MYF(0)));
- m_sk_packed_tuple_updated = reinterpret_cast<uchar *>(
- my_malloc(PSI_NOT_INSTRUMENTED, max_packed_sk_len, MYF(0)));
- m_end_key_packed_tuple = reinterpret_cast<uchar *>(
- my_malloc(PSI_NOT_INSTRUMENTED, max_packed_sk_len, MYF(0)));
- m_pack_buffer = reinterpret_cast<uchar *>(
- my_malloc(PSI_NOT_INSTRUMENTED, max_packed_sk_len, MYF(0)));
+ const auto pad1 [[maybe_unused]] = get_next_aligned(buf_size);
my misunderstanding.. the code is doing same as before.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.
|
…fer lifetime All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind and AddressSanitizer as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. At the same time extend the memory debugging macros in include/memory_debugging.h to cover AddressSanitizer too in addition to Valgrind.
59f1fb8 to
6df37de
Compare
|
@laurynas-biveinis has updated the pull request. You must reimport the pull request before landing. |
|
@luqun , extended the MEM_* macros to cover ASan, no regressions there, & moved the TODO comment. Ready for review |
|
@luqun has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator. |
|
This pull request has been merged in fdf68f7. |
…otate m_pack_buffer lifetime Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook#1446 GitHub Author: Laurynas Biveinis <laurynas.biveinis@gmail.com> Test Plan: Imported from GitHub, without a `Test Plan:` line. Reviewers: herman, chni, #mysql_eng Reviewed By: chni Differential Revision: https://phabricator.intern.facebook.com/D56051395
…fer lifetime (facebook#1446) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56
…fer lifetime (facebook#1446) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56
…fer lifetime (facebook#1446) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56
…fer lifetime (facebook#1446) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56
…fer lifetime (facebook#1446) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56
…fer lifetime (facebook#1446) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56
…fer lifetime (facebook#1446) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56
…fer lifetime (facebook#1446) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56
…fer lifetime (facebook#1446) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56
…fer lifetime (facebook#1446) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56
…fer lifetime (facebook#1446) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
…fer lifetime (percona#1446) Upstream commit ID: facebook/mysql-5.6@fdf68f720c84 PS-9395: Merge percona-202404 (https://jira.percona.com/browse/PS-9395) Summary: All the key packing buffers in the MyRocks handler have exactly the same lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single large buffer and point the key packing buffers to offsets inside it, reducing number of calls to the heap allocator on table opening/close code path. Annotate the padding bytes for Valgrind as inaccessible. Add additional handling for m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record, annotate it as such. Pull Request resolved: facebook/mysql-5.6#1446 Differential Revision: D56051395 fbshipit-source-id: f503d56efbaee8a2072fe5701eec4783d7c1cce9
All the key packing buffers in the MyRocks handler have exactly the same
lifetime between alloc_key_buffers and free_key_buffers. Thus allocate a single
large buffer and point the key packing buffers to offsets inside it, reducing
number of calls to the heap allocator on table opening/close code path. Annotate
the padding bytes for Valgrind as inaccessible. Add additional handling for
m_pack_buffer: since its use it's fully contained in Rdb_key_def::pack_record,
annotate it as such.