SCYLLA: NoSQL at Ludicrous Speed. 主讲人 :ScyllaDB 软件工程师贺俊

Similar documents
Building the Real-Time Big Data Database: Seven Design Principles behind Scylla

Scylla Open Source 3.0

Using the SDACK Architecture to Build a Big Data Product. Yu-hsin Yeh (Evans Ye) Apache Big Data NA 2016 Vancouver

EVCache: Lowering Costs for a Low Latency Cache with RocksDB. Scott Mansfield Vu Nguyen EVCache

NoSQL BENCHMARKING AND TUNING. Nachiket Kate Santosh Kangane Ankit Lakhotia Persistent Systems Ltd. Pune, India

Applying Control Theory to Create a Self-Optimizing Database

Accelerate MySQL for Demanding OLAP and OLTP Use Cases with Apache Ignite. Peter Zaitsev, Denis Magda Santa Clara, California April 25th, 2017

Crescando: Predictable Performance for Unpredictable Workloads

CS377P Programming for Performance Operating System Performance

Flash Storage Complementing a Data Lake for Real-Time Insight

Samsung Z-SSD and ScyllaDB: Delivering Low Latency and Multi-Terabyte Capacity in a Persistent Database

DataStax Enterprise 4.0 In-Memory Option A look at performance, use cases, and anti-patterns. White Paper

JVM Performance Study Comparing Oracle HotSpot and Azul Zing Using Apache Cassandra

Architecture of a Real-Time Operational DBMS

4 Myths about in-memory databases busted

Accelerate MySQL for Demanding OLAP and OLTP Use Case with Apache Ignite December 7, 2016

Certified Apache Cassandra Professional VS-1046

Big Data Technology Ecosystem. Mark Burnette Pentaho Director Sales Engineering, Hitachi Vantara

Designing for Scalability. Patrick Linskey EJB Team Lead BEA Systems

Scaling DreamFactory

Armon HASHICORP

GIS - Clustering Architectures. Raj Kumar Integration Management 9/25/2008

Qunar Performs Real-Time Data Analytics up to 300x Faster with Alluxio

To Shard or Not to Shard That is the question! Peter Zaitsev April 21, 2016

Migrating to Cassandra in the Cloud, the Netflix Way

Cassandra 1.0 and Beyond

Machine Learning meets Databases. Ioannis Papapanagiotou Cloud Database Engineering

PRESENTATION TITLE GOES HERE. Understanding Architectural Trade-offs in Object Storage Technologies

AutoStream: Automatic Stream Management for Multi-stream SSDs in Big Data Era

Building a Scalable Architecture for Web Apps - Part I (Lessons Directi)

STATE OF MODERN APPLICATIONS IN THE CLOUD

Using FPGAs as Microservices

Building a Data-Friendly Platform for a Data- Driven Future

the road to cloud native applications Fabien Hermenier

Performance & Scalability Testing in Virtual Environment Hemant Gaidhani, Senior Technical Marketing Manager, VMware

SPDK China Summit Ziye Yang. Senior Software Engineer. Network Platforms Group, Intel Corporation

[This is not an article, chapter, of conference paper!]

How do we build TiDB. a Distributed, Consistent, Scalable, SQL Database

/ Cloud Computing. Recitation 6 October 2 nd, 2018

Aerospike Scales with Google Cloud Platform

Conceptual Modeling on Tencent s Distributed Database Systems. Pan Anqun, Wang Xiaoyu, Li Haixiang Tencent Inc.

Oracle NoSQL Database

Intro Cassandra. Adelaide Big Data Meetup.

Jargons, Concepts, Scope and Systems. Key Value Stores, Document Stores, Extensible Record Stores. Overview of different scalable relational systems

State of the Dolphin Developing new Apps in MySQL 8

Performance and Scalability with Griddable.io

Using MySQL for Distributed Database Architectures

8/24/2017 Week 1-B Instructor: Sangmi Lee Pallickara

Cassandra- A Distributed Database

Migrating to Vitess at (Slack) Scale. Michael Demmer Percona Live Europe 2017

Highly Available Database Architectures in AWS. Santa Clara, California April 23th 25th, 2018 Mike Benshoof, Technical Account Manager, Percona

MODERN BIG DATA DESIGN PATTERNS CASE DRIVEN DESINGS

Scaling Pinterest. Marty Weiner Level 83 Interwebz Geek

Introduction to Database Services

Reactive Microservices Architecture on AWS

Big Data Infrastructure CS 489/698 Big Data Infrastructure (Winter 2017)

Dongjun Shin Samsung Electronics

Best Practices for Setting BIOS Parameters for Performance

RocksDB Key-Value Store Optimized For Flash

Windows Server 2012 Hands- On Camp. Learn What s Hot and New in Windows Server 2012!

Distributed PostgreSQL with YugaByte DB

@joerg_schad Nightmares of a Container Orchestration System

Comparison of Storage Protocol Performance ESX Server 3.5

Container Adoption for NFV Challenges & Opportunities. Sriram Natarajan, T-Labs Silicon Valley Innovation Center

Tuning Enterprise Information Catalog Performance

The SMACK Stack: Spark*, Mesos*, Akka, Cassandra*, Kafka* Elizabeth K. Dublin Apache Kafka Meetup, 30 August 2017.

ADVANCED DATABASES CIS 6930 Dr. Markus Schneider

NoSQL Databases Analysis

CISC 7610 Lecture 5 Distributed multimedia databases. Topics: Scaling up vs out Replication Partitioning CAP Theorem NoSQL NewSQL

CS 655 Advanced Topics in Distributed Systems

Boost Your Hibernate and Application Performance

Extending DPDK Flow Classification Libraries for Determinism & Cloud Usages SAMEH GOBRIEL INTEL LABS

InnoDB: Status, Architecture, and Latest Enhancements

Scaling Without Sharding. Baron Schwartz Percona Inc Surge 2010

Certified Reference Design for VMware Cloud Providers

davidklee.net gplus.to/kleegeek linked.com/a/davidaklee

High Performance NoSQL with MongoDB

How it can help your organisation

Building High Performance Apps using NoSQL. Swami Sivasubramanian General Manager, AWS NoSQL

1

Shen PingCAP 2017

YCSB++ Benchmarking Tool Performance Debugging Advanced Features of Scalable Table Stores

Java Without the Jitter

Memory-Based Cloud Architectures

Oracle GoldenGate for Big Data

Migrating Oracle Databases To Cassandra

SharePoint 2010 Technical Case Study: Microsoft SharePoint Server 2010 Enterprise Intranet Collaboration Environment

ARCHITECTING WEB APPLICATIONS FOR THE CLOUD: DESIGN PRINCIPLES AND PRACTICAL GUIDANCE FOR AWS

Fluentd + MongoDB + Spark = Awesome Sauce

Migrating to Vitess at (Slack) Scale. Michael Demmer Percona Live - April 2018

Scaling Up Performance Benchmarking

Designing Next Generation FS for NVMe and NVMe-oF

Oracle Performance on M5000 with F20 Flash Cache. Benchmark Report September 2011

Apache Spark 2.0. Matei

Mesosphere and Percona Server for MongoDB. Jeff Sandstrom, Product Manager (Percona) Ravi Yadav, Tech. Partnerships Lead (Mesosphere)

Why Scale-Out Big Data Apps Need A New Scale- Out Storage

Armon HASHICORP

(incubating) Introduction. Swapnil Bawaskar.

IX: A Protected Dataplane Operating System for High Throughput and Low Latency

Data Processing at the Speed of 100 Gbps using Apache Crail. Patrick Stuedi IBM Research

Transcription:

SCYLLA: NoSQL at Ludicrous Speed 主讲人 :ScyllaDB 软件工程师贺俊

Today we will cover: + Intro: Who we are, what we do, who uses it + Why we started ScyllaDB + Why should you care + How we made design decisions to achieve no-compromise performance and availability

Introduction + Founded by KVM hypervisor creators + Q2 2014 - Pivot to the database world + Q3 2015 - Decloak during Cassandra Summit 2015, Beta + Q1 2016 - General Availability + Q3 2016 - First Scylla Summit: 100+ Attendees + Q1 2017 - Completed B round + $25MM in funding + HQs: Palo Alto, CA; Herzelia, Israel + 42+ employees, hiring!

Why?@#$%$$%^?

Scylla benchmark by Samsung op/s

What we do: Scylla, towards the best NoSQL + > 1 million OPS per node + < 1ms 99% latency + Auto tuned + Scale up and out + Open source + Large community (piggyback on Cassandra) + Blends in the ecosystem- Spark, Presto, time series, search,..

Where Scylla is deployed?

Today we will cover: + Intro: Who we are, what we do, who uses it + Why we started ScyllaDB + Why should you care + How we made design decisions to achieve no-compromise performance and availability

Why we started Scylla? + Originally it was about performance/efficiency only + Over time, we understood we can deliver more: + SLA between background and foreground tasks + Work well on any given hardware {back pressure} + Deliver consistent, low 99th percentile latency + Reduction in admin effort + Low latency under the face of failures (hot cache load balancing) + High observability

Cassandra Scylla Throughput: Cannot utilize multi-core efficiently Scales linearly - shard-per-core Latency: High due to Java and JVM s GC Low and consistent - own cache Complexity: Intricate tuning and configuration Auto tuned, dynamic scheduling Admin: Maintenance impacts performance SLA guarantee for admin vs serving

Today we will cover: + Intro: Who we are, what we do, who uses it + Why we started ScyllaDB + Why should you care + How we made design decisions to achieve no-compromise performance and availability

Case study: Document column family Outbrain is the world s largest content discovery platform. Over 557 million unique visitors from across the globe. 250 billion personalized content recommendations every month.

Outbrain: Cassandra plus Memcache Read Microservice Write Process First read from memcached, go to Cassandra on misses. Pain: 1) Stale data from cache 2) Complexity 3) Cold cache -> C* gets full volume

Scylla/Cassandra side by side deployment Read Microservice Write Process Writes are written in parallel to C* and Scylla Reads are done in parallel: 1) Memcached + Cassandra 2) Scylla (no cache at all)

Scylla (w/o cache) vs Cassandra + Memcached Cassandra s latency Scylla s latency Requests/ Minute AVG Latency Max Latency Scylla Cassandra Diff% 12,000,000 500,000 (memcache handles 11,500,000) 24X 4 ms 8 ms 2X 8 ms 35 ms 3.5X Hardware 9 machines 30+9 machines 4.3X 15

What does it mean for a non Cassandra user? + Throughput, latency and scale benefits + Wide range of big data integration: {Kariosdb, Spark, JanusGraph, Presto, Kafka, Elastic} + Best HA/DR in the industry. + Stop using caches in front of the database + Consolidate HBase, Redis, MySQL, Mongo and others

Assorted Quotes

Today we will cover: + Intro: Who we are, what we do, who uses it + Why we started ScyllaDB + Why should you care + How we made design decisions to achieve no-compromise performance and availability

Design decisions: #1 The trivials

Design decisions: #2 Compatibility SSTable file format Configuration file format CQL language CQL native protocol JMX management protocol Management command line

Double cluster - Migration w/o downtime App CQL proxy Cassandra Scylla

Design decisions: #3 All things async

Design decisions: #4 Shard per core Threads Shards

SCYLLA DB: Network Comparison Traditional stack Scylla sharded stack queue Cassandra queue queue queue queue threads Kernel Scheduler Kernel Memory TCP/IP Application Application Application Core Database TCP/I TCP/I TCP/I P P P queue queue queue queue queue queue Task Scheduler queue queue queue queue Task Scheduler queue queue queue queue Task Scheduler queue queue queue smp queue Task Scheduler queue queue smp queue queue smp queue smp queue DPDK DPDK DPDK Userspace Userspace Userspace Userspace NIC Queues Kernel Kernel Kernel (isn t NIC (isn t NIC (isn t involved) NIC Queue involved) NIC Queue involved) Queue Queue

Scylla has its own task scheduler Traditional stack Scylla s stack Thread Thread Thread Thread Thread Thread Stack Thread Stack Thread Stack Stack Stack Stack Stack Stack Thread is a function pointer Stack is a byte array from 64k to megabytes Promise Promise PromiseTask PromiseTask PromiseTask Task Task Promise Promise PromiseTask PromiseTask PromiseTask Task Task Promise Promise PromiseTask PromiseTask PromiseTask Task Task Promise is a pointer to eventually computed value Task is a pointer to a lambda function Scheduler Scheduler Scheduler Scheduler Scheduler Promise Promise PromiseTask PromiseTask PromiseTask Task Task CPU CPU CPU CPU CPU CPU CPU CPU CPU CPU

SCYLLA IS DIFFERENT p Thread per core p Lock-free p Task scheduler p Reactor programing p C++14 p Multi queue p Poll mode p Userspace TCP/IP p NUMA friendly p Log structured allocator p Zero copy p DMA p Log structured merge tree p DBaware cache p Userspace I/O scheduler

Scylla vs C* latency by Kenshoo

Design Decision: #5 Unified cache Cassandra Scylla Key cache Row cache On-heap / Off-heap Complex Tuning Unified cache Linux page cache SSTables SSTables

Design decisions: #6 I/O scheduler Cassandra Streaming configuration

Scylla I/O Scheduling Max useful disk concurrency Query Queue Commitlog Queue Userspace I/O Scheduler Disk Compaction Queue No queues I/O queued in FS/device

I/O scheduler result by Kenshoo

Design Decision: #7 Workload conditioning Adjust priority Memory Monitor Commitlog Memtable WAN Adjust priority Compaction Seastar Scheduler SSD Compaction Backlog Monitor Query Repair CPU

Workload Conditioning in practice Disk can t keep up: workload conditioning will figure out the right request rate

Upcoming releases + Enterprise release, based on 1.6 + 1.7 - May 2017 Counters New intra-node sharding algorithm SStableloader from 2.2/3.x Debian + 2.0 Sep 2017 Materialized views Execution blocks (cpu cache optimization which boost performance) Partial row cache (for wide row streaming) Heat Weighted Load Balancing

Scylla Beyond Cassandra Core database Vertical Horizontal

Q&A Resources dor@scylladb.com (@DorLaor) avi@scylladb.com (@AviKivity) github.com/scylladb/scylla scylladb.com/blog @scylladb http://bit.ly/2ohafok youtube.com/c/scylladb slideshare.net/scylladb

THANKS SCYLLA: NoSQL at Ludicrous Speed