3 ms·
Does IRC predates distributed state machines? Why can't the servers sync up the chat via Paxos or Raft?
by melony 5y ago
Does IRC predates distributed state machines? Why can't the servers sync up the chat via Paxos or Raft?
- sterlind 5y agohard to do Paxos over large geographical distances efficiently, but... it's IRC, so.. I just assume it was from an earlier internet where distributed systems weren't as well understood. I don't think it necessarily predates Paxos but it definitely predates Paxos being a household name.
- X6S1x6Okd1st 5y agopaxos was first created 1989, but not popularized for a long while after: https://en.m.wikipedia.org/wiki/Paxos_(computer_science) https://en.m.wikipedia.org/wiki/Paxos_(computer_science) irc 1988: https://en.m.wikipedia.org/wiki/Internet_Relay_Chat https://en.m.wikipedia.org/wiki/Internet_Relay_Chat Earliest reference for raft I can find is 2013.
- manquer 5y agoChat is not that complex as other distributed applications you probably don't need Raft.Both Paxos and Raft are very complex algorithms to implement. A CRDT based append only implementation is probably more than enough?. Data is never modified only added/removed in typical chat workflows. Reading discourd engineering blog over the years it looks like scaling the pub/sub for the consumers in large channels is lot harder than DB/store itself being distributed.
- giantrobot 5y agoDistributing state wasn't the goal on IRC, only relaying messages. If you miss a message you miss a message. You can use client-side tools (bots, bouncers, etc) to record state but the protocol itself doesn't care.
- jandrese 5y agoIRC is sized to run on 80s hardware. Storing messages wasn’t possible because few nodes would have enough memory to store more than a handful of messages. The links were so slow that spitting over a backlog on reconnect could stall the connection for a non-trivial amount of time.
- duskwuff 5y agoImplementing Paxos would mean that stateful operations (like connecting to the server, joining a channel, or changing modes) become impossible on a server, or a group of servers, that have lost quorum.