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

The Citus Data Scale Out Story | PostgresOpen SV 2018 | Ozgun Erdogan, Marco Slot

Citus Data
September 06, 2018

The Citus Data Scale Out Story | PostgresOpen SV 2018 | Ozgun Erdogan, Marco Slot

Citus Data

September 06, 2018
Tweet

More Decks by Citus Data

Other Decks in Technology

Transcript

  1. PostgresOpen SV 2018 Keynote | Ozgun Erdogan & Marco Slot | Citus Data
    The Citus Data
    Scale Out Story
    Ozgun Erdogan & Marco Slot
    PostgresOpen SV | Sep 06, 2018 | San Francisco

    View Slide

  2. PostgresOpen SV 2018 Keynote | Ozgun Erdogan & Marco Slot | Citus Data
    2
    The story
    before the
    story…
    Citus Data Co-Founders, Left to Right
    Ozgun Erdogan, Sumedh Pathak, Umur Cubukcu
    Photo credit: Willy Johnson 2017

    View Slide

  3. PostgresOpen SV 2018 Keynote | Ozgun Erdogan & Marco Slot | Citus Data
    Our early
    days at
    Amazon
    spent working on
    distributed systems
    3

    View Slide

  4. PostgresOpen SV 2018 Keynote | Ozgun Erdogan & Marco Slot | Citus Data
    Each service
    needs to
    elastically scale
    Scaling compute is easy
    Scaling data is hard
    NoSQL
    ?

    View Slide

  5. PostgresOpen SV 2018 Keynote | Ozgun Erdogan & Marco Slot | Citus Data
    Hidden costs
    of NoSQL
    What if a
    relational
    database could
    scale out
    ?
    TRANSACTIONS
    JOINS
    DATABASE CONSTRAINTS
    Re-architect application (more code) to
    provide missing database functionality

    View Slide

  6. PostgresOpen SV 2018 Keynote | Ozgun Erdogan & Marco Slot | Citus Data
    What better
    way to scale a
    relational
    database
    than to extend the
    world’s best database?

    View Slide

  7. PostgresOpen SV 2018 Keynote | Ozgun Erdogan & Marco Slot | Citus Data
    7
    Citus Scales Out PostgreSQL
    COORDINATOR
    NODE
    Table metadata
    SELECT FROM table_1001
    SELECT FROM table_1003
    SELECT FROM table_1002
    SELECT FROM table_1004
    WORKER NODE 1
    Table_1001
    Table_1003
    WORKER NODE 2
    Table_1002
    Table_1004
    WORKER NODE ‘N’
    Each node PostgreSQL instance
    with Citus installed
    Replication not shown in diagram






    SELECT
    create_distributed_table(‘table’,
    ‘device_id’);

    View Slide

  8. PostgresOpen SV 2018 Keynote | Ozgun Erdogan & Marco Slot | Citus Data
    Reasons to love Citus—let’s count the ways
    8

    View Slide

  9. PostgresOpen SV 2018 Keynote | Ozgun Erdogan & Marco Slot | Citus Data
    9
    Easy to scale out a Citus database cluster

    View Slide

  10. PostgresOpen SV 2018 Keynote | Ozgun Erdogan & Marco Slot | Citus Data
    • Citus parallelizes query across cluster of machines.
    • Citus comes with 3 distributed executors.
    Query Parallelization

    View Slide

  11. PostgresOpen SV 2018 Keynote | Ozgun Erdogan & Marco Slot | Citus Data
    • Distributed transactions could lead to distributed
    deadlocks.
    • To avoid deadlocks, we introduced a distributed
    deadlock detector.
    Distributed transactions in Citus

    View Slide

  12. PostgresOpen SV 2018 Keynote | Ozgun Erdogan & Marco Slot | Citus Data
    One important
    gap remains

    View Slide

  13. PostgresOpen SV 2018 Keynote | Ozgun Erdogan & Marco Slot | Citus Data
    13
    Citus Architecture
    COORDINATOR
    NODE
    Table metadata
    SELECT FROM table_1001
    SELECT FROM table_1003
    SELECT FROM table_1002
    SELECT FROM table_1004
    WORKER NODE 1
    Table_1001
    Table_1003
    WORKER NODE 2
    Table_1002
    Table_1004
    WORKER NODE ‘N’
    Each node PostgreSQL instance
    with Citus installed
    Replication not shown in diagram






    SELECT
    create_distributed_table(‘table’,
    ‘device_id’);

    View Slide

  14. PostgresOpen SV 2018 Keynote | Ozgun Erdogan & Marco Slot | Citus Data
    1.High write throughput
    2.Query planning times for large deployments
    3.High Availability (HA) for each node
    What if you could talk to any node?

    View Slide

  15. PostgresOpen SV 2018 Keynote | Ozgun Erdogan & Marco Slot | Citus Data
    • Citus coordinator routes queries to worker nodes.
    • For workloads that require high write throughput
    (10B+ writes per day), coordinator could become a
    bottleneck.
    High Write Throughput

    View Slide

  16. PostgresOpen SV 2018 Keynote | Ozgun Erdogan & Marco Slot | Citus Data
    • The coordinator plans analytical queries for
    distributed execution.
    Query Planning in Large Deployments
    >650K ½-1
    shards seconds concurrency
    L

    View Slide

  17. PostgresOpen SV 2018 Keynote | Ozgun Erdogan & Marco Slot | Citus Data
    • When coordinator fails, your cluster can become
    unavailable up to 1 minute. That’s a long time.
    • When any node can coordinate, you get higher
    availability for on a per-shard basis.
    High Availability (HA) for each shard

    View Slide

  18. PostgresOpen SV 2018 Keynote | Ozgun Erdogan & Marco Slot | Citus Data
    • What if better HA were possible?
    • What if higher write throughput were possible?
    • What would such a solution’s performance look
    like?
    What if we had such a solution?

    View Slide

  19. PostgresOpen SV 2018 Keynote | Ozgun Erdogan & Marco Slot | Citus Data
    0
    50,000
    100,000
    150,000
    200,000
    250,000
    4 8 12
    # nodes
    0
    20
    40
    60
    80
    100
    120
    4 8 12
    # nodes
    Transaction performance (TPS)
    Queries per hour (QPH)
    19
    Performance for prominent service today
    Transaction (OLTP) speed Analytics (OLAP) speed
    Prominent
    Postgres
    service
    Prominent
    Postgres
    service

    View Slide

  20. PostgresOpen SV 2018 Keynote | Ozgun Erdogan & Marco Slot | Citus Data
    0
    50,000
    100,000
    150,000
    200,000
    250,000
    4 8 12
    Transaction (OLTP) speed
    # nodes
    0
    20
    40
    60
    80
    100
    120
    4 8 12
    # nodes
    Analytics (OLAP) speed
    Queries per hour (QPH)
    5x
    faster
    70x
    faster
    Citus
    Prominent
    Postgres
    service
    20
    Higher Performance with Citus MX
    Citus
    Prominent
    Postgres
    service
    Transaction performance (TPS)

    View Slide

  21. PostgresOpen SV 2018 Keynote | Ozgun Erdogan & Marco Slot | Citus Data
    Introducing
    Citus MX

    View Slide

  22. PostgresOpen SV 2018 Keynote | Ozgun Erdogan & Marco Slot | Citus Data
    Thank You.
    [email protected]
    [email protected]
    @citusdata
    Ozgun Erdogan, CTO & Co-Founder
    Marco Slot, Principal Engineer
    www.citusdata.com

    View Slide

  23. PostgresOpen SV 2018 Keynote | Ozgun Erdogan & Marco Slot | Citus Data
    What if super
    HA were
    possible?
    What if high
    write
    throughput
    were possible?

    View Slide