117
117
* each written Transaction message?
119
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;
121
130
/** Views defined in info_schema.cc */
122
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);
308
338
const string &TransactionLog::getLogFilename()
310
340
return log_file_name;
493
523
static DRIZZLE_SYSVAR_BOOL(enable,
494
sysvar_transaction_log_enabled,
496
N_("Enable transaction log"),
497
NULL, /* check func */
498
NULL, /* update func */
499
false /* default */);
524
sysvar_transaction_log_enabled,
526
N_("Enable transaction log"),
527
NULL, /* check func */
528
NULL, /* update func */
529
false /* default */);
501
531
static DRIZZLE_SYSVAR_BOOL(truncate_debug,
502
sysvar_transaction_log_truncate_debug,
504
N_("DEBUGGING - Truncate transaction log"),
505
NULL, /* check func */
506
set_truncate_debug, /* update func */
507
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 */);
509
539
static DRIZZLE_SYSVAR_STR(log_file,
510
540
sysvar_transaction_log_file,
511
541
PLUGIN_VAR_READONLY,
512
N_("Path to the file to use for transaction log."),
542
N_("Path to the file to use for transaction log"),
513
543
NULL, /* check func */
514
544
NULL, /* update func*/
515
545
DEFAULT_LOG_FILE_PATH /* default */);
517
547
static DRIZZLE_SYSVAR_BOOL(enable_checksum,
518
sysvar_transaction_log_checksum_enabled,
520
N_("Enable CRC32 Checksumming"),
521
NULL, /* check func */
522
NULL, /* update func */
523
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 */
525
568
static drizzle_sys_var* system_variables[]= {
526
569
DRIZZLE_SYSVAR(enable),
527
570
DRIZZLE_SYSVAR(truncate_debug),
528
571
DRIZZLE_SYSVAR(log_file),
529
572
DRIZZLE_SYSVAR(enable_checksum),
573
DRIZZLE_SYSVAR(sync_method),