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