Commit 36ec86c9 authored by Barry Perlman's avatar Barry Perlman Committed by Yoni Fogel

Addresses #1792 refs[t:1792] Start adding show engine tokudb status

git-svn-id: file:///svn/mysql/tokudb-engine/src@14693 c7de825b-a66e-492c-adef-691d508d4ae1
parent 034ba2c1
......@@ -518,7 +518,7 @@ static int smart_dbt_do_nothing (DBT const *key, DBT const *row, void *context)
static bool tokudb_show_data_size(THD * thd, stat_print_fn * stat_print, bool exact) {
TOKUDB_DBUG_ENTER("tokudb_show_engine_status");
TOKUDB_DBUG_ENTER("tokudb_show_data_size");
int error;
u_int64_t num_bytes_in_db = 0;
DB* curr_db = NULL;
......@@ -721,6 +721,58 @@ static bool tokudb_show_logs(THD * thd, stat_print_fn * stat_print) {
TOKUDB_DBUG_RETURN(error);
}
static bool tokudb_show_engine_status(THD * thd, stat_print_fn * stat_print) {
TOKUDB_DBUG_ENTER("tokudb_show_engine_status");
int error;
char * legend_ydb_lock = "ydb lock held";
char * legend_cp_period = "Checkpoint period";
char * legend_cp_status = "Checkpoint status code (0 = idle)";
char buf[4096] = {0};
ENGINE_STATUS engstat;
error = db_env->get_engine_status(db_env, &engstat);
if (error == 0) {
const char * lockstat = engstat.ydb_lock_held ? "Locked" : "Unlocked";
stat_print(
thd,
tokudb_hton_name,
tokudb_hton_name_length,
legend_ydb_lock,
strlen(legend_ydb_lock),
lockstat,
strlen(lockstat)
);
sprintf(buf, "%" PRIu32, (unsigned int) engstat.checkpoint_period);
stat_print(
thd,
tokudb_hton_name,
tokudb_hton_name_length,
legend_cp_period,
strlen(legend_cp_period),
buf,
strlen(buf)
);
sprintf(buf, "%" PRIu64, (long unsigned int) engstat.checkpoint_footprint);
stat_print(
thd,
tokudb_hton_name,
tokudb_hton_name_length,
legend_cp_status,
strlen(legend_cp_status),
buf,
strlen(buf)
);
}
TOKUDB_DBUG_RETURN(error);
}
bool tokudb_show_status(handlerton * hton, THD * thd, stat_print_fn * stat_print, enum ha_stat_type stat_type) {
switch (stat_type) {
case HA_ENGINE_DATA_AMOUNT:
......@@ -732,6 +784,9 @@ bool tokudb_show_status(handlerton * hton, THD * thd, stat_print_fn * stat_print
case HA_ENGINE_LOGS:
return tokudb_show_logs(thd, stat_print);
break;
case HA_ENGINE_STATUS:
return tokudb_show_engine_status(thd, stat_print);
break;
default:
break;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment