From 2350137b938562ef0cc3c389c1a26c05f0850ef2 Mon Sep 17 00:00:00 2001 From: Joongi Kim Date: Sun, 18 Feb 2024 17:13:37 +0900 Subject: [PATCH] doc: Update README --- README.md | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2bcac97..7ad10f5 100644 --- a/README.md +++ b/README.md @@ -2,14 +2,37 @@ Redis over QUIC with improved connection management -## Building the proxy +## Rationale + +Curently, the official Redis client for PYthon, `redis-py` has many issues (ref: redis/redis-py#3008) regarding connection, retry, and timeout management. +Most problems are highlghy coupled to the API design, and it is hard to fix them without breaking the backward compatibility. +When it comes to HA configurations using sentinels, it is very difficult to distinguish the different stages of the connection setup process. + +The target of this project is to: + +* Offload the connection pool management to QUIC by adopting light-weight streams bound to local UNIX socket connections of the Redis server. + - Make Redis client connections volatile, transient, light-weight QUIC streams. + - Split the fault isolation domain of networking into the localhost of Redis server and the QUIC remote networking, instead of coupling them together as in the conventional TCP-based connection pooling. +* Achieve potentiall higher performance by eliminating handshake overheads when using secure TLS connections via public networks. +* Provide a working, ready-to-try client implementation for potential future QUIC adoption in the Redis project ([redis/redis#6301](https://github.com/redis/redis/issues/6301)). + + +## Development + +### Editable installation + +```sh +pip install -U -e '.[lint,typecheck,test,build,docs]' +``` + +### Building the reverse-proxy (QUIC to UNIX/TCP) ```sh cd src/qedis-proxy go build ``` -## Testing +### Testing **Terminal 1:** ```sh