1. 27
  1.  

  2. 4

    I feel if I wanted a job at Oxide, this is the cover letter I’d attach.

    1. 1

      There’s no Upstairs daemon or anything like that, it all stays in-process.

      How does this work? If the replication and everything is managed by the application, what happens if multiple application instances write to the same data concurrently? How do they coordinate?

      1. 4

        Considering that the use-case for Crucible in oxide is VM backing storage, which would normally have only one writing instance, that isn’t considered a problem that needs to be solved by them.

        1. 9

          I have been pretty involved in the design of Crucible, and you’re totally correct. We’ve been able to avoid a whole lot of distributed systems issues by having just one client, the hypervisor to which the virtual disk is attached. We’ve been able to focus mostly on the crash safety properties of the storage format without needing a complex consensus or coordination strategy.