Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Jepsen Introduction LT

Jepsen Introduction LT

Jepsenの紹介LT

UENISHI Kota

May 13, 2015
Tweet

More Decks by UENISHI Kota

Other Decks in Technology

Transcript

  1. 2015/5/13 Dwango Internal Erlang/OTP study group, LT
    Kota UENISHI / @kuenishi
    JEPSEN “CALL ME MAYBE”

    View Slide

  2. “Call Me Maybe”
    WHAT EVEN IS JEPSEN?

    View Slide

  3. Who plays a song “Call Me Maybe”
    A NAME OF A SINGER

    View Slide

  4. That can test many system with replication
    ALSO,
    A PARTITION TOLERANCE
    TEST TOOL

    View Slide

  5. IT HAS TESTED …
    • PostgreSQL
    • Redis (Sentinel, redux)
    • MongoDB
    • Riak
    • ZooKeeper
    • NuoDB
    • Kafka
    • Cassandra
    • RabbitMQ
    • etcd and Consul
    • Elasticsearch
    • Aerospike (New!)

    View Slide

  6. AND FOUND DATA LOSS
    ISSUE OF …
    • Redis (Sentinel, redux)
    • MongoDB
    • Kafka
    • Cassandra
    • RabbitMQ
    • etcd
    • Elasticsearch
    • Aerospike

    View Slide

  7. BOXES AND LINES
    n1
    jepsen
    n2 n3
    n4 n5

    View Slide

  8. is implemented in Clojure
    TECHNICALLY JEPSEN ..
    • Emulates network partition
    • By cutting network between virtual machines
    • While Jepsen concurrently continues writing data,
    • And finally verifies any writes are not lost

    View Slide

  9. WHY PARTITION TOLERANCE
    IS IMPORTANT AND
    DIFFICULT?

    View Slide

  10. • In the beginning was the failure and asynchrony
    • Replication and Consensus next
    • Failover and recovery / Membership Change
    mess things
    • Implementation and runtime is complexed

    View Slide

  11. • for x=1….n
    • list = get(x)
    • write(x, [a, list])
    • get(x)
    • => [1…n] ͱͳ͍ͬͯΕ͹ linearizable

    View Slide

  12. REFERENCES
    • C.R.Jepsen “Call Me Maybe”
    • Jepsen blog post series
    • github.com/aphyr/jepsen
    • Kyle Kingsbury: @aphyr (sometimes NSFW)
    • “The Network Is Reliable”
    • https://queue.acm.org/detail.cfm?id=2655736

    View Slide