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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list