"Consistency without consensus in production systems" by Peter Bourgon

Поділитися
Вставка
  • Опубліковано 16 вер 2024
  • When software developers think of distributed systems, they typically think in terms of consistency via consensus. That is, enabling a heterogeneous group of systems to agree on facts, while remaining robust in the face of failure. But, as any distributed systems engineer can attest, it's harder than it sounds. Failure happens in myriad, byzantine ways, and failure modes interact unpredictably. Reliable distributed systems need more than competent engineering: they need a robust theoretical foundation.
    This talk describes the state of the art in consensus-free consistency: the CALM theorem, "ACID 2.0" semantics, and CRDTs. Roshi-a production CRDT system built at SoundCloud to serve high-volume time-series data-serves as an example. The goal is to provide engineers in industry with a set of powerful building blocks, which will enable them build and improve their own distributed data systems.
    Peter Bourgon
    SoundCloud
    @peterbourgon
    Peter Bourgon is a distributed system engineer who has seen things. He works at SoundCloud, building and improving their data systems and infrastructure.

КОМЕНТАРІ • 11

  • @rangelspasov
    @rangelspasov 10 років тому +11

    Great talk for anyone interested in CAP, ACID, CRDTs, and distributed databases/systems in general.

  • @pengdu7751
    @pengdu7751 2 роки тому +1

    excellent talk

  • @gabrielgiussi4422
    @gabrielgiussi4422 2 роки тому +3

    My two cents, CRDTs give you causal consistency which is much more powerful than eventual consistency.

  • @Manish10napstar
    @Manish10napstar 2 роки тому

    While a read query in the proposed system is returning from the single pool, and listeners doing read repair in the background, won't the system return inconsistent data, as it is returning the value read from the single pool ?

  • @KacperPerschke
    @KacperPerschke 3 роки тому +1

    I'm just referring to corba.
    From what I understand, Plan 9 Filesystem Protocol ( en.wikipedia.org/wiki/9P_(protocol) ) was already, promised less and had working impelmentation. Rob Pike still hopes for a successful follow-up ( ua-cam.com/video/ENLWEfi0Tkg/v-deo.html ).

  • @pm71241
    @pm71241 9 років тому +2

    regarding "ACID 2.0". The argument is correct but the slides are flawed.
    It's not because 1U1=1 that it's Idempotent.
    It's because 1U1U1=1 too.

    • @zantrua
      @zantrua 8 років тому +6

      +Peter Mogensen 1U1=1 => (1U1)U1=1

    • @ruslanfadeev3113
      @ruslanfadeev3113 5 років тому

      @@zantrua 1U2U2={1,2} is also necessary for idempotence, but does not follow from 1U2={1,2}

    • @lootic
      @lootic 4 роки тому

      @@ruslanfadeev3113 It does follow from the rule stated though:
      2U2=2
      1U2={1,2}
      1U(2U2)={1,2} (replacement 2=2U2)

    • @carlosmiguelsoto3853
      @carlosmiguelsoto3853 Рік тому +1

      An element e is idempotent iff e*e = e (for some operation *). In this case you only need 1 U 1 = 1 for it to be idempotent. You're thinking of the function f : Set -> Set, f(s) = s U 1. To prove that f is idempotent you need to check that f o f = f, which is the same as f(f(s)) = f(s) for all s, which is the same as s U 1 U 1 = s U 1, which is what you're saying.

  • @houcebr
    @houcebr 5 років тому +1

    Interesting like any talk given by Peter
    A question (that won’t never be answered here) as a user in my stream how do I get the aggregated data for all artists across all partitions ? And how do they deal with pagination and so on ?