summaryrefslogtreecommitdiff
path: root/sql/set_var.h
diff options
context:
space:
mode:
authorunknown <guilhem@mysql.com>2004-06-10 15:56:13 +0200
committerunknown <guilhem@mysql.com>2004-06-10 15:56:13 +0200
commit7ece3c749152fd9a5df821398852a4cb02ec13a2 (patch)
tree9776f371549ba002dc5dde8ab3d942e3ec380a66 /sql/set_var.h
parent7f4402201f87978960e206f97674bf30f1a414ae (diff)
downloadmariadb-git-7ece3c749152fd9a5df821398852a4cb02ec13a2.tar.gz
WL#1595 "Optionally fsync() the binlog after every statement":
New option --sync-binlog=x (and global settable variable) which will fsync the binlog after every x-th disk write to it. That is, if in autocommit mode, after every x-th statement written to the binlog; if using transactions, after every x-th transaction written to the binlog. x==0 means no fsync. x==1 is the slowest. There is no test added for this, I have just checked that it works as --sync-binlog=1 dramatically slows down mysqld. Made sync-frm a global settable variable. sql/log.cc: every sync_binlog_period-th disk binlog write, we fsync the binlog sql/mysql_priv.h: new option sync_binlog sql/mysqld.cc: new option sync_binlog sql/set_var.cc: Making sync-frm a settable global option. New settable global option sync-binlog. sql/set_var.h: new global settable variable sync_binlog needs a specific ::update because it needs to take LOCK_log
Diffstat (limited to 'sql/set_var.h')
-rw-r--r--sql/set_var.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/sql/set_var.h b/sql/set_var.h
index 64bdfdb718b..9bed6f01dcc 100644
--- a/sql/set_var.h
+++ b/sql/set_var.h
@@ -462,7 +462,7 @@ public:
};
-#ifndef EMBEDDED_LIBRARY
+#ifdef HAVE_REPLICATION
class sys_var_slave_skip_counter :public sys_var
{
public:
@@ -475,6 +475,14 @@ public:
type() or value_ptr()
*/
};
+
+class sys_var_sync_binlog_period :public sys_var_long_ptr
+{
+public:
+ sys_var_sync_binlog_period(const char *name_arg, ulong *value_ptr)
+ :sys_var_long_ptr(name_arg,value_ptr) {}
+ bool update(THD *thd, set_var *var);
+};
#endif
class sys_var_rand_seed1 :public sys_var