Changeset: 6165e3716599 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=6165e3716599
Modified Files:
        tools/merovingian/daemon/forkmserver.c
        tools/merovingian/daemon/merovingian.c
Branch: Dec2011
Log Message:

monetdbd: set defaults for optpipe and nrthreads


diffs (62 lines):

diff --git a/tools/merovingian/daemon/forkmserver.c 
b/tools/merovingian/daemon/forkmserver.c
--- a/tools/merovingian/daemon/forkmserver.c
+++ b/tools/merovingian/daemon/forkmserver.c
@@ -224,6 +224,8 @@ forkMserver(char *database, sabdb** stat
                mydoproxy = strcmp(getConfVal(_mero_props, "forward"), "proxy") 
== 0;
 
                kv = findConfKey(ckv, "nthreads");
+               if (kv->val == NULL)
+                       kv = findConfKey(_mero_db_props, "nthreads");
                if (kv->val != NULL) {
                        snprintf(nthreads, sizeof(nthreads), 
"gdk_nr_threads=%s", kv->val);
                } else {
@@ -240,6 +242,8 @@ forkMserver(char *database, sabdb** stat
                }
 
                kv = findConfKey(ckv, "optpipe");
+               if (kv->val == NULL)
+                       kv = findConfKey(_mero_db_props, "optpipe");
                if (kv->val != NULL) {
                        snprintf(pipeline, sizeof(pipeline), 
"sql_optimizer=%s", kv->val);
                } else {
diff --git a/tools/merovingian/daemon/merovingian.c 
b/tools/merovingian/daemon/merovingian.c
--- a/tools/merovingian/daemon/merovingian.c
+++ b/tools/merovingian/daemon/merovingian.c
@@ -628,6 +628,37 @@ main(int argc, char *argv[])
        kv->val = strdup("64");
        kv = findConfKey(_mero_db_props, "type");
        kv->val = strdup("database");
+       kv = findConfKey(_mero_db_props, "optpipe");
+       kv->val = strdup("default_pipe");
+       { /* nrthreads */
+               int ncpus = -1;
+               char cnt[8];
+
+#if defined(HAVE_SYSCONF) && defined(_SC_NPROCESSORS_ONLN)
+               /* this works on Linux, Solaris and AIX */
+               ncpus = sysconf(_SC_NPROCESSORS_ONLN);
+#elif defined(HAVE_SYS_SYSCTL_H) && defined(HW_NCPU)   /* BSD */
+               size_t len = sizeof(int);
+               int mib[3];
+
+               /* Everyone should have permission to make this call,
+                * if we get a failure something is really wrong. */
+               mib[0] = CTL_HW;
+               mib[1] = HW_NCPU;
+               mib[2] = -1;
+               sysctl(mib, 3, &ncpus, &len, NULL, 0);
+#elif defined(WIN32)
+               SYSTEM_INFO sysinfo;
+
+               GetSystemInfo(&sysinfo);
+               ncpus = sysinfo.dwNumberOfProcessors;
+#endif
+               if (ncpus > 0) {
+                       snprintf(cnt, sizeof(cnt), "%d", ncpus);
+                       kv = findConfKey(_mero_db_props, "nthreads");
+                       kv->val = strdup(cnt);
+               }
+       }
 
        *dbfarm = '\0';
        if (argc > 1) {
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to