Changeset: 780c378dd100 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/780c378dd100
Modified Files:
        sql/storage/bat/bat_storage.c
Branch: Dec2023
Log Message:

only free delta's once the parent is merged. This makes sure other threads one 
access those older deltas.


diffs (39 lines):

diff --git a/sql/storage/bat/bat_storage.c b/sql/storage/bat/bat_storage.c
--- a/sql/storage/bat/bat_storage.c
+++ b/sql/storage/bat/bat_storage.c
@@ -4468,7 +4468,7 @@ tc_gc_col( sql_store Store, sql_change *
                        return LOG_OK; /* cannot cleanup yet */
 
                // d is oldest reachable delta
-               if (d->next) // Unreachable can immediately be destroyed.
+               if (d->cs.merged && d->next) // Unreachable can immediately be 
destroyed.
                        destroy_delta(d->next, true);
 
                d->next = NULL;
@@ -4508,7 +4508,7 @@ tc_gc_upd_col( sql_store Store, sql_chan
                        return LOG_OK; /* cannot cleanup yet */
 
                // d is oldest reachable delta
-               if (d->next) // Unreachable can immediately be destroyed.
+               if (d->cs.merged && d->next) // Unreachable can immediately be 
destroyed.
                        destroy_delta(d->next, true);
 
                d->next = NULL;
@@ -4548,7 +4548,7 @@ tc_gc_idx( sql_store Store, sql_change *
                        return LOG_OK; /* cannot cleanup yet */
 
                // d is oldest reachable delta
-               if (d->next) // Unreachable can immediately be destroyed.
+               if (d->cs.merged && d->next) // Unreachable can immediately be 
destroyed.
                        destroy_delta(d->next, true);
 
                d->next = NULL;
@@ -4588,7 +4588,7 @@ tc_gc_upd_idx( sql_store Store, sql_chan
                        return LOG_OK; /* cannot cleanup yet */
 
                // d is oldest reachable delta
-               if (d->next) // Unreachable can immediately be destroyed.
+               if (d->cs.merged && d->next) // Unreachable can immediately be 
destroyed.
                        destroy_delta(d->next, true);
 
                d->next = NULL;
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to