4 ms·
> via round robin DNS (meaning that when people resolve the DNS it gives them a random server from the set of 20 to connect to) Most of the times, it's not sim
by mvanbaak 5y ago
> via round robin DNS (meaning that when people resolve the DNS it gives them a random server from the set of 20 to connect to)
Most of the times, it's not simple round-robin, but also geo-based. This means clients will get ip addresses of the servers closest to them.
- magila 5y agoMy experience with Freenode/Libra Chat is that they either don't implement geo DNS or don't do a very good job of it. I'm on the US west coast and lookups to irc.libera.chat often return servers in Europe. Edit: Double checking Libra Chat's website I see that they have added regional hostnames so I guess that's their solution.
- pvtmert 5y agoif they're using aws route53, your isp needs to support edns. otherwise, your netblock might have been falsely advertised in the dns provider's geoip database. (eg. maxmind)
- pushrax 5y agoThey're using Cloudflare. When I resolve them from the east coast, I got a San Francisco server once and a server in Budapest once. They have a server in Toronto, Ashburn, Montreal, and other places that are closer. I know geodns works here since I use it for some of my own deployments.
- melony 5y agoDoes 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.