Changeset: bb12643ccbf0 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=bb12643ccbf0
Modified Files:
        tools/merovingian/client/monetdb.c
        tools/merovingian/daemon/controlrunner.c
        tools/merovingian/utils/database.c
        tools/merovingian/utils/database.h
Branch: wlcr
Log Message:

Remove everything related to the master-replica commands

The snapshots will be handled by the server itself.


diffs (201 lines):

diff --git a/tools/merovingian/client/monetdb.c 
b/tools/merovingian/client/monetdb.c
--- a/tools/merovingian/client/monetdb.c
+++ b/tools/merovingian/client/monetdb.c
@@ -1620,63 +1620,6 @@ command_release(int argc, char *argv[])
        simple_command(argc, argv, "release", "taken database out of 
maintenance mode", 1);
 }
 
-static void
-command_master(int argc, char *argv[])
-{
-       char *e = NULL;
-       sabdb *orig = NULL;
-       sabdb *stats = NULL;
-       char *target_path = NULL;
-
-
-       if (argc != 2 && argc != 3) {
-               /* print help message for this command */
-               command_help(argc + 1, &argv[-1]);
-               exit(1);
-       }
-
-       if (argc == 3) {
-               target_path = strdup(argv[2]);
-               argv[2] = NULL;
-       }
-
-       if ((e = MEROgetStatus(&orig, NULL)) != NULL) {
-               fprintf(stderr, "master: %s\n", e);
-               free(e);
-               exit(2);
-       }
-       stats = globMatchDBS(argc, argv, &orig, "master");
-       msab_freeStatus(&orig);
-       orig = stats;
-
-       if (target_path != NULL) {
-               size_t len = strlen("master path=") + strlen(target_path) + 1;
-               char *cmd = (char *)malloc(len);
-               snprintf(cmd, len, "master path=%s", target_path);
-               simple_argv_cmd(argv[0], orig, cmd,
-                                               "set database as master", NULL);
-               free(target_path);
-               free(cmd);
-       } else {
-               simple_argv_cmd(argv[0], orig, "master",
-                                               "set database as master", NULL);
-       }
-}
-
-static void
-command_replica(int argc, char *argv[])
-{
-       int i;
-       if (argc != 3) {
-               /* print help message for this command */
-               command_help(argc + 1, &argv[-1]);
-               exit(1);
-       }
-       fprintf(stderr, "Called replica with %d args:\n", argc);
-       for (i = 0; i < argc; i++)
-               fprintf(stderr, "  %s\n", argv[i]);
-}
-
 int
 main(int argc, char *argv[])
 {
@@ -1870,10 +1813,6 @@ main(int argc, char *argv[])
                command_set(argc - i, &argv[i], INHERIT);
        } else if (strcmp(argv[i], "discover") == 0) {
                command_discover(argc - i, &argv[i]);
-       } else if (strcmp(argv[i], "master") == 0) {
-               command_master(argc - i, &argv[i]);
-       } else if (strcmp(argv[i], "replica") == 0) {
-               command_replica(argc - i, &argv[i]);
        } else {
                fprintf(stderr, "monetdb: unknown command: %s\n", argv[i]);
                command_help(0, NULL);
diff --git a/tools/merovingian/daemon/controlrunner.c 
b/tools/merovingian/daemon/controlrunner.c
--- a/tools/merovingian/daemon/controlrunner.c
+++ b/tools/merovingian/daemon/controlrunner.c
@@ -618,21 +618,6 @@ static void ctl_handle_client(
                                        len = snprintf(buf2, sizeof(buf2), 
"OK\n");
                                        send_client("=");
                                }
-                       } else if (strcmp(p, "master") == 0 ||
-                                          strncmp(p, "master path=", 
strlen("master path=")) == 0) {
-                               char *e = db_master(q);
-                               if (e != NULL) {
-                                       Mfprintf(_mero_ctlerr, "%s: got command 
master %s: %s\n", origin, q, getErrMsg(e));
-                                       len = snprintf(buf2, sizeof(buf2),
-                                                                  "%s\n", 
getErrMsg(e));
-                                       send_client("!");
-                                       free(e);
-                               } else {
-                                       Mfprintf(_mero_ctlout, "%s: set 
database '%s' to master mode\n",
-                                                        origin, q);
-                                       len = snprintf(buf2, sizeof(buf2), 
"OK\n");
-                                       send_client("=");
-                               }
                        } else if (strncmp(p, "name=", strlen("name=")) == 0) {
                                char *e;
 
diff --git a/tools/merovingian/utils/database.c 
b/tools/merovingian/utils/database.c
--- a/tools/merovingian/utils/database.c
+++ b/tools/merovingian/utils/database.c
@@ -373,84 +373,3 @@ char *db_release(char *dbname) {
 
        return(NULL);
 }
-
-/*
- * The following functions require rsync to be installed and also the system
- * calls exec and wait.
- *
- * They should be compiled conditionally.
- */
-
-#include <sys/types.h>
-#include <sys/wait.h>
-
-static char *
-synchronize_files(char *source, char *destination) {
-       int status = 0;
-       pid_t pid = fork();
-       char buf[8096];
-
-       if (pid == -1) {
-               snprintf(buf, sizeof(buf), "fork for rsync failed");
-               return strdup(buf);
-       }
-       if (pid) {
-               wait(&status);
-       }
-       else {
-               /* make sure that the source path ends in '/' */
-               char *src;
-               if (source[strlen(source)] == '/') {
-                       src = strdup(source);
-               }
-               else {
-                       snprintf(buf, sizeof(buf), "%s/", source);
-                       src = strdup(buf);
-               }
-               execlp("rsync", "rsync", "-ar",
-                          src, destination, NULL);
-               free(src);
-       }
-
-       return NULL;
-}
-/*
-  The master protocol:
-  1. rsync the files to the remote location
-  2. lock the db
-  3. stop the db
-        a. forcibly fail currently running transactions
-        b. flush the dirty bats
-        c. merge deltas?
-  4. rsync again
-  5. release the db
- */
-char *
-db_master(char *dbname) {
-       sabdb *stats;
-       char *e;
-       char *destination;
-       char buf[8096];
-
-       if ((e = msab_getStatus(&stats, dbname)) != NULL) {
-               snprintf(buf, sizeof(buf), "internal error: %s", e);
-               free(e);
-               return(strdup(buf));
-       }
-
-       /* TODO: This should not be hardcoded */
-       snprintf(buf, sizeof(buf), "%s/master", stats->path);
-       destination = strdup(buf);
-
-       /* Step 1 of the protocol */
-       if ((e = synchronize_files(stats->path, destination)) != NULL) {
-               snprintf(buf, sizeof(buf), "internal error: %s", e);
-               free(e);
-               free(destination);
-               return(strdup(buf));
-       }
-
-       free(destination);
-
-       return NULL;
-}
diff --git a/tools/merovingian/utils/database.h 
b/tools/merovingian/utils/database.h
--- a/tools/merovingian/utils/database.h
+++ b/tools/merovingian/utils/database.h
@@ -15,6 +15,5 @@ char* db_destroy(char* dbname);
 char* db_rename(char* olddb, char* newdb);
 char* db_lock(char* dbname);
 char* db_release(char* dbname);
-char* db_master(char *dbname);
 
 #endif
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to