diff options
Diffstat (limited to 'examples/redis-unstable/src/cluster_asm.h')
| -rw-r--r-- | examples/redis-unstable/src/cluster_asm.h | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/examples/redis-unstable/src/cluster_asm.h b/examples/redis-unstable/src/cluster_asm.h new file mode 100644 index 0000000..841a55d --- /dev/null +++ b/examples/redis-unstable/src/cluster_asm.h @@ -0,0 +1,57 @@ +/* cluster_asm.h -- Atomic slot migration implementation for cluster + * + * Copyright (c) 2025-Present, Redis Ltd. + * All rights reserved. + * + * Licensed under your choice of (a) the Redis Source Available License 2.0 + * (RSALv2); or (b) the Server Side Public License v1 (SSPLv1); or (c) the + * GNU Affero General Public License v3 (AGPLv3). + */ + +#ifndef CLUSTER_ASM_H +#define CLUSTER_ASM_H + +struct asmTask; +struct slotRangeArray; +struct slotRange; + +void asmInit(void); +void asmBeforeSleep(void); +void asmCron(void); +void asmSlotSnapshotAndStreamStart(struct asmTask *task); +void asmSlotSnapshotSucceed(struct asmTask *task); +void asmSlotSnapshotFailed(struct asmTask *task); +void asmCallbackOnFreeClient(client *c); +int asmMigrateInProgress(void); +int asmImportInProgress(void); +void asmFeedMigrationClient(robj **argv, int argc); +int asmDebugSetFailPoint(char * channel, char *state); +int asmDebugSetTrimMethod(const char *method, int active_trim_delay); + +void asmImportIncrAppliedBytes(struct asmTask *task, size_t bytes); +struct slotRangeArray *asmTaskGetSlotRanges(const char *task_id); +int asmNotifyConfigUpdated(struct asmTask *task, sds *err); +size_t asmGetPeakSyncBufferSize(void); +size_t asmGetImportInputBufferSize(void); +size_t asmGetMigrateOutputBufferSize(void); +int clusterAsmCancel(const char *task_id, const char *reason); +int clusterAsmCancelBySlot(int slot, const char *reason); +int clusterAsmCancelBySlotRangeArray(struct slotRangeArray *slots, const char *reason); +int clusterAsmCancelByNode(void *node, const char *reason); +int isSlotInAsmTask(int slot); +int isSlotInTrimJob(int slot); +sds asmCatInfoString(sds info); +void clusterMigrationCommand(client *c); +void clusterSyncSlotsCommand(client *c); +struct asmTask *asmLookupTaskBySlotRangeArray(struct slotRangeArray *slots); +void asmCancelTrimJobs(void); +sds asmDumpActiveImportTask(void); +int asmReplicaHandleMasterTask(sds task_info); +void asmFinalizeMasterTask(void); +int asmIsTrimInProgress(void); +int asmGetTrimmingSlotForCommand(struct redisCommand *cmd, robj **argv, int argc); +void asmActiveTrimCycle(void); +int asmIsKeyInTrimJob(sds keyname); +int asmModulePropagateBeforeSlotSnapshot(struct redisCommand *cmd, robj **argv, int argc); +#endif + |
