These are chat archives for atomix/atomix
Transportthat can be shared among multiple
This is actually why we separated the transport. The idea is, you'd have to create a wrapper around
NettyTransport that allows multiple
Copycat instances to share the same
Transport and the same
Connections within them. When a server creates a new connection, if a connection already exists to the
Address the existing connection is returned. There's also nothing stopping you from creating literally separate
Transports, it would just require a separate port per partition.
But the other challenge with partitions in Raft systems that implement sessions like Copycat does is for each partition there's going to be some additional overhead for the session. This is the other problem that's challenging to solve. For each partition, in order to maintain linearizable semantics the client has to send period keep-alive requests. This limits the total number of partitions you can have since there's additional overhead for each partition. It also complicates how to handle session failures. It's entirely possible a session could be lost on one partition but not the other, in which case linearixability is lost on one partition and not the other and writes can complete on one partition but not the other.