Merge lp:~percona-dev/percona-server/release-5.1.50-12-adjust_buffer_pool_shm into lp:percona-server/release-5.1.50-12

Proposed by Yasufumi Kinoshita
Status: Merged
Approved by: Vadim Tkachenko
Approved revision: no longer in the source branch.
Merged at revision: 123
Proposed branch: lp:~percona-dev/percona-server/release-5.1.50-12-adjust_buffer_pool_shm
Merge into: lp:percona-server/release-5.1.50-12
Diff against target: 291 lines (+77/-39)
1 file modified
innodb_buffer_pool_shm.patch (+77/-39)
To merge this branch: bzr merge lp:~percona-dev/percona-server/release-5.1.50-12-adjust_buffer_pool_shm
Reviewer Review Type Date Requested Status
Vadim Tkachenko Approve
Fred Linhoss (community) documentation Approve
Review via email: mp+36971@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Vadim Tkachenko (vadim-tk) wrote :

For Fred: document bug and release notes

Revision history for this message
Fred Linhoss (fred-linhoss) wrote :

  Vadim,

I assume innodb_buffer_pool_shm is the page where Yasufumi's new
variable should be documented.

    https://intranet.percona.com/dokuwiki/per:fred:innodb_buffer_pool_shm

I have only changed the System Variables section to add the new variable.

Questions:

    1. Is the variable name correct, or does "innodb_" need to be added
to the front?
    2. I believe that "PLUGIN_VAR_NOCMDARG | PLUGIN_VAR_READONLY" means
that, in the table, "Command Line"=No and "Dynamic Variable"=No. But do
I have "Config File" and "Variable Scope" correct?
    3. Is the sentence describing what the variable does correct? (When
is the checksum validation done? Should I say anything about that?)

Thanks,
Fred

On 9/29/2010 1:01 PM, Vadim Tkachenko wrote:
> For Fred: document bug and release notes

Revision history for this message
Vadim Tkachenko (vadim-tk) wrote :

Fred,

it is innodb_buffer_pool_shm_checksum.

Usually if variable can be set in config file - it is also accepted in
command line.

You should say:
"Checksum validation is performed during start or shutdown. Checksum
check makes process slower but
adds additional protection that memory region is not corrupted".

On Thu, Sep 30, 2010 at 10:18 AM, Fred Linhoss <email address hidden> wrote:
>  Vadim,
>
> I assume innodb_buffer_pool_shm is the page where Yasufumi's new
> variable should be documented.
>
>    https://intranet.percona.com/dokuwiki/per:fred:innodb_buffer_pool_shm
>
> I have only changed the System Variables section to add the new variable.
>
> Questions:
>
>    1. Is the variable name correct, or does "innodb_" need to be added
> to the front?
>    2. I believe that "PLUGIN_VAR_NOCMDARG | PLUGIN_VAR_READONLY" means
> that, in the table, "Command Line"=No and "Dynamic Variable"=No. But do
> I have "Config File" and "Variable Scope" correct?
>    3. Is the sentence describing what the variable does correct? (When
> is the checksum validation done? Should I say anything about that?)
>
> Thanks,
> Fred
>
> On 9/29/2010 1:01 PM, Vadim Tkachenko wrote:
>> For Fred: document bug and release notes
> --
> https://code.launchpad.net/~percona-dev/percona-server/release-5.1.50-12-adjust_buffer_pool_shm/+merge/36971
> Your team Percona developers is requested to review the proposed merge of lp:~percona-dev/percona-server/release-5.1.50-12-adjust_buffer_pool_shm into lp:percona-server.
>

--
Vadim Tkachenko, CTO, Percona Inc.
Phone +1-888-401-3403,  Skype: vadimtk153
Schedule meeting: http://tungle.me/VadimTkachenko

Revision history for this message
Fred Linhoss (fred-linhoss) wrote :

On 9/30/2010 1:24 PM, Vadim Tkachenko wrote:
> Fred,
>
> it is innodb_buffer_pool_shm_checksum.
>
> Usually if variable can be set in config file - it is also accepted in
> command line.
*But, "PLUGIN_VAR_NOCMDARG | PLUGIN_VAR_READONLY" means it _cannot_**
take it from the command line, correct?
If that's true, it makes me wonder how you can set it. Or it that wrong
and it does take it from the command line?
*
> You should say:
> "Checksum validation is performed during start or shutdown. Checksum check makes process slower but adds additional protection that memory region is not corrupted".
*Done. Changes are now in this version:*

http://www.percona.com/docs/wiki/percona-server:features:innodb_buffer_pool_shm
>
> On Thu, Sep 30, 2010 at 10:18 AM, Fred Linhoss<email address hidden> wrote:
>> Vadim,
>>
>> I assume innodb_buffer_pool_shm is the page where Yasufumi's new
>> variable should be documented.
>>
>> https://intranet.percona.com/dokuwiki/per:fred:innodb_buffer_pool_shm
>>
>> I have only changed the System Variables section to add the new variable.
>>
>> Questions:
>>
>> 1. Is the variable name correct, or does "innodb_" need to be added
>> to the front?
>> 2. I believe that "PLUGIN_VAR_NOCMDARG | PLUGIN_VAR_READONLY" means
>> that, in the table, "Command Line"=No and "Dynamic Variable"=No. But do
>> I have "Config File" and "Variable Scope" correct?
>> 3. Is the sentence describing what the variable does correct? (When
>> is the checksum validation done? Should I say anything about that?)
>>
>> Thanks,
>> Fred
>>
>> On 9/29/2010 1:01 PM, Vadim Tkachenko wrote:
>>> For Fred: document bug and release notes
>> --
>> https://code.launchpad.net/~percona-dev/percona-server/release-5.1.50-12-adjust_buffer_pool_shm/+merge/36971
>> Your team Percona developers is requested to review the proposed merge of lp:~percona-dev/percona-server/release-5.1.50-12-adjust_buffer_pool_shm into lp:percona-server.
>>
>
>

Revision history for this message
Fred Linhoss (fred-linhoss) wrote :

Added new system variable innodb_buffer_pool_shm_checksum to [[percona_server::innodb_buffer_pool_shm]].

review: Approve (documentation)
Revision history for this message
Vadim Tkachenko (vadim-tk) :
review: Approve
Revision history for this message
Baron Schwartz (baron-xaprb) wrote :

Fred,

>> Usually if variable can be set in config file - it is also accepted in
>> command line.
> But, "PLUGIN_VAR_NOCMDARG | PLUGIN_VAR_READONLY" means it _cannot_**
> take it from the command line, correct?
> If that's true, it makes me wonder how you can set it. Or it that wrong
> and it does take it from the command line?

I haven't checked, but it looks like you are right. Do you have a
build that you can test to see?

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'innodb_buffer_pool_shm.patch'
--- innodb_buffer_pool_shm.patch 2010-09-27 09:59:34 +0000
+++ innodb_buffer_pool_shm.patch 2010-09-29 11:18:45 +0000
@@ -96,7 +96,7 @@
96 /********************************************************************//**96 /********************************************************************//**
97 Allocates a chunk of buffer frames.97 Allocates a chunk of buffer frames.
98 @return chunk, or NULL on failure */98 @return chunk, or NULL on failure */
99@@ -768,26 +835,174 @@99@@ -768,26 +835,184 @@
100 {100 {
101 buf_block_t* block;101 buf_block_t* block;
102 byte* frame;102 byte* frame;
@@ -161,7 +161,7 @@
161+ if (UNIV_UNLIKELY(chunk->mem == NULL)) {161+ if (UNIV_UNLIKELY(chunk->mem == NULL)) {
162+ return(NULL);162+ return(NULL);
163+ }163+ }
164+164+init_again:
165+#ifdef UNIV_SET_MEM_TO_ZERO165+#ifdef UNIV_SET_MEM_TO_ZERO
166+ if (is_new) {166+ if (is_new) {
167+ memset(chunk->mem, '\0', chunk->mem_size);167+ memset(chunk->mem, '\0', chunk->mem_size);
@@ -204,16 +204,6 @@
204+ "InnoDB: Error: The shared memory was not initialized yet.\n");204+ "InnoDB: Error: The shared memory was not initialized yet.\n");
205+ return(NULL);205+ return(NULL);
206+ }206+ }
207+ if (!shm_info->clean) {
208+ fprintf(stderr,
209+ "InnoDB: Error: The shared memory was not shut down cleanly.\n");
210+ return(NULL);
211+ }
212+ if (!shm_info->reusable) {
213+ fprintf(stderr,
214+ "InnoDB: Error: The shared memory has unrecoverable contents.\n");
215+ return(NULL);
216+ }
217+ if (shm_info->buf_pool_size != srv_buf_pool_size) {207+ if (shm_info->buf_pool_size != srv_buf_pool_size) {
218+ fprintf(stderr,208+ fprintf(stderr,
219+ "InnoDB: Error: srv_buf_pool_size is different (shm=%lu current=%lu).\n",209+ "InnoDB: Error: srv_buf_pool_size is different (shm=%lu current=%lu).\n",
@@ -226,14 +216,34 @@
226+ shm_info->page_size, srv_page_size);216+ shm_info->page_size, srv_page_size);
227+ return(NULL);217+ return(NULL);
228+ }218+ }
219+ if (!shm_info->reusable) {
220+ fprintf(stderr,
221+ "InnoDB: Warning: The shared memory has unrecoverable contents.\n"
222+ "InnoDB: The shared memory segment is initialized.\n");
223+ is_new = TRUE;
224+ goto init_again;
225+ }
226+ if (!shm_info->clean) {
227+ fprintf(stderr,
228+ "InnoDB: Warning: The shared memory was not shut down cleanly.\n"
229+ "InnoDB: The shared memory segment is initialized.\n");
230+ is_new = TRUE;
231+ goto init_again;
232+ }
229+233+
230+ ut_a(shm_info->zip_hash_offset == chunk->mem_size - zip_hash_mem_size);234+ ut_a(shm_info->zip_hash_offset == chunk->mem_size - zip_hash_mem_size);
231+ ut_a(shm_info->zip_hash_n == zip_hash_n);235+ ut_a(shm_info->zip_hash_n == zip_hash_n);
232+236+
233+ /* check checksum */237+ /* check checksum */
234+ checksum = ut_fold_binary_32((byte*)chunk->mem + sizeof(buf_shm_info_t),238+ if (srv_buffer_pool_shm_checksum) {
235+ chunk->mem_size - sizeof(buf_shm_info_t));239+ checksum = ut_fold_binary_32((byte*)chunk->mem + sizeof(buf_shm_info_t),
236+ if (shm_info->checksum != checksum) {240+ chunk->mem_size - sizeof(buf_shm_info_t));
241+ } else {
242+ checksum = BUF_NO_CHECKSUM_MAGIC;
243+ }
244+
245+ if (shm_info->checksum != BUF_NO_CHECKSUM_MAGIC
246+ && shm_info->checksum != checksum) {
237+ fprintf(stderr,247+ fprintf(stderr,
238+ "InnoDB: Error: checksum of the shared memory is not match. "248+ "InnoDB: Error: checksum of the shared memory is not match. "
239+ "(stored=%lu calculated=%lu)\n",249+ "(stored=%lu calculated=%lu)\n",
@@ -271,7 +281,7 @@
271 281
272 /* Align a pointer to the first frame. Note that when282 /* Align a pointer to the first frame. Note that when
273 os_large_page_size is smaller than UNIV_PAGE_SIZE,283 os_large_page_size is smaller than UNIV_PAGE_SIZE,
274@@ -795,8 +1010,13 @@284@@ -795,8 +1020,13 @@
275 it is bigger, we may allocate more blocks than requested. */285 it is bigger, we may allocate more blocks than requested. */
276 286
277 frame = ut_align(chunk->mem, UNIV_PAGE_SIZE);287 frame = ut_align(chunk->mem, UNIV_PAGE_SIZE);
@@ -285,7 +295,7 @@
285 295
286 /* Subtract the space needed for block descriptors. */296 /* Subtract the space needed for block descriptors. */
287 {297 {
288@@ -810,6 +1030,98 @@298@@ -810,6 +1040,98 @@
289 chunk->size = size;299 chunk->size = size;
290 }300 }
291 301
@@ -305,7 +315,7 @@
305+ }315+ }
306+316+
307+ chunk->size = shm_info->chunk_backup.size;317+ chunk->size = shm_info->chunk_backup.size;
308+ phys_offset = frame - (byte*)chunk->mem + shm_info->frame_offset;318+ phys_offset = frame - ((byte*)chunk->mem + shm_info->frame_offset);
309+ logi_offset = frame - chunk->blocks[0].frame;319+ logi_offset = frame - chunk->blocks[0].frame;
310+ previous_frame_address = chunk->blocks[0].frame;320+ previous_frame_address = chunk->blocks[0].frame;
311+ blocks_offset = (byte*)chunk->blocks - (byte*)shm_info->chunk_backup.blocks;321+ blocks_offset = (byte*)chunk->blocks - (byte*)shm_info->chunk_backup.blocks;
@@ -339,17 +349,17 @@
339+ " Done.\n");349+ " Done.\n");
340+ }350+ }
341+351+
352+ /* buf_block_t */
353+ block = chunk->blocks;
354+ for (i = chunk->size; i--; ) {
355+ buf_block_reuse(block, logi_offset);
356+ block++;
357+ }
358+
342+ if (logi_offset || blocks_offset) {359+ if (logi_offset || blocks_offset) {
343+ fprintf(stderr,360+ fprintf(stderr,
344+ "InnoDB: Aligning logical offset...");361+ "InnoDB: Aligning logical offset...");
345+362+
346+ /* buf_block_t */
347+ block = chunk->blocks;
348+
349+ for (i = chunk->size; i--; ) {
350+ buf_block_reuse(block, logi_offset);
351+ block++;
352+ }
353+363+
354+ /* buf_pool_t buf_pool_backup */364+ /* buf_pool_t buf_pool_backup */
355+ UT_LIST_OFFSET(flush_list, buf_page_t, shm_info->buf_pool_backup.flush_list,365+ UT_LIST_OFFSET(flush_list, buf_page_t, shm_info->buf_pool_backup.flush_list,
@@ -384,7 +394,7 @@
384 /* Init block structs and assign frames for them. Then we394 /* Init block structs and assign frames for them. Then we
385 assign the frames to the first blocks (we already mapped the395 assign the frames to the first blocks (we already mapped the
386 memory above). */396 memory above). */
387@@ -833,6 +1145,11 @@397@@ -833,6 +1155,11 @@
388 block++;398 block++;
389 frame += UNIV_PAGE_SIZE;399 frame += UNIV_PAGE_SIZE;
390 }400 }
@@ -396,7 +406,7 @@
396 406
397 return(chunk);407 return(chunk);
398 }408 }
399@@ -1014,6 +1331,8 @@409@@ -1014,6 +1341,8 @@
400 UNIV_MEM_UNDESC(block);410 UNIV_MEM_UNDESC(block);
401 }411 }
402 412
@@ -405,7 +415,7 @@
405 os_mem_free_large(chunk->mem, chunk->mem_size);415 os_mem_free_large(chunk->mem, chunk->mem_size);
406 }416 }
407 417
408@@ -1063,7 +1382,10 @@418@@ -1063,7 +1392,10 @@
409 srv_buf_pool_curr_size = buf_pool->curr_size * UNIV_PAGE_SIZE;419 srv_buf_pool_curr_size = buf_pool->curr_size * UNIV_PAGE_SIZE;
410 420
411 buf_pool->page_hash = hash_create(2 * buf_pool->curr_size);421 buf_pool->page_hash = hash_create(2 * buf_pool->curr_size);
@@ -416,7 +426,7 @@
416 426
417 buf_pool->last_printout_time = time(NULL);427 buf_pool->last_printout_time = time(NULL);
418 428
419@@ -1078,6 +1400,86 @@429@@ -1078,6 +1410,86 @@
420 --------------------------- */430 --------------------------- */
421 /* All fields are initialized by mem_zalloc(). */431 /* All fields are initialized by mem_zalloc(). */
422 432
@@ -503,7 +513,7 @@
503 mutex_exit(&LRU_list_mutex);513 mutex_exit(&LRU_list_mutex);
504 rw_lock_x_unlock(&page_hash_latch);514 rw_lock_x_unlock(&page_hash_latch);
505 buf_pool_mutex_exit();515 buf_pool_mutex_exit();
506@@ -1102,6 +1504,30 @@516@@ -1102,6 +1514,34 @@
507 buf_chunk_t* chunk;517 buf_chunk_t* chunk;
508 buf_chunk_t* chunks;518 buf_chunk_t* chunks;
509 519
@@ -524,8 +534,12 @@
524+ memcpy(&(shm_info->chunk_backup), chunk, sizeof(buf_chunk_t));534+ memcpy(&(shm_info->chunk_backup), chunk, sizeof(buf_chunk_t));
525+535+
526+ if (srv_fast_shutdown < 2) {536+ if (srv_fast_shutdown < 2) {
527+ shm_info->checksum = ut_fold_binary_32((byte*)chunk->mem + sizeof(buf_shm_info_t),537+ if (srv_buffer_pool_shm_checksum) {
528+ chunk->mem_size - sizeof(buf_shm_info_t));538+ shm_info->checksum = ut_fold_binary_32((byte*)chunk->mem + sizeof(buf_shm_info_t),
539+ chunk->mem_size - sizeof(buf_shm_info_t));
540+ } else {
541+ shm_info->checksum = BUF_NO_CHECKSUM_MAGIC;
542+ }
529+ shm_info->clean = TRUE;543+ shm_info->clean = TRUE;
530+ }544+ }
531+545+
@@ -534,7 +548,7 @@
534 chunks = buf_pool->chunks;548 chunks = buf_pool->chunks;
535 chunk = chunks + buf_pool->n_chunks;549 chunk = chunks + buf_pool->n_chunks;
536 550
537@@ -1110,10 +1536,13 @@551@@ -1110,10 +1550,13 @@
538 would fail at shutdown. */552 would fail at shutdown. */
539 os_mem_free_large(chunk->mem, chunk->mem_size);553 os_mem_free_large(chunk->mem, chunk->mem_size);
540 }554 }
@@ -548,7 +562,7 @@
548 mem_free(buf_pool);562 mem_free(buf_pool);
549 buf_pool = NULL;563 buf_pool = NULL;
550 }564 }
551@@ -1308,6 +1737,11 @@565@@ -1308,6 +1751,11 @@
552 //buf_pool_mutex_enter();566 //buf_pool_mutex_enter();
553 mutex_enter(&LRU_list_mutex);567 mutex_enter(&LRU_list_mutex);
554 568
@@ -560,7 +574,7 @@
560 shrink_again:574 shrink_again:
561 if (buf_pool->n_chunks <= 1) {575 if (buf_pool->n_chunks <= 1) {
562 576
563@@ -1551,6 +1985,11 @@577@@ -1551,6 +1999,11 @@
564 buf_pool_resize(void)578 buf_pool_resize(void)
565 /*=================*/579 /*=================*/
566 {580 {
@@ -649,7 +663,23 @@
649diff -ruN a/storage/innodb_plugin/handler/ha_innodb.cc b/storage/innodb_plugin/handler/ha_innodb.cc663diff -ruN a/storage/innodb_plugin/handler/ha_innodb.cc b/storage/innodb_plugin/handler/ha_innodb.cc
650--- a/storage/innodb_plugin/handler/ha_innodb.cc 2010-07-14 16:34:18.597725479 +0900664--- a/storage/innodb_plugin/handler/ha_innodb.cc 2010-07-14 16:34:18.597725479 +0900
651+++ b/storage/innodb_plugin/handler/ha_innodb.cc 2010-07-14 16:40:16.159323612 +0900665+++ b/storage/innodb_plugin/handler/ha_innodb.cc 2010-07-14 16:40:16.159323612 +0900
652@@ -11340,6 +11340,11 @@666@@ -197,6 +197,7 @@
667 static my_bool innobase_create_status_file = FALSE;
668 static my_bool innobase_stats_on_metadata = TRUE;
669 static my_bool innobase_use_sys_stats_table = FALSE;
670+static my_bool innobase_buffer_pool_shm_checksum = TRUE;
671
672 static char* internal_innobase_data_file_path = NULL;
673
674@@ -2417,6 +2418,7 @@
675 srv_use_doublewrite_buf = (ibool) innobase_use_doublewrite;
676 srv_use_checksums = (ibool) innobase_use_checksums;
677 srv_fast_checksum = (ibool) innobase_fast_checksum;
678+ srv_buffer_pool_shm_checksum = (ibool) innobase_buffer_pool_shm_checksum;
679
680 #ifdef HAVE_LARGE_PAGES
681 if ((os_use_large_pages = (ibool) my_use_large_pages))
682@@ -11340,6 +11342,16 @@
653 "The size of the memory buffer InnoDB uses to cache data and indexes of its tables.",683 "The size of the memory buffer InnoDB uses to cache data and indexes of its tables.",
654 NULL, NULL, 128*1024*1024L, 32*1024*1024L, LONGLONG_MAX, 1024*1024L);684 NULL, NULL, 128*1024*1024L, 32*1024*1024L, LONGLONG_MAX, 1024*1024L);
655 685
@@ -658,14 +688,20 @@
658+ "[experimental] The key value of shared memory segment for the buffer pool. 0 (default) disables the feature.",688+ "[experimental] The key value of shared memory segment for the buffer pool. 0 (default) disables the feature.",
659+ NULL, NULL, 0, 0, INT_MAX32, 0);689+ NULL, NULL, 0, 0, INT_MAX32, 0);
660+690+
691+static MYSQL_SYSVAR_BOOL(buffer_pool_shm_checksum, innobase_buffer_pool_shm_checksum,
692+ PLUGIN_VAR_NOCMDARG | PLUGIN_VAR_READONLY,
693+ "Enable buffer_pool_shm checksum validation (enabled by default).",
694+ NULL, NULL, TRUE);
695+
661 static MYSQL_SYSVAR_ULONG(commit_concurrency, innobase_commit_concurrency,696 static MYSQL_SYSVAR_ULONG(commit_concurrency, innobase_commit_concurrency,
662 PLUGIN_VAR_RQCMDARG,697 PLUGIN_VAR_RQCMDARG,
663 "Helps in performance tuning in heavily concurrent environments.",698 "Helps in performance tuning in heavily concurrent environments.",
664@@ -11599,6 +11604,7 @@699@@ -11599,6 +11611,8 @@
665 MYSQL_SYSVAR(additional_mem_pool_size),700 MYSQL_SYSVAR(additional_mem_pool_size),
666 MYSQL_SYSVAR(autoextend_increment),701 MYSQL_SYSVAR(autoextend_increment),
667 MYSQL_SYSVAR(buffer_pool_size),702 MYSQL_SYSVAR(buffer_pool_size),
668+ MYSQL_SYSVAR(buffer_pool_shm_key),703+ MYSQL_SYSVAR(buffer_pool_shm_key),
704+ MYSQL_SYSVAR(buffer_pool_shm_checksum),
669 MYSQL_SYSVAR(checksums),705 MYSQL_SYSVAR(checksums),
670 MYSQL_SYSVAR(fast_checksum),706 MYSQL_SYSVAR(fast_checksum),
671 MYSQL_SYSVAR(commit_concurrency),707 MYSQL_SYSVAR(commit_concurrency),
@@ -816,11 +852,12 @@
816diff -ruN a/storage/innodb_plugin/include/srv0srv.h b/storage/innodb_plugin/include/srv0srv.h852diff -ruN a/storage/innodb_plugin/include/srv0srv.h b/storage/innodb_plugin/include/srv0srv.h
817--- a/storage/innodb_plugin/include/srv0srv.h 2010-07-14 16:32:49.695323045 +0900853--- a/storage/innodb_plugin/include/srv0srv.h 2010-07-14 16:32:49.695323045 +0900
818+++ b/storage/innodb_plugin/include/srv0srv.h 2010-07-14 16:40:16.171325784 +0900854+++ b/storage/innodb_plugin/include/srv0srv.h 2010-07-14 16:40:16.171325784 +0900
819@@ -156,6 +156,8 @@855@@ -156,6 +156,9 @@
820 extern ulint srv_mem_pool_size;856 extern ulint srv_mem_pool_size;
821 extern ulint srv_lock_table_size;857 extern ulint srv_lock_table_size;
822 858
823+extern uint srv_buffer_pool_shm_key;859+extern uint srv_buffer_pool_shm_key;
860+extern ibool srv_buffer_pool_shm_checksum;
824+861+
825 extern ibool srv_thread_concurrency_timer_based;862 extern ibool srv_thread_concurrency_timer_based;
826 863
@@ -1057,12 +1094,13 @@
1057diff -ruN a/storage/innodb_plugin/srv/srv0srv.c b/storage/innodb_plugin/srv/srv0srv.c1094diff -ruN a/storage/innodb_plugin/srv/srv0srv.c b/storage/innodb_plugin/srv/srv0srv.c
1058--- a/storage/innodb_plugin/srv/srv0srv.c 2010-07-14 16:33:23.848391648 +09001095--- a/storage/innodb_plugin/srv/srv0srv.c 2010-07-14 16:33:23.848391648 +0900
1059+++ b/storage/innodb_plugin/srv/srv0srv.c 2010-07-14 16:40:16.177323553 +09001096+++ b/storage/innodb_plugin/srv/srv0srv.c 2010-07-14 16:40:16.177323553 +0900
1060@@ -211,6 +211,9 @@1097@@ -211,6 +211,10 @@
1061 UNIV_INTERN ulint srv_mem_pool_size = ULINT_MAX;1098 UNIV_INTERN ulint srv_mem_pool_size = ULINT_MAX;
1062 UNIV_INTERN ulint srv_lock_table_size = ULINT_MAX;1099 UNIV_INTERN ulint srv_lock_table_size = ULINT_MAX;
1063 1100
1064+/* key value for shm */1101+/* key value for shm */
1065+UNIV_INTERN uint srv_buffer_pool_shm_key = 0;1102+UNIV_INTERN uint srv_buffer_pool_shm_key = 0;
1103+UNIV_INTERN ibool srv_buffer_pool_shm_checksum = TRUE;
1066+1104+
1067 /* This parameter is deprecated. Use srv_n_io_[read|write]_threads1105 /* This parameter is deprecated. Use srv_n_io_[read|write]_threads
1068 instead. */1106 instead. */

Subscribers

People subscribed via source and target branches

to all changes: