Changeset: fab713f29cd8 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=fab713f29cd8 Modified Files: sql/scripts/25_debug.sql sql/storage/sql_storage.h sql/storage/store.c Branch: candidate-exceptions Log Message:
added enable/disable log flushing procedures. diffs (65 lines): diff --git a/sql/scripts/25_debug.sql b/sql/scripts/25_debug.sql --- a/sql/scripts/25_debug.sql +++ b/sql/scripts/25_debug.sql @@ -52,6 +52,14 @@ create procedure sys.evalAlgebra( ra_stm create procedure sys.flush_log () external name sql."flush_log"; +-- Helper function to disable the log merger +create procedure suspend_log_flushing() + external name sql.suspend_log_flushing; + +-- Helper function to enable the log merger +create procedure resume_log_flushing() + external name sql.resume_log_flushing; + create function sys.debug(debug int) returns integer external name mdb."setDebug"; diff --git a/sql/storage/sql_storage.h b/sql/storage/sql_storage.h --- a/sql/storage/sql_storage.h +++ b/sql/storage/sql_storage.h @@ -349,6 +349,8 @@ extern void store_exit(void); extern int store_apply_deltas(bool locked); extern void store_flush_log(void); +extern void store_suspend_log(void); +extern void store_resume_log(void); extern void store_manager(void); extern void idle_manager(void); diff --git a/sql/storage/store.c b/sql/storage/store.c --- a/sql/storage/store.c +++ b/sql/storage/store.c @@ -2139,7 +2139,7 @@ flusher_should_run(void) if (ATOMIC_GET(&store_nr_active) > 0) reason_not_to = "awaiting idle time"; - if (!flusher.enabled) + if (!flusher.enabled && !my_flush_now) reason_not_to = "disabled"; bool do_it = (reason_to && !reason_not_to); @@ -2236,6 +2236,22 @@ store_flush_log(void) } void +store_suspend_log(void) +{ + MT_lock_set(&bs_lock); + flusher.enabled = false; + MT_lock_unset(&bs_lock); +} + +void +store_resume_log(void) +{ + MT_lock_set(&bs_lock); + flusher.enabled = true; + MT_lock_unset(&bs_lock); +} + +void store_manager(void) { MT_thread_setworking("sleeping"); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list