From ff39a973ab2814134b8edca0033d72e15e8d8133 Mon Sep 17 00:00:00 2001
From: Yuriy Nevinitsin <nevinitsin@corp.mail.ru>
Date: Tue, 24 Sep 2013 15:16:46 +0300
Subject: [PATCH] fix: do fdatasync() only when snap_io_rate_limit bytes
 written

---
 src/log_io.cc    | 2 +-
 src/recovery.cc  | 2 +-
 src/tarantool.cc | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/log_io.cc b/src/log_io.cc
index d10e8a8f9c..6db09b16d9 100644
--- a/src/log_io.cc
+++ b/src/log_io.cc
@@ -69,7 +69,7 @@ row_v11_fill(struct row_v11 *row, int64_t lsn, uint16_t tag, uint64_t cookie,
 struct log_dir snap_dir = {
 	/* .panic_if_error = */ false,
 	/* .sync_is_async = */ false,
-	/* .open_wflags = */ O_SYNC,
+	/* .open_wflags = */ 0,
 	/* .filetype = */ "SNAP\n",
 	/* .filename_ext = */ ".snap",
 	/* .dirname = */ NULL
diff --git a/src/recovery.cc b/src/recovery.cc
index b5862a044f..c58fd0caf1 100644
--- a/src/recovery.cc
+++ b/src/recovery.cc
@@ -1192,7 +1192,7 @@ snapshot_write_row(struct log_io *l, struct fio_batch *batch,
 			last = ev_now();
 		}
 		while (bytes >= recovery_state->snap_io_rate_limit) {
-
+            fdatasync(fileno(l->f));
 			ev_now_update();
 			elapsed = ev_now() - last;
 			if (elapsed < 1)
diff --git a/src/tarantool.cc b/src/tarantool.cc
index 236c314aef..06f211f494 100644
--- a/src/tarantool.cc
+++ b/src/tarantool.cc
@@ -853,8 +853,8 @@ main(int argc, char **argv)
 
 	signal_init();
 
-
 	try {
+        say_crit("version: %s", tarantool_version());
 		tarantool_L = tarantool_lua_init();
 		box_init(false);
 		atexit(tarantool_lua_free);
-- 
GitLab