@@ -252,6 +252,7 @@ static uint32_t tokudb_env_flags = 0;
252252static my_bool tokudb_directio = FALSE ;
253253static my_bool tokudb_checkpoint_on_flush_logs = FALSE ;
254254static ulonglong tokudb_cache_size = 0 ;
255+ static int tokudb_cpu_nums = 0 ;
255256static ulonglong tokudb_max_lock_memory = 0 ;
256257static char *tokudb_home;
257258static char *tokudb_tmp_dir;
@@ -511,6 +512,17 @@ static int tokudb_init_func(void *p) {
511512 goto error;
512513 }
513514 }
515+
516+ if (tokudb_cpu_nums) {
517+ DBUG_PRINT (" info" , (" tokudb_cpu_nums: %d\n " , tokudb_cpu_nums));
518+ r = db_env->set_cpunums (db_env, tokudb_cpu_nums);
519+ if (r) {
520+ DBUG_PRINT (" info" , (" set_cpunums %d\n " , r));
521+ goto error;
522+ }
523+ }
524+
525+
514526 if (tokudb_max_lock_memory == 0 ) {
515527 tokudb_max_lock_memory = tokudb_cache_size/8 ;
516528 }
@@ -1463,6 +1475,10 @@ static MYSQL_SYSVAR_ULONGLONG(cache_size, tokudb_cache_size,
14631475 PLUGIN_VAR_READONLY, " TokuDB cache table size" , NULL , NULL , 0 ,
14641476 0 , ~0ULL , 0 );
14651477
1478+ static MYSQL_SYSVAR_INT (cpu_nums, tokudb_cpu_nums,
1479+ PLUGIN_VAR_READONLY, " TokuDB CPU nums" , NULL , NULL , 0 ,
1480+ 0 , 0 , 0 );
1481+
14661482static MYSQL_SYSVAR_ULONGLONG (max_lock_memory, tokudb_max_lock_memory, PLUGIN_VAR_READONLY, " TokuDB max memory for locks" , NULL , NULL , 0 , 0 , ~0ULL , 0 );
14671483static MYSQL_SYSVAR_ULONG (debug, tokudb_debug, 0 , " TokuDB Debug" , NULL , NULL , 0 , 0 , ~0UL , 0 );
14681484
@@ -1492,6 +1508,7 @@ static MYSQL_SYSVAR_UINT(fsync_log_period, tokudb_fsync_log_period, 0, "TokuDB f
14921508
14931509static struct st_mysql_sys_var *tokudb_system_variables[] = {
14941510 MYSQL_SYSVAR (cache_size),
1511+ MYSQL_SYSVAR (cpu_nums),
14951512 MYSQL_SYSVAR (max_lock_memory),
14961513 MYSQL_SYSVAR (data_dir),
14971514 MYSQL_SYSVAR (log_dir),
0 commit comments