115
115
* each written Transaction message?
117
117
static bool sysvar_transaction_log_checksum_enabled= false;
119
* Numeric option controlling the sync/flush behaviour of the transaction
122
* TransactionLog::SYNC_METHOD_OS == 0 ... let OS do sync'ing
123
* TransactionLog::SYNC_METHOD_EVERY_WRITE == 1 ... sync on every write
124
* TransactionLog::SYNC_METHOD_EVERY_SECOND == 2 ... sync at most once a second
126
static uint32_t sysvar_transaction_log_sync_method= 0;
119
128
/** Views defined in info_schema.cc */
120
129
extern plugin::InfoSchemaTable *transaction_log_view;
314
int TransactionLog::syncLogFile()
316
switch (sysvar_transaction_log_sync_method)
318
case SYNC_METHOD_EVERY_WRITE:
319
return my_sync(log_file, 0);
320
case SYNC_METHOD_EVERY_SECOND:
322
time_t now_time= time(NULL);
323
if (last_sync_time <= (now_time - 1))
325
last_sync_time= now_time;
326
return my_sync(log_file, 0);
306
336
const string &TransactionLog::getLogFilename()
308
338
return log_file_name;
491
521
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 */);
522
sysvar_transaction_log_enabled,
524
N_("Enable transaction log"),
525
NULL, /* check func */
526
NULL, /* update func */
527
false /* default */);
499
529
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 */);
530
sysvar_transaction_log_truncate_debug,
532
N_("DEBUGGING - Truncate transaction log"),
533
NULL, /* check func */
534
set_truncate_debug, /* update func */
535
false /* default */);
507
537
static DRIZZLE_SYSVAR_STR(log_file,
508
538
sysvar_transaction_log_file,
509
539
PLUGIN_VAR_READONLY,
510
N_("Path to the file to use for transaction log."),
540
N_("Path to the file to use for transaction log"),
511
541
NULL, /* check func */
512
542
NULL, /* update func*/
513
543
DEFAULT_LOG_FILE_PATH /* default */);
515
545
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 */);
546
sysvar_transaction_log_checksum_enabled,
548
N_("Enable CRC32 Checksumming of each written transaction log entry"),
549
NULL, /* check func */
550
NULL, /* update func */
551
false /* default */);
553
static DRIZZLE_SYSVAR_UINT(sync_method,
554
sysvar_transaction_log_sync_method,
556
N_("0 == rely on operating system to sync log file (default), "
557
"1 == sync file at each transaction write, "
558
"2 == sync log file once per second"),
559
NULL, /* check func */
560
NULL, /* update func */
523
566
static drizzle_sys_var* system_variables[]= {
524
567
DRIZZLE_SYSVAR(enable),
525
568
DRIZZLE_SYSVAR(truncate_debug),
526
569
DRIZZLE_SYSVAR(log_file),
527
570
DRIZZLE_SYSVAR(enable_checksum),
571
DRIZZLE_SYSVAR(sync_method),