The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,860 other subscribers

How Discord Supercharges Network Disks for Extreme Low Latency

Posted by jpluimers on 2024/12/27

A while ago there was an interesting point of using tiered md to both obtain low read latency and write safety on the Google Cloud Platform in [Wayback/Archive] How Discord Supercharges Network Disks for Extreme Low Latency

It is an interesting approach to universally tune performance within the sketched boundaries, but raised some questions as their aim was improving ScyllaDB performance and Unix-like platforms on Google Cloud Platform can supports ZFS.

In this case Discord wanted to improve their ScyllaDB that was already read/written from GCP Persistent Storage and used tiered md to improve that.

Isotopp asked himself why ScyllaDB replication had not been used and I invited Discord to comment on that:

  1. [Wayback/Archive] Kris on Twitter: “I don’t know ⁦@ScyllaDB⁩, and I have questions. Does the database not have an internal replication mechanism to handle node failure? If it does, why not use that and do this RAID stacking instead?”
  2. [Wayback/Archive] Kris on Twitter: “Their documentation says they do consistent hashing with internal shard replication. I get Discord’s RAID dance even less. What is the performance impact of a disk loss in ScyllaDB for n=3, read cl 1 and write cl 3? Why even bother with remote storage? docs.scylladb.com/stable/architecture/architecture-fault-tolerance.html
  3. [Wayback/Archive] Jeroen Wiert Pluimers on Twitter: “@isotopp I wonder about that too. Care to comment on that @discord?”

Bobby wondered about ZFS and indeed that is somewhere on the wish list already and kind of possible when you throw iSCSI in the middle:

  1. [Wayback/Archive] bobby on Twitter: “@tqbf crazy how this isn’t even zfs” / Twitter
  2. [Wayback/Archive] Allan Jude on Twitter: “@palm_beach_m @tqbf We have discussed this for ZFS. With the new vdev properties feature, it makes it pretty easy to configure the “hint” about which one to read. Even so far as for a metro-net setup, to say “if you are host A, use side A, host B use side B””

I liked the article and questions as it taught me a lot of things I was only partially aware of.

Via:

--jeroen

PS: (evening of 20241227) – Kris added two more comments in [Wayback/Archive] Kris: “Conclusion In retrospect, disk…” – Infosec Exchange

  1. Conclusion
    In retrospect, disk latency should have been an obvious concern early on in our database deployments. The world of cloud computing causes so many systems to behave in ways that are nothing like their physical data center counterparts.

    Manically giggling, exiting stage left

  2. Below a certain database query rate, disk latency isn’t noticeable

    That is actually nonsense. It is not the query rate that kills you, it’s the wait.

    You have wait when waiting for data to be read from disk, and you have that at any query rate.

    The critical metric is actually Working Set Size, which must be smaller than available memory. You can have data even in S3, if you have enough cache in front so that queries never read S3 (+ a cache warmup procedure on start).

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.