From 3a493ebc5e1538b695a12c423c63dcc32af9428a Mon Sep 17 00:00:00 2001 From: Lucas Kent Date: Thu, 28 Nov 2024 11:44:02 +1100 Subject: [PATCH] add end-to-end docs --- docs/src/dev-docs/end-to-end-overview.md | 271 ++++++++++++++++++++++ docs/src/dev-docs/end-to-end-overview.png | Bin 0 -> 124312 bytes 2 files changed, 271 insertions(+) create mode 100644 docs/src/dev-docs/end-to-end-overview.md create mode 100644 docs/src/dev-docs/end-to-end-overview.png diff --git a/docs/src/dev-docs/end-to-end-overview.md b/docs/src/dev-docs/end-to-end-overview.md new file mode 100644 index 000000000..067d3d461 --- /dev/null +++ b/docs/src/dev-docs/end-to-end-overview.md @@ -0,0 +1,271 @@ +# End to end overview + +This document will use valkey as an example for explaining the end to end flow of messages through shotover. +The same flow within shotover is used for all protocols, so this document should still be useful if you are working with another protocol. + +The general flow of messages though shotover looks like: + +![ +Client -> ValkeyCodec -> ValkeySource -> Some transform -> Another transform -> ValkeySinkCluster -> ValkeyCodec -> Valkey +](end-to-end-overview.png) + +## The client + +A user sends a valkey command through their client: + +1. The user calls: `client.set("foo", "bar")`. +2. The client translates the `set(..)` arguments into a RESP request that looks like: ["SET", "foo", "bar"] +3. A hash is taken of the key "foo" which is used to choose which shotover node to send the request to. +4. The RESP request is converted into the RESP wire format, which is purely ascii except for user data: + +```text +*3 +$3 +SET +$3 +foo +$3 +bar +``` + +`*3` means an array with 3 elements. +The first element is `$3\nSET`, which means a string of length 3 containing `SET`. +The second and third arguments are also strings of length 3: `$3\nfoo` and `$3\nbar` + +5. The bytes of the message are sent over a TCP connection to the chosen shotover node. In this example, no such connection exists so a new one is made. + +## Shotover accepts a new connection + +When [ValkeySource](https://github.com/shotover/shotover-proxy/blob/de0d1a3fafb92cf1875dd9ca79b277faf3cb3e77/shotover/src/sources/valkey.rs#L54) is created during shotover startup, it creates a `TcpCodecListener` and then calls [TcpCodecListener::run](https://github.com/shotover/shotover-proxy/blob/de0d1a3fafb92cf1875dd9ca79b277faf3cb3e77/shotover/src/server.rs#L160) which listens in a background task for incoming TCP connections on the sources configured port. +`TcpCodecListener` accepts a new connection from the valkey client and constructs and runs a `Handler` type, which manages the connection. +The Handler type creates: + +* read/write tasks around the TCP connection. + * A `ValkeyEncoder` and `ValkeyDecoder` pair is created from [ValkeyCodecBuilder](https://github.com/shotover/shotover-proxy/blob/de0d1a3fafb92cf1875dd9ca79b277faf3cb3e77/shotover/src/server.rs#L449). + * The `ValkeyEncoder` is given to the [write task](https://github.com/shotover/shotover-proxy/blob/de0d1a3fafb92cf1875dd9ca79b277faf3cb3e77/shotover/src/server.rs#L517) + * The `ValkeyDecoder` is given to the [read task](https://github.com/shotover/shotover-proxy/blob/de0d1a3fafb92cf1875dd9ca79b277faf3cb3e77/shotover/src/server.rs#L467) +* a new [transform chain](https://github.com/shotover/shotover-proxy/blob/de0d1a3fafb92cf1875dd9ca79b277faf3cb3e77/shotover/src/server.rs#L208) instance to handle the requests coming in from this connection. + * This transform chain instance handles a single connection passing from the client to valkey and isolates it from other connections. + +The handler type then [continues to run](https://github.com/shotover/shotover-proxy/blob/de0d1a3fafb92cf1875dd9ca79b277faf3cb3e77/shotover/src/server.rs#L677), routing requests and responses between the transform chain and the client connection read/write tasks. + +## ValkeyDecoder + +The `tokio_util` crate provides an [Encoder](https://docs.rs/tokio-util/latest/tokio_util/codec/trait.Encoder.html) trait and a [Decoder](https://docs.rs/tokio-util/latest/tokio_util/codec/trait.Decoder.html) trait. + +Through this interface: + +* we provide the logic for how to encode and decode messages into and out of a buffer of bytes by implementing the traits. +* tokio provides the logic for reading and writing the bytes from the actual TCP connection via the [FramedWrite](https://docs.rs/tokio-util/latest/tokio_util/codec/struct.FramedWrite.html) and [FramedRead](https://docs.rs/tokio-util/latest/tokio_util/codec/struct.FramedRead.html) types. + +Since TCP itself provides a stream of bytes without any application level framing [^1] it is up to the database protocol itself to implement framing on top of TCP. +So the logic of a `Decoder` implementation must gracefully handle incomplete messages. Leaving any half received messages in the buffer. + +Protocols like kafka and cassandra achieve framing by including a message length in bytes in the header. This is great for shotover since it means we can avoid parsing the entire message when its not needed. +However Valkey does not have a header so we always need to parse the entire message to find out where it ends. + +The [ValkeyDecoder](https://github.com/shotover/shotover-proxy/blob/d7547741d8b10c5f64f133e1145bf843f7fb57ec/shotover/src/codec/valkey.rs#L74) is an example of a `Decoder` implementation. + +Lets step through the `ValkeyDecoder` implementation: + +[^1]: Framing is how a protocol defines where individual messages begin and end. + +### Reading a message + +The first thing `ValkeyDecoder::decode` does is attempt to parse a valkey message from the beginning of the bytes. +This is done by calling [decode_bytes_mut](https://docs.rs/redis-protocol/latest/redis_protocol/resp2/decode/fn.decode_bytes_mut.html) from the `redis-protocol` crate. +There are a few possible return values: + +* Failure to parse because the message is not fully received yet - in this case we return `None` so that the `FramedRead` will call us again when more bytes have been received. +* Any other kind of parse error - we bubble up the error, eventually resulting in the connection being terminated. +* a message is successfully returned - we continue on and pass the message to the next stage. + +In this case the parsed message forms a structure of: + +```rust +ValkeyFrame::Array(vec![ + ValkeyFrame::BulkString("SET"), + ValkeyFrame::BulkString("foo"), + ValkeyFrame::BulkString("bar"), +]) +``` + +### Constructing a `Message` + +All messages in shotover are stored in a [Message](https://docs.rs/shotover/latest/shotover/message/struct.Message.html) type which is passed through each transform. +`Message` abstracts over all the different protocols supported by shotover. + +The `ValkeyDecoder` constructs a message by calling `Message::from_bytes_and_frame_at_instant`. +We pass in the raw bytes of the message and the parsed frame of the message, as well as a timestamp which is used purely for metrics. +Protocols with better framing mechanisms will use a different constructor to avoid parsing the whole request unless its really needed. + +When the Message is created a new ID is generated and stored in the Message. This ID is a randomly generated 128bit integer used by transforms to match responses with their corresponding requests. This value is meaningful only within shotover and is not part of the redis protocol. +Lets say in this example our message is assigned the ID `0xd12ac2704d19e53ef3fea94b4885c950`. + +`ValkeyDecoder::decode` then `return`s the `Message` to the caller: `tokio_util` `FramedRead`. + +## codec to transform glue + +The `Message` then goes through a few steps before it actually reaches a transform. + +1. The [read task created by the Handler](https://github.com/shotover/shotover-proxy/blob/de0d1a3fafb92cf1875dd9ca79b277faf3cb3e77/shotover/src/server.rs#L468) + 1. The message is read from the `FramedRead` + 2. The message is sent through a [tokio channel](https://docs.rs/tokio/latest/tokio/sync/mpsc/struct.UnboundedSender.html) + * This logic is specifically run in a separate task to enable decoding of incoming requests to run in parallel of any messages currently being process by transforms (calling tokio async code will execute on the same core unless a task is used) +2. The [Handler::run_loop](https://github.com/shotover/shotover-proxy/blob/de0d1a3fafb92cf1875dd9ca79b277faf3cb3e77/shotover/src/server.rs#L677) method loops for the lifetime of the incoming connection and: + 1. Listens for requests from the read task over the channel + 2. If there are any requests, all pending requests are collected into a batch (`Vec`) In our case the client is sending requests serially, waiting for responses each time. So this batch will contain only a single request. + 3. Creates a [ChainState](https://github.com/shotover/shotover-proxy/blob/4eed01edf42e7a9adca7016854dcbb6f08a25f68/shotover/src/transforms/mod.rs#L149). `ChainState` contains all the chain level state accessed by transforms. This includes things like the batch of requests, the address the client connected to, a flag to allow transforms to force close the connection. + Transforms are free to alter the `ChainState` and the next transform in the chain will receive the same altered `ChainState`. + 4. Calls [TransformChain::process_request](https://github.com/shotover/shotover-proxy/blob/de0d1a3fafb92cf1875dd9ca79b277faf3cb3e77/shotover/src/transforms/chain.rs#L162) passing it the `ChainState`. +3. `TransformChain::process_request`: + 1. Inserts the list of transforms in the chain into `ChainState` + 2. Calls `ChainState::call_next_transform` +4. `ChainState::call_next_transform`: + 1. Pops the first transform from the list of transforms. + 2. Calls the transforms `transform` method, beginning execution of the transform. + +## Some Transform + +The first transform in the chain begins executing. +Most transforms look something like this: + +```rust + async fn transform<'shorter, 'longer: 'shorter>( + &mut self, + chain_state: &'shorter mut ChainState<'longer>, + ) -> Result { + // iterate over all requests + for request in &mut chain_state.requests { + // each request is of type Message + if let Some(Frame::Valkey(frame)) = request.frame() { + // Calling `frame` on the request returns the parsed frame of the message. + // This assertion is silly, but would pass in the example request we are working through + assert_eq!( + frame, + ValkeyFrame::Array(vec![ + ValkeyFrame::BulkString(Bytes::from_static("SET")), + ValkeyFrame::BulkString(Bytes::from_static("foo")), + ValkeyFrame::BulkString(Bytes::from_static("bar")), + ]) + ) + + // At this point the transform is able to read and or rewrite the request as it pleases. + // But for this example we will assume that no rewriting occurs. + } + } + + let mut responses = chain_state.call_next_transform().await?; + + for response in responses.iter_mut() { + if let Some(Frame::Valkey(frame)) = request.frame() { + // do something with the responses + } + } + + Ok(()) + } +``` + +At the point where `call_next_transform` is called, the next transform in the chain is popped from the list in `ChainState` and executed. +Execution of this transform asynchronously waits until the request is completely sent. + +In the case of `RedisSinkCluster` (the sink transform used in this example) `call_next_transform` will also block until a response for each request has been received. But that is legacy behavior that should be fixed in the future. + +## Another Transform + +Another transform is called. +This is the same as the previous section. +However this time it pops the final transform from the list of transforms and executes it, in this scenario the final transform is `ValkeySinkCluster`. + +## ValkeySinkCluster + +The [ValkeySinkCluster](https://github.com/shotover/shotover-proxy/blob/de0d1a3fafb92cf1875dd9ca79b277faf3cb3e77/shotover/src/transforms/valkey/sink_cluster.rs#L1022) transform is quite complex so I will only describe it at a high level and assume it is configured in cluster hiding mode: + +1. For each request in `ChainState` + 1. Determine how to route the request via [RoutingInfo::for_command_frame](https://github.com/shotover/shotover-proxy/blob/de0d1a3fafb92cf1875dd9ca79b277faf3cb3e77/shotover/src/transforms/valkey/sink_cluster.rs#L726), in this case, since we are routing a `set` with key of `foo` we get `RoutingInfo::Slot(hash_of(foo))`. + 2. [Lookup the computed slot value](https://github.com/shotover/shotover-proxy/blob/de0d1a3fafb92cf1875dd9ca79b277faf3cb3e77/shotover/src/transforms/valkey/sink_cluster.rs#L239) against the list of redis nodes to find which redis node should handle this slot. + 3. Send the request to the redis node. A new outgoing connection is created if it does not exist yet. + +Other functionality of ValkeySinkCluster not listed above includes: + +* fetching and managing the metadata required for routing requests. +* working in either cluster hiding or handling mode according to the configuration. + +## SinkConnection + +The standard way to form an outgoing connection is with [SinkConnection](https://github.com/shotover/shotover-proxy/blob/33f49fc1976df84ed538c9f58dd51a160b642968/shotover/src/connection.rs) +However, out of the 6 sink transforms that shotover has currently, `ValkeySinkCluster` is the only sink transform not to use `SinkConnection`. +This is only for legacy reasons, so to give a better overview of shotover, I'll be pretending that `ValkeySinkCluster` does actually use `SinkConnection`. + +The `SinkConnection` type contains a single TCP connection and allows sending and receiving shotover `Message`s with it. +When the `SinkConnection` is created it runs [spawn_read_write_tasks](https://github.com/shotover/shotover-proxy/blob/33f49fc1976df84ed538c9f58dd51a160b642968/shotover/src/connection.rs#L253) which creates the tokio tasks for reading and writing to the outgoing connection. + +In our scenario the transform called [SinkConnection::send](https://github.com/shotover/shotover-proxy/blob/33f49fc1976df84ed538c9f58dd51a160b642968/shotover/src/connection.rs#L110) which sends a batch of requests to the writer task over a channel. + +The writer task then writes the message to `FramedWrite` which encodes the message to the TCP connection via `ValkeySinkCluster`. + +## ValkeyEncoder + +Earlier we talked about the `Encoder` and `Decoder` traits. +The [ValkeyEncoder](https://github.com/shotover/shotover-proxy/blob/33f49fc1976df84ed538c9f58dd51a160b642968/shotover/src/codec/valkey.rs#L67) is an example of an `Encoder` implementation. + +The logic for `ValkeyEncoder::encode` looks like: + +1. The `into_encodable` method is called on each request. This method returns the most efficient way to encode the request. + * If the message is marked as modified by the transforms, the parsed redis frame is returned, the encoder must reencode the bytes from the frame. + * If the message is not marked as modified, the raw bytes are returned and the encoder can simply write the raw bytes to the socket which is much faster. + +In our example the request is unmodified so we take the fast path by directly writing the bytes. + +You will recall that the original message was: + +```text +*3 +$3 +SET +$3 +foo +$3 +bar +``` + +That message is what is written out over TCP. + +Additionally sink `ValkeyEncoder` sends a message to its sink `ValkeyDecoder` counterpart. +`Encoders` and `Decoders` are always created in pairs allowing them to be assigned a shared channel at creation. This allows them to share state which is a requirement for working around stateful protocols. +The message sent to the `ValkeyEncoder` is a [RequestInfo](https://github.com/shotover/shotover-proxy/blob/33f49fc1976df84ed538c9f58dd51a160b642968/shotover/src/codec/valkey.rs#L52) which tells the decoder: + +* the request ID of the next response it will receive. + * in our case the ID was originally set to `0xd12ac2704d19e53ef3fea94b4885c950` +* Whether the last request was a request to enter pubsub mode. + * In our case it is a simple `SET` request, so we are not entering pubsub mode. + +## Valkey Instance + +The request is received by Valkey. + +Valkey modifies its internal value of `foo` to contain `bar` and then sends back a success response. +The success response is encoded in RESP as: + +```text ++OK +``` + +## ValkeyDecoder + +Now the `ValkeyDecoder` is used again, but this time its for decoding a response instead of a request. Parsing a response has a few extra complexities that we don't have to deal with when parsing a request. + +The response is parsed as `ValkeyFrame::SimpleString("+OK")` + +### pubsub + +Due to various oddities of different protocols we often need to add extra logic to an `Encoder` or `Decoder`. +In the case of Valkey, we need some special logic to handle pubsub messages. +Usually shotover operates + +## SinkConnection + +## ValkeySinkCluster + +ValkeySinkCluster then requests the diff --git a/docs/src/dev-docs/end-to-end-overview.png b/docs/src/dev-docs/end-to-end-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..6924aa5fceb777a2fd0b0e1e6156f49d4a7280cb GIT binary patch literal 124312 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%0AO2#E|^}#hANYw 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