Changeset: b542cfcd24b0 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/b542cfcd24b0
Modified Files:
        gdk/gdk_logger.c
        sql/storage/store.c
Branch: Jul2021
Log Message:

small cleanup
on debug 128 active logger when inactive


diffs (86 lines):

diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -2654,7 +2654,6 @@ gdk_return
 log_tend(logger *lg)
 {
        logformat l;
-       gdk_return res = GDK_SUCCEED;
 
        if (lg->debug & 1)
                fprintf(stderr, "#log_tend %d\n", lg->tid);
@@ -2663,8 +2662,7 @@ log_tend(logger *lg)
        l.id = lg->tid;
        if (lg->flushnow) {
                lg->flushnow = 0;
-               gdk_return res = logger_commit(lg);
-               return res;
+               return logger_commit(lg);
        }
 
        if (LOG_DISABLED(lg)) {
@@ -2672,8 +2670,7 @@ log_tend(logger *lg)
                return GDK_SUCCEED;
        }
 
-       if (res != GDK_SUCCEED ||
-           log_write_format(lg, &l) != GDK_SUCCEED ||
+       if (log_write_format(lg, &l) != GDK_SUCCEED ||
            mnstr_flush(lg->output_log, MNSTR_FLUSH_DATA) ||
            (!(GDKdebug & NOSYNCMASK) && mnstr_fsync(lg->output_log)) ||
            new_logfile(lg) != GDK_SUCCEED) {
diff --git a/sql/storage/store.c b/sql/storage/store.c
--- a/sql/storage/store.c
+++ b/sql/storage/store.c
@@ -2079,6 +2079,16 @@ store_manager(sqlstore *store)
        for (;;) {
                int res;
 
+               if (store->debug&128 && ATOMIC_GET(&store->nr_active) == 0) {
+                       store_lock(store);
+                       if (ATOMIC_GET(&store->nr_active) == 0) {
+                               ulng oldest = store_timestamp(store)+1;
+                               store_pending_changes(store, oldest);
+                       }
+                       store_unlock(store);
+                       store->logger_api.activate(store); /* rotate too new 
log file */
+               }
+
                if (GDKexiting())
                        break;
                const int sleeptime = 100;
@@ -3415,12 +3425,7 @@ sql_trans_commit(sql_trans *tr)
 
        if (!list_empty(tr->changes)) {
                MT_lock_set(&store->commit);
-               store_lock(store);
-               ulng oldest = store_oldest(store);
-               store_pending_changes(store, oldest);
-               oldest = store_oldest_pending(store);
-               store_unlock(store);
-               ulng commit_ts = 0;
+               ulng commit_ts = 0, oldest = 0;
                int flush = 0;
                /* log changes should only be done if there is something to log 
*/
                if (!tr->parent && tr->logchanges > 0) {
@@ -3448,17 +3453,16 @@ sql_trans_commit(sql_trans *tr)
                } else {
                        store_lock(store);
                        commit_ts = tr->parent ? tr->parent->tid : 
store_timestamp(store);
-                       oldest = tr->parent ? commit_ts : oldest;
                        if (tr->parent)
                                tr->parent->logchanges += tr->logchanges;
                }
+               oldest = tr->parent ? commit_ts : oldest;
                tr->logchanges = 0;
                TRC_DEBUG(SQL_STORE, "Forwarding changes (" ULLFMT ", " ULLFMT 
") -> " ULLFMT "\n", tr->tid, tr->ts, commit_ts);
                /* apply committed changes */
-               if (ATOMIC_GET(&store->nr_active) == 1 && !tr->parent) {
+               if (ATOMIC_GET(&store->nr_active) == 1 && !tr->parent)
                        oldest = commit_ts;
-                       store_pending_changes(store, oldest);
-               }
+               store_pending_changes(store, oldest);
                for(node *n=tr->changes->h; n && ok == LOG_OK; n = n->next) {
                        sql_change *c = n->data;
 
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to