Changeset: 027957400297 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/027957400297
Modified Files:
        tools/monetdbe/monetdbe.c
Branch: Jul2021
Log Message:

only use timeouts in the query threads


diffs (153 lines):

diff --git a/tools/monetdbe/monetdbe.c b/tools/monetdbe/monetdbe.c
--- a/tools/monetdbe/monetdbe.c
+++ b/tools/monetdbe/monetdbe.c
@@ -475,7 +475,59 @@ monetdbe_close_internal(monetdbe_databas
 }
 
 static int
-monetdbe_open_internal(monetdbe_database_internal *mdbe)
+monetdbe_workers_internal(monetdbe_database_internal *mdbe, monetdbe_options 
*opts)
+{
+       int workers = 0;
+       if (opts && opts->nr_threads) {
+               if (opts->nr_threads < 0)
+                       mdbe->msg = createException(MAL, 
"monetdbe.monetdbe_startup", "Nr_threads should be positive");
+               else
+                       workers = GDKnr_threads = opts->nr_threads;
+       }
+       return workers;
+}
+
+static int
+monetdbe_memory_internal(monetdbe_database_internal *mdbe, monetdbe_options 
*opts)
+{
+       int memory = 0;
+       if (opts && opts->memorylimit) {
+               if (opts->memorylimit < 0)
+                       mdbe->msg = createException(MAL, 
"monetdbe.monetdbe_startup", "Memorylimit should be positive");
+               else /* Memory limit is session specific */
+                       memory = opts->memorylimit;
+       }
+       return memory;
+}
+
+static int
+monetdbe_querytimeout_internal(monetdbe_database_internal *mdbe, 
monetdbe_options *opts)
+{
+       int querytimeout = 0;
+       if (opts && opts->querytimeout) {
+               if (opts->querytimeout < 0)
+                       mdbe->msg = createException(MAL, 
"monetdbe.monetdbe_startup", "Query timeout should be positive (in sec)");
+               else
+                       querytimeout = opts->querytimeout;
+       }
+       return querytimeout;
+}
+
+static int
+monetdbe_sessiontimeout_internal(monetdbe_database_internal *mdbe, 
monetdbe_options *opts)
+{
+       int sessiontimeout = 0;
+       if (opts && opts->sessiontimeout) {
+               if (opts->sessiontimeout < 0)
+                       mdbe->msg = createException(MAL, 
"monetdbe.monetdbe_startup", "Session timeout should be positive (in sec)");
+               else
+                       sessiontimeout = opts->sessiontimeout;
+       }
+       return sessiontimeout;
+}
+
+static int
+monetdbe_open_internal(monetdbe_database_internal *mdbe, monetdbe_options 
*opts )
 {
        mvc *m;
 
@@ -491,6 +543,12 @@ monetdbe_open_internal(monetdbe_database
                goto cleanup;
        }
        mdbe->c->curmodule = mdbe->c->usermodule = userModule();
+       mdbe->c->workerlimit = monetdbe_workers_internal(mdbe, opts);
+       mdbe->c->memorylimit = monetdbe_memory_internal(mdbe, opts);
+       mdbe->c->querytimeout = monetdbe_querytimeout_internal(mdbe, opts);
+       mdbe->c->sessiontimeout = monetdbe_sessiontimeout_internal(mdbe, opts);
+       if (mdbe->msg)
+               goto cleanup;
        if (mdbe->c->usermodule == NULL) {
                mdbe->msg = createException(MAL, 
"monetdbe.monetdbe_open_internal", "Failed to initialize client MAL module");
                goto cleanup;
@@ -542,7 +600,7 @@ monetdbe_startup(monetdbe_database_inter
        opt *set = NULL;
        int setlen;
        bool with_mapi_server;
-       int workers, memory, querytimeout, sessiontimeout;
+       int workers, memory;
        gdk_return gdk_res;
 
        GDKfataljumpenable = 1;
@@ -608,43 +666,12 @@ monetdbe_startup(monetdbe_database_inter
 
        GDKtracer_set_adapter(mbedded); /* set the output of GDKtracer logs */
 
-       workers = 0;
-       memory = 0;
-       querytimeout = 0;
-       sessiontimeout = 0;
-
-       if (opts && opts->nr_threads) {
-               if( opts->nr_threads < 0){
-                       mdbe->msg = createException(MAL, 
"monetdbe.monetdbe_startup", "Nr_threads should be positive");
-                       goto cleanup;
-               }
-               workers = GDKnr_threads = opts->nr_threads;
-       }
-       if (opts && opts->memorylimit) {
-               if( opts->memorylimit < 0){
-                       mdbe->msg = createException(MAL, 
"monetdbe.monetdbe_startup", "Memorylimit should be positive");
+       workers = monetdbe_workers_internal(mdbe, opts);
+       memory = monetdbe_memory_internal(mdbe, opts);
+       if (memory)
+                       GDK_vm_maxsize = (size_t) memory << 20; /* convert from 
MiB to bytes */
+       if (mdbe->msg)
                        goto cleanup;
-               }
-               // Memory limit is session specific
-               memory = (size_t) opts->memorylimit;
-               GDK_vm_maxsize = (size_t) memory << 20; /* convert from MiB to 
bytes */
-       }
-       if (opts && opts->querytimeout) {
-               if( opts->querytimeout < 0){
-                       mdbe->msg = createException(MAL, 
"monetdbe.monetdbe_startup", "Query timeout should be positive (in sec)");
-                       goto cleanup;
-               }
-               // Query time is session specific
-               querytimeout = opts->querytimeout;
-       }
-       if (opts && opts->sessiontimeout) {
-               if( opts->sessiontimeout < 0){
-                       mdbe->msg = createException(MAL, 
"monetdbe.monetdbe_startup", "Session timeout should be positive (in sec)");
-                       goto cleanup;
-               }
-               // Query time is session specific
-               sessiontimeout = opts->sessiontimeout;
-       }
 
        if (!dbdir) { /* in-memory */
                if (BBPaddfarm(NULL, (1U << PERSISTENT) | (1U << TRANSIENT), 
false) != GDK_SUCCEED) {
@@ -672,7 +699,7 @@ monetdbe_startup(monetdbe_database_inter
                goto cleanup;
        }
 
-       if ((mdbe->msg = malEmbeddedBoot(workers, memory, querytimeout, 
sessiontimeout, with_mapi_server)) != MAL_SUCCEED)
+       if ((mdbe->msg = malEmbeddedBoot(workers, memory, 0, 0, 
with_mapi_server)) != MAL_SUCCEED)
                goto cleanup;
 
        monetdbe_embedded_initialized = true;
@@ -834,7 +861,7 @@ monetdbe_open(monetdbe_database *dbhdl, 
                mdbe->msg = createException(MAL, "monetdbe.monetdbe_open", 
"monetdbe_open currently only one active database is supported");
        }
        if (!mdbe->msg)
-               res = monetdbe_open_internal(mdbe);
+               res = monetdbe_open_internal(mdbe, opts);
 
        if (res == 0 && is_remote)
                res = monetdbe_open_remote(mdbe, opts);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to