Skip to content

Track the legacy SQL API separately from current #5106

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions db/comdb2.h
Original file line number Diff line number Diff line change
Expand Up @@ -486,6 +486,9 @@ enum CURTRAN_FLAGS { CURTRAN_RECOVERY = 0x00000001 };
struct rawnodestats {
unsigned opcode_counts[MAXTYPCNT];
unsigned blockop_counts[NUM_BLOCKOP_OPCODES];
unsigned sql_queries_cdb2api;
unsigned sql_queries_comdb2api;
unsigned sql_queries_converted;
unsigned sql_queries;
unsigned sql_steps;
unsigned sql_rows;
Expand Down Expand Up @@ -522,6 +525,9 @@ struct summary_nodestats {
unsigned serial; /* serial sql */

unsigned sql_queries;
unsigned sql_queries_cdb2api;
unsigned sql_queries_comdb2api;
unsigned sql_queries_converted;
unsigned sql_steps;
unsigned sql_rows;
double svc_time;
Expand Down
12 changes: 9 additions & 3 deletions db/reqlog.c
Original file line number Diff line number Diff line change
Expand Up @@ -2834,6 +2834,9 @@ struct summary_nodestats *get_nodestats_summary(unsigned *nodes_cnt,
summaries[ii].ref = nodestats->ref;
summaries[ii].is_ssl = nodestats->is_ssl;

summaries[ii].sql_queries_cdb2api = snap.sql_queries_cdb2api;
summaries[ii].sql_queries_comdb2api = snap.sql_queries_comdb2api;
summaries[ii].sql_queries_converted = snap.sql_queries_converted;
summaries[ii].sql_queries = snap.sql_queries;
summaries[ii].sql_steps = snap.sql_steps;
summaries[ii].sql_rows = snap.sql_rows;
Expand Down Expand Up @@ -3042,7 +3045,7 @@ void nodestats_report(FILE *fh, const char *prefix, int disp_rates)
prefix, "node");
logmsgf(LOGMSG_USER, fh,
"%s%5s | finds rngexts writes other | adds upds dels "
"blk/sql recom snapisl serial | queries steps rows\n",
"blk/sql recom snapisl serial | queries steps rows newapi oldapi old2new\n",
prefix, "");

summaries = get_nodestats_summary(&max_clients, disp_rates);
Expand All @@ -3056,14 +3059,17 @@ void nodestats_report(FILE *fh, const char *prefix, int disp_rates)
inet_ntoa(summaries[ii].addr), summaries[ii].ref);
logmsgf(LOGMSG_USER, fh,
"%s%5d | %7u %7u %7u %7u | %7u %7u %7u %7u %7u %7u %7u | %7u "
"%7u %7u\n",
"%7u %7u %7u %7u %7u\n",
prefix, summaries[ii].node, summaries[ii].finds,
summaries[ii].rngexts, summaries[ii].writes,
summaries[ii].other_fstsnds, summaries[ii].adds,
summaries[ii].upds, summaries[ii].dels, summaries[ii].bsql,
summaries[ii].recom, summaries[ii].snapisol,
summaries[ii].serial, summaries[ii].sql_queries,
summaries[ii].sql_steps, summaries[ii].sql_rows);
summaries[ii].sql_steps, summaries[ii].sql_rows,
summaries[ii].sql_queries_cdb2api,
summaries[ii].sql_queries_comdb2api,
summaries[ii].sql_queries_converted);
}

for (ii = 0; ii < max_clients; ii++) {
Expand Down
12 changes: 11 additions & 1 deletion db/sqlinterfaces.c
Original file line number Diff line number Diff line change
Expand Up @@ -2843,8 +2843,18 @@ void query_stats_setup(struct sqlthdstate *thd, struct sqlclntstate *clnt)
/* berkdb stats */
bdb_reset_thread_stats();

if (clnt->rawnodestats)
if (clnt->rawnodestats) {
clnt->rawnodestats->sql_queries++;
const char *api = clnt->plugin.api_type(clnt);
if (strcmp(api, "comdb2api") == 0)
clnt->rawnodestats->sql_queries_comdb2api++;
else if (clnt->features.require_fastsql) {
clnt->rawnodestats->sql_queries_converted++;
log_legacy_request(NULL, clnt);
}
else
clnt->rawnodestats->sql_queries_cdb2api++;
}

/* sql thread stats */
thd->sqlthd->startms = comdb2_time_epochms();
Expand Down
18 changes: 16 additions & 2 deletions sqlite/ext/comdb2/clientstats.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,10 @@ enum {
COLUMN_SQL_STEPS,
COLUMN_SQL_ROWS,
COLUMN_SVC_TIME,
COLUMN_IS_SSL
COLUMN_IS_SSL,
COLUMN_CDB2API,
COLUMN_COMDB2API,
COLUMN_CONVERTEDAPI
};

static int systblClientStatsConnect(sqlite3 *db, void *pAux, int argc,
Expand All @@ -72,7 +75,8 @@ static int systblClientStatsConnect(sqlite3 *db, void *pAux, int argc,
"\"upds\" INTEGER, \"dels\" INTEGER, \"bsql\" INTEGER, \"recom\" "
"INTEGER, \"snapisol\" INTEGER, \"serial\" INTEGER, "
"\"sql_queries\" INTEGER, \"sql_steps\" INTEGER, \"sql_rows\" "
"INTEGER, \"svc_time\" DOUBLE, \"is_ssl\" INTEGER)");
"INTEGER, \"svc_time\" DOUBLE, \"is_ssl\" INTEGER, "
"\"sql_cdb2api\" INTEGER, \"sql_comdb2api\" INTEGER, \"sql_convertedapi\" INTEGER)");

if (rc == SQLITE_OK) {
if ((*ppVtab = sqlite3_malloc(sizeof(sqlite3_vtab))) == 0) {
Expand Down Expand Up @@ -221,6 +225,16 @@ static int systblClientStatsColumn(sqlite3_vtab_cursor *cur,
case COLUMN_IS_SSL:
sqlite3_result_int(ctx, summaries[ii].is_ssl);
break;
case COLUMN_CDB2API:
sqlite3_result_int(ctx, summaries[ii].sql_queries_cdb2api);
break;
case COLUMN_COMDB2API:
sqlite3_result_int(ctx, summaries[ii].sql_queries_comdb2api);
break;
case COLUMN_CONVERTEDAPI:
sqlite3_result_int(ctx, summaries[ii].sql_queries_converted);
break;

default: assert(0);
};

Expand Down