115
117
* each written Transaction message?
117
119
static bool sysvar_transaction_log_checksum_enabled= false;
121
* Numeric option controlling the sync/flush behaviour of the transaction
124
* TransactionLog::SYNC_METHOD_OS == 0 ... let OS do sync'ing
125
* TransactionLog::SYNC_METHOD_EVERY_WRITE == 1 ... sync on every write
126
* TransactionLog::SYNC_METHOD_EVERY_SECOND == 2 ... sync at most once a second
128
static uint32_t sysvar_transaction_log_sync_method= 0;
119
130
/** Views defined in info_schema.cc */
120
131
extern plugin::InfoSchemaTable *transaction_log_view;
316
int TransactionLog::syncLogFile()
318
switch (sysvar_transaction_log_sync_method)
320
case SYNC_METHOD_EVERY_WRITE:
321
return my_sync(log_file, 0);
322
case SYNC_METHOD_EVERY_SECOND:
324
time_t now_time= time(NULL);
325
if (last_sync_time <= (now_time - 1))
327
last_sync_time= now_time;
328
return my_sync(log_file, 0);
306
338
const string &TransactionLog::getLogFilename()
308
340
return log_file_name;
491
523
static DRIZZLE_SYSVAR_BOOL(enable,
492
sysvar_transaction_log_enabled,
494
N_("Enable transaction log"),
495
NULL, /* check func */
496
NULL, /* update func */
497
false /* default */);
524
sysvar_transaction_log_enabled,
526
N_("Enable transaction log"),
527
NULL, /* check func */
528
NULL, /* update func */
529
false /* default */);
499
531
static DRIZZLE_SYSVAR_BOOL(truncate_debug,
500
sysvar_transaction_log_truncate_debug,
502
N_("DEBUGGING - Truncate transaction log"),
503
NULL, /* check func */
504
set_truncate_debug, /* update func */
505
false /* default */);
532
sysvar_transaction_log_truncate_debug,
534
N_("DEBUGGING - Truncate transaction log"),
535
NULL, /* check func */
536
set_truncate_debug, /* update func */
537
false /* default */);
507
539
static DRIZZLE_SYSVAR_STR(log_file,
508
540
sysvar_transaction_log_file,
509
541
PLUGIN_VAR_READONLY,
510
N_("Path to the file to use for transaction log."),
542
N_("Path to the file to use for transaction log"),
511
543
NULL, /* check func */
512
544
NULL, /* update func*/
513
545
DEFAULT_LOG_FILE_PATH /* default */);
515
547
static DRIZZLE_SYSVAR_BOOL(enable_checksum,
516
sysvar_transaction_log_checksum_enabled,
518
N_("Enable CRC32 Checksumming"),
519
NULL, /* check func */
520
NULL, /* update func */
521
false /* default */);
548
sysvar_transaction_log_checksum_enabled,
550
N_("Enable CRC32 Checksumming of each written transaction log entry"),
551
NULL, /* check func */
552
NULL, /* update func */
553
false /* default */);
555
static DRIZZLE_SYSVAR_UINT(sync_method,
556
sysvar_transaction_log_sync_method,
558
N_("0 == rely on operating system to sync log file (default), "
559
"1 == sync file at each transaction write, "
560
"2 == sync log file once per second"),
561
NULL, /* check func */
562
NULL, /* update func */
523
568
static drizzle_sys_var* system_variables[]= {
524
569
DRIZZLE_SYSVAR(enable),
525
570
DRIZZLE_SYSVAR(truncate_debug),
526
571
DRIZZLE_SYSVAR(log_file),
527
572
DRIZZLE_SYSVAR(enable_checksum),
573
DRIZZLE_SYSVAR(sync_method),
531
DRIZZLE_DECLARE_PLUGIN
536
N_("Transaction Message Log"),
538
init, /* Plugin Init */
539
deinit, /* Plugin Deinit */
540
NULL, /* status variables */
541
system_variables, /* system variables */
542
NULL /* config options */
544
DRIZZLE_DECLARE_PLUGIN_END;
577
DRIZZLE_PLUGIN(init, deinit, NULL, system_variables);