Changeset: e89e369f5dfb for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e89e369f5dfb
Modified Files:
        sql/storage/bat/bat_logger.c
Branch: hot-snapshot
Log Message:

Plan to snapshot part of the WAL log


diffs (48 lines):

diff --git a/sql/storage/bat/bat_logger.c b/sql/storage/bat/bat_logger.c
--- a/sql/storage/bat/bat_logger.c
+++ b/sql/storage/bat/bat_logger.c
@@ -342,10 +342,43 @@ bl_reload_shared(void)
        return logger_reload(bat_logger_shared) == GDK_SUCCEED ? LOG_OK : 
LOG_ERR;
 }
 
+static const char*
+snapshot_wal(stream *plan)
+{
+       stream *log = bat_logger->log;
+       char *log_file = mnstr_name(log);
+       long pos = ftell(getFile(log));
+       if (pos < 0)
+               return strerror(errno);
+       
+       /* ASSUMPTION: the logger does not seek around in the logfile so
+        * everything after pos is currently garbage and irrelevant to this
+        * snapshot.
+        */
+       mnstr_printf(plan, "%ld %s\n", pos, log_file);
+       return NULL;
+}
+
+static const char*
+snapshot_bbp(stream *plan)
+{
+       /* to be implemented */
+       (void) plan;
+       return NULL;
+}
+
 static const char* 
 bl_snapshot(stream *plan)
 {
-       mnstr_printf(plan, "Here's the plan: make a snapshot!\n");
+       const char *err;
+
+       err = snapshot_wal(plan);
+       if (err)
+               return err;
+       err = snapshot_bbp(plan);
+       if (err)
+               return err;
+
        return NULL;
 }
 
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to