├── .dockerignore ├── .github └── workflows │ └── ci.yaml ├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── Makefile ├── README.md ├── chaostest ├── USAGE.md ├── config.py ├── gen_hosts.py ├── monitor_all_redis.py ├── random_test.py ├── render_compose.py ├── requirements.txt ├── test_stack_mem_broker.yml.j2 └── utils.py ├── clienttest ├── golang │ ├── go.mod │ ├── go.sum │ └── pkg │ │ ├── goredis_test.go │ │ └── utils.go ├── java │ ├── .gitattributes │ ├── .gitignore │ ├── app │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── clienttest │ │ │ │ └── App.java │ │ │ └── test │ │ │ └── java │ │ │ └── clienttest │ │ │ ├── JedisTest.java │ │ │ ├── LettuceTest.java │ │ │ ├── RedissionTest.java │ │ │ └── Utils.java │ ├── gradle │ │ └── wrapper │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle.kts └── python │ ├── redis_py_cluster_test.py │ └── requirements.txt ├── conf ├── coordinator.toml ├── mem-broker.toml └── server-proxy.toml ├── docs ├── active_redirection.md ├── architecture.svg ├── best_practice.md ├── broker_external_storage.md ├── broker_http_api.md ├── chunk.md ├── chunk.svg ├── chunk_allocation.txt ├── command_table.json ├── command_table.md ├── development.md ├── docker_compose_example.md ├── generate_command_table.py ├── mem_broker_replica.md ├── memory_broker_api.md ├── meta_command.md ├── migration_benchmark.md ├── migration_local_test.md ├── performance.md ├── performance │ ├── max_latency_connection_number.svg │ ├── max_latency_pipeline_number.svg │ ├── throughput_connection_number.svg │ └── throughput_pipeline_number.svg ├── redis_cluster_protocol.md ├── redis_cluster_protocol.svg ├── redis_cluster_proxy.svg ├── set_up_manually.md ├── slots_migration.md ├── undermoon-logo-raw.svg ├── undermoon-logo.svg └── undermoon_server_proxy.svg ├── examples ├── Dockerfile-undermoon-release ├── Dockerfile-undermoon-test ├── broker_external_http_storage.py ├── docker-compose-mem-broker-example.yml ├── docker-compose-mem-broker.yml ├── mem-broker │ ├── coordinator1.toml │ ├── coordinator2.toml │ ├── init.sh │ ├── mem-broker.toml │ ├── server_proxy1.toml │ ├── server_proxy2.toml │ ├── server_proxy3.toml │ ├── server_proxy4.toml │ ├── server_proxy5.toml │ └── server_proxy6.toml ├── run_broker.sh ├── run_coordinator.sh └── run_proxy.sh ├── local_tests ├── 1 │ └── redis.conf ├── 2 │ └── redis.conf └── redis_cluster │ ├── 1 │ └── redis.conf │ └── 2 │ └── redis.conf ├── rust-toolchain ├── rustfmt.toml ├── scripts ├── dkclean.sh ├── dkkill.sh ├── dkrmi.sh ├── dksh.sh ├── init_single_server_proxy.sh ├── loop_migration_test.sh ├── mem_store_v1_to_v2.py ├── readme_test.sh ├── run_redis_cluster.sh └── run_two_shards.sh ├── src ├── bin │ ├── coordinator.rs │ ├── mem_broker.rs │ └── server_proxy.rs ├── broker │ ├── epoch.rs │ ├── external.rs │ ├── migrate.rs │ ├── mod.rs │ ├── ordered_proxy.rs │ ├── persistence.rs │ ├── query.rs │ ├── replication.rs │ ├── resource.rs │ ├── service.rs │ ├── storage.rs │ ├── store.rs │ ├── update.rs │ └── utils.rs ├── common │ ├── atomic_lock.rs │ ├── batch.rs │ ├── biatomic.rs │ ├── cluster.rs │ ├── config.rs │ ├── future_group.rs │ ├── mod.rs │ ├── proto.rs │ ├── resp_execution.rs │ ├── response.rs │ ├── slot_lock.rs │ ├── track.rs │ ├── try_chunks.rs │ ├── utils.rs │ ├── version.rs │ └── yield_now.rs ├── coordinator │ ├── api.rs │ ├── broker.rs │ ├── core.rs │ ├── detector.rs │ ├── http_mani_broker.rs │ ├── http_meta_broker.rs │ ├── migration.rs │ ├── mod.rs │ ├── recover.rs │ ├── service.rs │ └── sync.rs ├── lib.rs ├── migration │ ├── manager.rs │ ├── mod.rs │ ├── scan_migration.rs │ ├── scan_task.rs │ ├── stats.rs │ └── task.rs ├── protocol │ ├── client.rs │ ├── codec.rs │ ├── decoder.rs │ ├── encoder.rs │ ├── fp.rs │ ├── mod.rs │ ├── packet.rs │ ├── resp.rs │ └── stateless.rs ├── proxy │ ├── backend.rs │ ├── blocking.rs │ ├── cluster.rs │ ├── command.rs │ ├── compress.rs │ ├── executor.rs │ ├── manager.rs │ ├── migration_backend.rs │ ├── mod.rs │ ├── reply.rs │ ├── sender.rs │ ├── service.rs │ ├── session.rs │ ├── slot.rs │ ├── slowlog.rs │ └── table.rs └── replication │ ├── manager.rs │ ├── mod.rs │ ├── redis_replicator.rs │ └── replicator.rs └── tests ├── connection.rs ├── proxy_manager_test.rs └── redis_client.rs /.dockerignore: -------------------------------------------------------------------------------- 1 | target/ 2 | chaostest/__pycache__/ 3 | 4 | -------------------------------------------------------------------------------- /.github/workflows/ci.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/.github/workflows/ci.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/.gitignore -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/README.md -------------------------------------------------------------------------------- /chaostest/USAGE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/chaostest/USAGE.md -------------------------------------------------------------------------------- /chaostest/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/chaostest/config.py -------------------------------------------------------------------------------- /chaostest/gen_hosts.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/chaostest/gen_hosts.py -------------------------------------------------------------------------------- /chaostest/monitor_all_redis.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/chaostest/monitor_all_redis.py -------------------------------------------------------------------------------- /chaostest/random_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/chaostest/random_test.py -------------------------------------------------------------------------------- /chaostest/render_compose.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/chaostest/render_compose.py -------------------------------------------------------------------------------- /chaostest/requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/chaostest/requirements.txt -------------------------------------------------------------------------------- /chaostest/test_stack_mem_broker.yml.j2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/chaostest/test_stack_mem_broker.yml.j2 -------------------------------------------------------------------------------- /chaostest/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/chaostest/utils.py -------------------------------------------------------------------------------- /clienttest/golang/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/clienttest/golang/go.mod -------------------------------------------------------------------------------- /clienttest/golang/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/clienttest/golang/go.sum -------------------------------------------------------------------------------- /clienttest/golang/pkg/goredis_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/clienttest/golang/pkg/goredis_test.go -------------------------------------------------------------------------------- /clienttest/golang/pkg/utils.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/clienttest/golang/pkg/utils.go -------------------------------------------------------------------------------- /clienttest/java/.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/clienttest/java/.gitattributes -------------------------------------------------------------------------------- /clienttest/java/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/clienttest/java/.gitignore -------------------------------------------------------------------------------- /clienttest/java/app/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/clienttest/java/app/build.gradle.kts -------------------------------------------------------------------------------- /clienttest/java/app/src/main/java/clienttest/App.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/clienttest/java/app/src/main/java/clienttest/App.java -------------------------------------------------------------------------------- /clienttest/java/app/src/test/java/clienttest/JedisTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/clienttest/java/app/src/test/java/clienttest/JedisTest.java -------------------------------------------------------------------------------- /clienttest/java/app/src/test/java/clienttest/LettuceTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/clienttest/java/app/src/test/java/clienttest/LettuceTest.java -------------------------------------------------------------------------------- /clienttest/java/app/src/test/java/clienttest/RedissionTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/clienttest/java/app/src/test/java/clienttest/RedissionTest.java -------------------------------------------------------------------------------- /clienttest/java/app/src/test/java/clienttest/Utils.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/clienttest/java/app/src/test/java/clienttest/Utils.java -------------------------------------------------------------------------------- /clienttest/java/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/clienttest/java/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /clienttest/java/gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/clienttest/java/gradlew -------------------------------------------------------------------------------- /clienttest/java/gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/clienttest/java/gradlew.bat -------------------------------------------------------------------------------- /clienttest/java/settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/clienttest/java/settings.gradle.kts -------------------------------------------------------------------------------- /clienttest/python/redis_py_cluster_test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/clienttest/python/redis_py_cluster_test.py -------------------------------------------------------------------------------- /clienttest/python/requirements.txt: -------------------------------------------------------------------------------- 1 | redis-py-cluster==2.1.0 2 | -------------------------------------------------------------------------------- /conf/coordinator.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/conf/coordinator.toml -------------------------------------------------------------------------------- /conf/mem-broker.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/conf/mem-broker.toml -------------------------------------------------------------------------------- /conf/server-proxy.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/conf/server-proxy.toml -------------------------------------------------------------------------------- /docs/active_redirection.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/active_redirection.md -------------------------------------------------------------------------------- /docs/architecture.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/architecture.svg -------------------------------------------------------------------------------- /docs/best_practice.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/best_practice.md -------------------------------------------------------------------------------- /docs/broker_external_storage.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/broker_external_storage.md -------------------------------------------------------------------------------- /docs/broker_http_api.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/broker_http_api.md -------------------------------------------------------------------------------- /docs/chunk.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/chunk.md -------------------------------------------------------------------------------- /docs/chunk.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/chunk.svg -------------------------------------------------------------------------------- /docs/chunk_allocation.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/chunk_allocation.txt -------------------------------------------------------------------------------- /docs/command_table.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/command_table.json -------------------------------------------------------------------------------- /docs/command_table.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/command_table.md -------------------------------------------------------------------------------- /docs/development.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/development.md -------------------------------------------------------------------------------- /docs/docker_compose_example.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/docker_compose_example.md -------------------------------------------------------------------------------- /docs/generate_command_table.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/generate_command_table.py -------------------------------------------------------------------------------- /docs/mem_broker_replica.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/mem_broker_replica.md -------------------------------------------------------------------------------- /docs/memory_broker_api.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/memory_broker_api.md -------------------------------------------------------------------------------- /docs/meta_command.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/meta_command.md -------------------------------------------------------------------------------- /docs/migration_benchmark.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/migration_benchmark.md -------------------------------------------------------------------------------- /docs/migration_local_test.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/migration_local_test.md -------------------------------------------------------------------------------- /docs/performance.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/performance.md -------------------------------------------------------------------------------- /docs/performance/max_latency_connection_number.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/performance/max_latency_connection_number.svg -------------------------------------------------------------------------------- /docs/performance/max_latency_pipeline_number.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/performance/max_latency_pipeline_number.svg -------------------------------------------------------------------------------- /docs/performance/throughput_connection_number.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/performance/throughput_connection_number.svg -------------------------------------------------------------------------------- /docs/performance/throughput_pipeline_number.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/performance/throughput_pipeline_number.svg -------------------------------------------------------------------------------- /docs/redis_cluster_protocol.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/redis_cluster_protocol.md -------------------------------------------------------------------------------- /docs/redis_cluster_protocol.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/redis_cluster_protocol.svg -------------------------------------------------------------------------------- /docs/redis_cluster_proxy.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/redis_cluster_proxy.svg -------------------------------------------------------------------------------- /docs/set_up_manually.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/set_up_manually.md -------------------------------------------------------------------------------- /docs/slots_migration.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/slots_migration.md -------------------------------------------------------------------------------- /docs/undermoon-logo-raw.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/undermoon-logo-raw.svg -------------------------------------------------------------------------------- /docs/undermoon-logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/undermoon-logo.svg -------------------------------------------------------------------------------- /docs/undermoon_server_proxy.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/docs/undermoon_server_proxy.svg -------------------------------------------------------------------------------- /examples/Dockerfile-undermoon-release: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/examples/Dockerfile-undermoon-release -------------------------------------------------------------------------------- /examples/Dockerfile-undermoon-test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/examples/Dockerfile-undermoon-test -------------------------------------------------------------------------------- /examples/broker_external_http_storage.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/examples/broker_external_http_storage.py -------------------------------------------------------------------------------- /examples/docker-compose-mem-broker-example.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/examples/docker-compose-mem-broker-example.yml -------------------------------------------------------------------------------- /examples/docker-compose-mem-broker.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/examples/docker-compose-mem-broker.yml -------------------------------------------------------------------------------- /examples/mem-broker/coordinator1.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/examples/mem-broker/coordinator1.toml -------------------------------------------------------------------------------- /examples/mem-broker/coordinator2.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/examples/mem-broker/coordinator2.toml -------------------------------------------------------------------------------- /examples/mem-broker/init.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/examples/mem-broker/init.sh -------------------------------------------------------------------------------- /examples/mem-broker/mem-broker.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/examples/mem-broker/mem-broker.toml -------------------------------------------------------------------------------- /examples/mem-broker/server_proxy1.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/examples/mem-broker/server_proxy1.toml -------------------------------------------------------------------------------- /examples/mem-broker/server_proxy2.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/examples/mem-broker/server_proxy2.toml -------------------------------------------------------------------------------- /examples/mem-broker/server_proxy3.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/examples/mem-broker/server_proxy3.toml -------------------------------------------------------------------------------- /examples/mem-broker/server_proxy4.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/examples/mem-broker/server_proxy4.toml -------------------------------------------------------------------------------- /examples/mem-broker/server_proxy5.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/examples/mem-broker/server_proxy5.toml -------------------------------------------------------------------------------- /examples/mem-broker/server_proxy6.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/examples/mem-broker/server_proxy6.toml -------------------------------------------------------------------------------- /examples/run_broker.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/examples/run_broker.sh -------------------------------------------------------------------------------- /examples/run_coordinator.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/examples/run_coordinator.sh -------------------------------------------------------------------------------- /examples/run_proxy.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/examples/run_proxy.sh -------------------------------------------------------------------------------- /local_tests/1/redis.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/local_tests/1/redis.conf -------------------------------------------------------------------------------- /local_tests/2/redis.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/local_tests/2/redis.conf -------------------------------------------------------------------------------- /local_tests/redis_cluster/1/redis.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/local_tests/redis_cluster/1/redis.conf -------------------------------------------------------------------------------- /local_tests/redis_cluster/2/redis.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/local_tests/redis_cluster/2/redis.conf -------------------------------------------------------------------------------- /rust-toolchain: -------------------------------------------------------------------------------- 1 | stable 2 | -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/rustfmt.toml -------------------------------------------------------------------------------- /scripts/dkclean.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/scripts/dkclean.sh -------------------------------------------------------------------------------- /scripts/dkkill.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/scripts/dkkill.sh -------------------------------------------------------------------------------- /scripts/dkrmi.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/scripts/dkrmi.sh -------------------------------------------------------------------------------- /scripts/dksh.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/scripts/dksh.sh -------------------------------------------------------------------------------- /scripts/init_single_server_proxy.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | redis-cli -h localhost -p 5299 UMCTL SETCLUSTER v2 2 NOFLAGS mydb 127.0.0.1:6379 1 0-16383 4 | 5 | -------------------------------------------------------------------------------- /scripts/loop_migration_test.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/scripts/loop_migration_test.sh -------------------------------------------------------------------------------- /scripts/mem_store_v1_to_v2.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/scripts/mem_store_v1_to_v2.py -------------------------------------------------------------------------------- /scripts/readme_test.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/scripts/readme_test.sh -------------------------------------------------------------------------------- /scripts/run_redis_cluster.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/scripts/run_redis_cluster.sh -------------------------------------------------------------------------------- /scripts/run_two_shards.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/scripts/run_two_shards.sh -------------------------------------------------------------------------------- /src/bin/coordinator.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/bin/coordinator.rs -------------------------------------------------------------------------------- /src/bin/mem_broker.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/bin/mem_broker.rs -------------------------------------------------------------------------------- /src/bin/server_proxy.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/bin/server_proxy.rs -------------------------------------------------------------------------------- /src/broker/epoch.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/broker/epoch.rs -------------------------------------------------------------------------------- /src/broker/external.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/broker/external.rs -------------------------------------------------------------------------------- /src/broker/migrate.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/broker/migrate.rs -------------------------------------------------------------------------------- /src/broker/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/broker/mod.rs -------------------------------------------------------------------------------- /src/broker/ordered_proxy.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/broker/ordered_proxy.rs -------------------------------------------------------------------------------- /src/broker/persistence.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/broker/persistence.rs -------------------------------------------------------------------------------- /src/broker/query.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/broker/query.rs -------------------------------------------------------------------------------- /src/broker/replication.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/broker/replication.rs -------------------------------------------------------------------------------- /src/broker/resource.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/broker/resource.rs -------------------------------------------------------------------------------- /src/broker/service.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/broker/service.rs -------------------------------------------------------------------------------- /src/broker/storage.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/broker/storage.rs -------------------------------------------------------------------------------- /src/broker/store.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/broker/store.rs -------------------------------------------------------------------------------- /src/broker/update.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/broker/update.rs -------------------------------------------------------------------------------- /src/broker/utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/broker/utils.rs -------------------------------------------------------------------------------- /src/common/atomic_lock.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/common/atomic_lock.rs -------------------------------------------------------------------------------- /src/common/batch.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/common/batch.rs -------------------------------------------------------------------------------- /src/common/biatomic.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/common/biatomic.rs -------------------------------------------------------------------------------- /src/common/cluster.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/common/cluster.rs -------------------------------------------------------------------------------- /src/common/config.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/common/config.rs -------------------------------------------------------------------------------- /src/common/future_group.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/common/future_group.rs -------------------------------------------------------------------------------- /src/common/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/common/mod.rs -------------------------------------------------------------------------------- /src/common/proto.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/common/proto.rs -------------------------------------------------------------------------------- /src/common/resp_execution.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/common/resp_execution.rs -------------------------------------------------------------------------------- /src/common/response.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/common/response.rs -------------------------------------------------------------------------------- /src/common/slot_lock.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/common/slot_lock.rs -------------------------------------------------------------------------------- /src/common/track.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/common/track.rs -------------------------------------------------------------------------------- /src/common/try_chunks.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/common/try_chunks.rs -------------------------------------------------------------------------------- /src/common/utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/common/utils.rs -------------------------------------------------------------------------------- /src/common/version.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/common/version.rs -------------------------------------------------------------------------------- /src/common/yield_now.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/common/yield_now.rs -------------------------------------------------------------------------------- /src/coordinator/api.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/coordinator/api.rs -------------------------------------------------------------------------------- /src/coordinator/broker.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/coordinator/broker.rs -------------------------------------------------------------------------------- /src/coordinator/core.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/coordinator/core.rs -------------------------------------------------------------------------------- /src/coordinator/detector.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/coordinator/detector.rs -------------------------------------------------------------------------------- /src/coordinator/http_mani_broker.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/coordinator/http_mani_broker.rs -------------------------------------------------------------------------------- /src/coordinator/http_meta_broker.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/coordinator/http_meta_broker.rs -------------------------------------------------------------------------------- /src/coordinator/migration.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/coordinator/migration.rs -------------------------------------------------------------------------------- /src/coordinator/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/coordinator/mod.rs -------------------------------------------------------------------------------- /src/coordinator/recover.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/coordinator/recover.rs -------------------------------------------------------------------------------- /src/coordinator/service.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/coordinator/service.rs -------------------------------------------------------------------------------- /src/coordinator/sync.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/coordinator/sync.rs -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/migration/manager.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/migration/manager.rs -------------------------------------------------------------------------------- /src/migration/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/migration/mod.rs -------------------------------------------------------------------------------- /src/migration/scan_migration.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/migration/scan_migration.rs -------------------------------------------------------------------------------- /src/migration/scan_task.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/migration/scan_task.rs -------------------------------------------------------------------------------- /src/migration/stats.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/migration/stats.rs -------------------------------------------------------------------------------- /src/migration/task.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/migration/task.rs -------------------------------------------------------------------------------- /src/protocol/client.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/protocol/client.rs -------------------------------------------------------------------------------- /src/protocol/codec.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/protocol/codec.rs -------------------------------------------------------------------------------- /src/protocol/decoder.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/protocol/decoder.rs -------------------------------------------------------------------------------- /src/protocol/encoder.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/protocol/encoder.rs -------------------------------------------------------------------------------- /src/protocol/fp.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/protocol/fp.rs -------------------------------------------------------------------------------- /src/protocol/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/protocol/mod.rs -------------------------------------------------------------------------------- /src/protocol/packet.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/protocol/packet.rs -------------------------------------------------------------------------------- /src/protocol/resp.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/protocol/resp.rs -------------------------------------------------------------------------------- /src/protocol/stateless.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/protocol/stateless.rs -------------------------------------------------------------------------------- /src/proxy/backend.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/proxy/backend.rs -------------------------------------------------------------------------------- /src/proxy/blocking.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/proxy/blocking.rs -------------------------------------------------------------------------------- /src/proxy/cluster.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/proxy/cluster.rs -------------------------------------------------------------------------------- /src/proxy/command.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/proxy/command.rs -------------------------------------------------------------------------------- /src/proxy/compress.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/proxy/compress.rs -------------------------------------------------------------------------------- /src/proxy/executor.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/proxy/executor.rs -------------------------------------------------------------------------------- /src/proxy/manager.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/proxy/manager.rs -------------------------------------------------------------------------------- /src/proxy/migration_backend.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/proxy/migration_backend.rs -------------------------------------------------------------------------------- /src/proxy/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/proxy/mod.rs -------------------------------------------------------------------------------- /src/proxy/reply.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/proxy/reply.rs -------------------------------------------------------------------------------- /src/proxy/sender.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/proxy/sender.rs -------------------------------------------------------------------------------- /src/proxy/service.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/proxy/service.rs -------------------------------------------------------------------------------- /src/proxy/session.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/proxy/session.rs -------------------------------------------------------------------------------- /src/proxy/slot.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/proxy/slot.rs -------------------------------------------------------------------------------- /src/proxy/slowlog.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/proxy/slowlog.rs -------------------------------------------------------------------------------- /src/proxy/table.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/proxy/table.rs -------------------------------------------------------------------------------- /src/replication/manager.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/replication/manager.rs -------------------------------------------------------------------------------- /src/replication/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/replication/mod.rs -------------------------------------------------------------------------------- /src/replication/redis_replicator.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/replication/redis_replicator.rs -------------------------------------------------------------------------------- /src/replication/replicator.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/src/replication/replicator.rs -------------------------------------------------------------------------------- /tests/connection.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/tests/connection.rs -------------------------------------------------------------------------------- /tests/proxy_manager_test.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/tests/proxy_manager_test.rs -------------------------------------------------------------------------------- /tests/redis_client.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/doyoubi/undermoon/HEAD/tests/redis_client.rs --------------------------------------------------------------------------------