Changeset: 281120557245 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/281120557245 Modified Files: sql/storage/store.c Branch: Jul2021 Log Message:
small cleanup and more use strict use of oldest_pending diffs (56 lines): diff --git a/sql/storage/store.c b/sql/storage/store.c --- a/sql/storage/store.c +++ b/sql/storage/store.c @@ -44,18 +44,10 @@ store_transaction_id(sqlstore *store) return tid; } -static ulng -store_oldest_given_max(sqlstore *store, ulng commit_ts) -{ - if (ATOMIC_GET(&store->nr_active) <= 1) - return commit_ts; - return store->oldest; -} - ulng store_oldest(sqlstore *store) { - return store_oldest_given_max(store, TRANSACTION_ID_BASE); + return store->oldest; } static ulng @@ -3387,11 +3379,12 @@ sql_trans_commit(sql_trans *tr) sqlstore *store = tr->store; store_lock(store); ulng commit_ts = tr->parent ? tr->parent->tid : store_timestamp(store); - ulng oldest = store_oldest_given_max(store, commit_ts); + ulng oldest = store_oldest(store); /* write phase */ TRC_DEBUG(SQL_STORE, "Forwarding changes (" ULLFMT ", " ULLFMT ") -> " ULLFMT "\n", tr->tid, tr->ts, commit_ts); store_pending_changes(store, oldest); + oldest = store_oldest_pending(store); if (tr->changes) { int min_changes = GDKdebug & FORCEMITOMASK ? 5 : 100000; int flush = (tr->logchanges > min_changes && !store->changes); @@ -3405,7 +3398,6 @@ sql_trans_commit(sql_trans *tr) if (c->log && ok == LOG_OK) ok = c->log(tr, c); } - //saved_id = store->logger_api.log_save_id(store); if (ok == LOG_OK && store->prev_oid != store->obj_id) ok = store->logger_api.log_sequence(store, OBJ_SID, store->obj_id); store->prev_oid = store->obj_id; @@ -3414,6 +3406,10 @@ sql_trans_commit(sql_trans *tr) } tr->logchanges = 0; /* apply committed changes */ + if (ATOMIC_GET(&store->nr_active) == 1) { + oldest = commit_ts; + 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 checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list