Skip to content

Commit 88b32ba

Browse files
committed
extern: new command SLOTSRESTORE-ASYNC-SELECT
1 parent a5391b2 commit 88b32ba

File tree

4 files changed

+38
-36
lines changed

4 files changed

+38
-36
lines changed

extern/redis-3.2.8/src/help.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1093,11 +1093,11 @@ struct commandHelp {
10931093
"hashkey command [arg ...]",
10941094
"", 14, "codis3.2"
10951095
},
1096-
{"SLOTSRESTORE-ASYNC SELECT",
1096+
{"SLOTSRESTORE-ASYNC-SELECT",
10971097
"db",
10981098
"", 14, "codis3.2"
10991099
},
1100-
{"SLOTSRESTORE-ASYNC DEL",
1100+
{"SLOTSRESTORE-ASYNC DELETE",
11011101
"key",
11021102
"", 14, "codis3.2"
11031103
},

extern/redis-3.2.8/src/server.c

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -307,18 +307,19 @@ struct redisCommand redisCommandTable[] = {
307307
{"slotshashkey",slotshashkeyCommand,-1,"rF",0,NULL,0,0,0,0,0},
308308
{"slotscheck",slotscheckCommand,0,"r",0,NULL,0,0,0,0,0},
309309
{"slotsrestore",slotsrestoreCommand,-4,"wm",0,NULL,0,0,0,0,0},
310-
{"slotsmgrtslot-async",slotsmgrtSlotAsyncCommand,8,"w",0,NULL,0,0,0,0,0},
311-
{"slotsmgrttagslot-async",slotsmgrtTagSlotAsyncCommand,8,"w",0,NULL,0,0,0,0,0},
312-
{"slotsmgrtone-async",slotsmgrtOneAsyncCommand,-7,"w",0,NULL,0,0,0,0,0},
313-
{"slotsmgrttagone-async",slotsmgrtTagOneAsyncCommand,-7,"w",0,NULL,0,0,0,0,0},
310+
{"slotsmgrtslot-async",slotsmgrtSlotAsyncCommand,8,"ws",0,NULL,0,0,0,0,0},
311+
{"slotsmgrttagslot-async",slotsmgrtTagSlotAsyncCommand,8,"ws",0,NULL,0,0,0,0,0},
312+
{"slotsmgrtone-async",slotsmgrtOneAsyncCommand,-7,"ws",0,NULL,0,0,0,0,0},
313+
{"slotsmgrttagone-async",slotsmgrtTagOneAsyncCommand,-7,"ws",0,NULL,0,0,0,0,0},
314314
{"slotsmgrtone-async-dump",slotsmgrtOneAsyncDumpCommand,-4,"rm",0,NULL,0,0,0,0,0},
315315
{"slotsmgrttagone-async-dump",slotsmgrtTagOneAsyncDumpCommand,-4,"rm",0,NULL,0,0,0,0,0},
316-
{"slotsmgrt-async-fence",slotsmgrtAsyncFenceCommand,0,"r",0,NULL,0,0,0,0,0},
316+
{"slotsmgrt-async-fence",slotsmgrtAsyncFenceCommand,0,"rs",0,NULL,0,0,0,0,0},
317317
{"slotsmgrt-async-cancel",slotsmgrtAsyncCancelCommand,0,"F",0,NULL,0,0,0,0,0},
318318
{"slotsmgrt-async-status",slotsmgrtAsyncStatusCommand,0,"F",0,NULL,0,0,0,0,0},
319319
{"slotsmgrt-exec-wrapper",slotsmgrtExecWrapperCommand,-3,"wm",0,NULL,0,0,0,0,0},
320-
{"slotsrestore-async",slotsrestoreAsyncCommand,-2,"w",0,NULL,0,0,0,0,0},
321-
{"slotsrestore-async-auth",slotsrestoreAsyncAuthCommand,2,"F",0,NULL,0,0,0,0,0},
320+
{"slotsrestore-async",slotsrestoreAsyncCommand,-2,"wm",0,NULL,0,0,0,0,0},
321+
{"slotsrestore-async-auth",slotsrestoreAsyncAuthCommand,2,"sltF",0,NULL,0,0,0,0,0},
322+
{"slotsrestore-async-select",slotsrestoreAsyncSelectCommand,2,"lF",0,NULL,0,0,0,0,0},
322323
{"slotsrestore-async-ack",slotsrestoreAsyncAckCommand,3,"w",0,NULL,0,0,0,0,0},
323324
};
324325

extern/redis-3.2.8/src/server.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1707,6 +1707,7 @@ void slotsmgrtAsyncStatusCommand(client *c);
17071707
void slotsmgrtExecWrapperCommand(client *c);
17081708
void slotsrestoreAsyncCommand(client *c);
17091709
void slotsrestoreAsyncAuthCommand(client *c);
1710+
void slotsrestoreAsyncSelectCommand(client *c);
17101711
void slotsrestoreAsyncAckCommand(client *c);
17111712

17121713
void slotsmgrtAsyncCleanup();

extern/redis-3.2.8/src/slots_async.c

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -260,20 +260,19 @@ singleObjectIteratorNext(client *c, singleObjectIterator *it,
260260
leading_msgs += 1;
261261
}
262262
do {
263-
/* SLOTSRESTORE-ASYNC select $db */
264-
addReplyMultiBulkLen(c, 3);
265-
addReplyBulkCString(c, "SLOTSRESTORE-ASYNC");
266-
addReplyBulkCString(c, "select");
263+
/* SLOTSRESTORE-ASYNC-SELECT $db */
264+
addReplyMultiBulkLen(c, 2);
265+
addReplyBulkCString(c, "SLOTSRESTORE-ASYNC-SELECT");
267266
addReplyBulkLongLong(c, c->db->id);
268267
leading_msgs += 1;
269268
} while (0);
270269
}
271270
}
272271

273-
/* SLOTSRESTORE-ASYNC del $key */
272+
/* SLOTSRESTORE-ASYNC delete $key */
274273
addReplyMultiBulkLen(c, 3);
275274
addReplyBulkCString(c, "SLOTSRESTORE-ASYNC");
276-
addReplyBulkCString(c, "del");
275+
addReplyBulkCString(c, "delete");
277276
addReplyBulk(c, key);
278277

279278
long n = numberOfRestoreCommandsFromObject(val, maxbulks);
@@ -1306,16 +1305,20 @@ slotsmgrtExecWrapperCommand(client *c) {
13061305
/* ============================ SlotsrestoreAsync Commands ================================= */
13071306

13081307
static void
1309-
slotsrestoreReplyAck(client *c, int errcode, const char *fmt, ...) {
1308+
slotsrestoreReplyAck(client *c, int err_code, const char *fmt, ...) {
13101309
va_list ap;
13111310
va_start(ap, fmt);
13121311
sds s = sdscatvprintf(sdsempty(), fmt, ap);
13131312
va_end(ap);
13141313

13151314
addReplyMultiBulkLen(c, 3);
13161315
addReplyBulkCString(c, "SLOTSRESTORE-ASYNC-ACK");
1317-
addReplyBulkLongLong(c, errcode);
1316+
addReplyBulkLongLong(c, err_code);
13181317
addReplyBulkSds(c, s);
1318+
1319+
if (err_code != 0) {
1320+
c->flags |= CLIENT_CLOSE_AFTER_REPLY;
1321+
}
13191322
}
13201323

13211324
extern int verifyDumpPayload(unsigned char *p, size_t len);
@@ -1333,21 +1336,6 @@ slotsrestoreAsyncHandle(client *c) {
13331336
}
13341337
cmd = c->argv[1]->ptr;
13351338

1336-
/* SLOTSRESTORE-ASYNC select $db */
1337-
if (!strcasecmp(cmd, "select")) {
1338-
long long db;
1339-
if (c->argc != 3) {
1340-
goto bad_arguments_number;
1341-
}
1342-
if (getLongLongFromObject(c->argv[2], &db) != C_OK ||
1343-
!(db >= 0 && db <= INT_MAX) || selectDb(c, db) != C_OK) {
1344-
slotsrestoreReplyAck(c, -1, "invalid DB index (DB=%s)", c->argv[2]->ptr);
1345-
return C_ERR;
1346-
}
1347-
slotsrestoreReplyAck(c, 0, "%d", c->db->id);
1348-
return C_OK;
1349-
}
1350-
13511339
/* ==================================================== */
13521340
/* SLOTSRESTORE-ASYNC $cmd $key [$ttl $arg1, $arg2 ...] */
13531341
/* ==================================================== */
@@ -1358,8 +1346,8 @@ slotsrestoreAsyncHandle(client *c) {
13581346

13591347
robj *key = c->argv[2];
13601348

1361-
/* SLOTSRESTORE-ASYNC del $key */
1362-
if (!strcasecmp(cmd, "del")) {
1349+
/* SLOTSRESTORE-ASYNC delete $key */
1350+
if (!strcasecmp(cmd, "delete")) {
13631351
if (c->argc != 3) {
13641352
goto bad_arguments_number;
13651353
}
@@ -1635,8 +1623,7 @@ slotsrestoreAsyncHandle(client *c) {
16351623

16361624

16371625
/* *
1638-
* SLOTSRESTORE-ASYNC select $db
1639-
* del $key
1626+
* SLOTSRESTORE-ASYNC delete $key
16401627
* expire $key $ttl
16411628
* object $key $ttl $payload
16421629
* string $key $ttl $payload
@@ -1768,3 +1755,16 @@ slotsrestoreAsyncAuthCommand(client *c) {
17681755
}
17691756
}
17701757

1758+
/* *
1759+
* SLOTSRESTORE-ASYNC-SELECT $db
1760+
* */
1761+
void
1762+
slotsrestoreAsyncSelectCommand(client *c) {
1763+
long long db;
1764+
if (getLongLongFromObject(c->argv[1], &db) != C_OK ||
1765+
!(db >= 0 && db <= INT_MAX) || selectDb(c, db) != C_OK) {
1766+
slotsrestoreReplyAck(c, -1, "invalid DB index (%s)", c->argv[1]->ptr);
1767+
} else {
1768+
slotsrestoreReplyAck(c, 0, "OK");
1769+
}
1770+
}

0 commit comments

Comments
 (0)