summaryrefslogtreecommitdiff
path: root/examples/redis-unstable/src/cluster_asm.h
diff options
context:
space:
mode:
Diffstat (limited to 'examples/redis-unstable/src/cluster_asm.h')
-rw-r--r--examples/redis-unstable/src/cluster_asm.h57
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
+