SlideShare a Scribd company logo
SIMPLICITY SCALES
Big data application management &
operations
1
WHOAMI?
Tyler Hannan
Director, Technical Marketing
tyler@basho.com
@tylerhannan
SQL
SQL
NoSQL
SQL
NoSQL
NewSQL
CHANGE IN ARCHITECTURAL DESIGN
App App App App
Virtualization
Server
App
Aggregation
Server Server Server Server
SMALL APPS
BIG SERVERS
ONE LOCATION
BIG APPS
COMMODITY SERVERS
MANY LOCATIONS
In 2014, 20% of
enterprise data projects
add distributed
processes into
production
THE BENEFITS OF RIAK
Riak is an operationally friendly database that is:
• Fault-tolerant
• Highly-available
• Scalable
• Self-healing
THE PROPERTIES OF A DISTRIBUTED DB
Riak is a multi-model database that is:
• Open Source & Commercial
• Distributed
• Masterless
• Eventually Consistent
Why THOSE properties?
This is NOT about Riak.
This is about design
decisions in distributed
systems.
This IS about Riak.
And learning from
Basho’s architectural
decisions.
DISTRIBUTED SYSTEMS – A DEFINITION
“A distributed system is a software
system in which components located
on network computers communicate
and coordinate their actions by passing
messages. The components interact
with each other in order to achieve a
common goal.”
--Wikipedia
DISTRIBUTED SYSTEMS – A DEFINITION
“A distributed system is one in which
the failure of a computer you didn't
even know existed can render your
own computer unusable”
--Leslie Lamport
DISTRIBUTED SYSTEMS – A DEFINITION
“Everything works at small scale.
Understand failure modalities to
understand your realities.”
--Tyler Hannan
THINKING DISTRIBUTED
What we consider, when we think distributed:
• Availability
• Fault Tolerance
• Latency
UPTIME IS A POOR METRIC…
Availability
AVAILABILITY
“…widespread underestimation of the
specific difficulties of size seems one of
the major underlying causes of current
software failure.”
--Wikipedia
THE CAP THEOREM
HARVEST AND YIELD
Harvest
• a fraction
• data available / complete data
Yield
• a probability
• queries completed / queries requested
Failure will cause known linear reduction to one of
these
UNDERSTANDING “CONSISTENCY
H
A
R
V
E
S
T
YIELD
Queries Issued
Queries Offered
Data Available
Total Dataset
HARVEST AND YIELD
Traditional design demands
100% HARVEST…
but success of modern
applications is often measured in
YIELD.
HARVEST AND YIELD: USE CASE
HARVEST AND YIELD: USE CASE
RELATIONAL AVAILABILITY
primary
replica replica replica
coordination
Write/
Read
RELATIONAL AVAILABILITY
primary replica replica
coordination
X
Write/
Read
RIAK AVAILABILITY
Riak has a masterless architecture in which every node in a
cluster is capable of serving read and write requests.
Each
1/Nth the data
1/Nth the performance
=
RIAK AVAILABILITY
Availability Requires
Scalability
RELATIONAL SCALABILITY
A - K L - P Q - Z
Designed to scale
vertically
Cost of vertical
scaling
Sharding
ADD CAPACITY AS NEEDED
Node 3
Node 4
Node 5
Node 0
Node 1
Node 2
Designed for
Horizontal Scale
Deployed on
commodity
Hardware
Consistent
Hashing
PERFECTION IS UNATTAINABLE…
FAILURES WILL HAPPEN
Fault Tolerance
FAULT TOLERANCE
How many hosts/replicas do you need
to survive “F” failures?
• F + 1 – fundamental minimum
• 2F + 1 – a majority are alive
• 3F + 1 – Byzantine Fault Tolerance
NAÏVE HASHING
NH(Ka) = 0
NH(Kb) = 1
NH(Kc) = 2
NH(Kd) = 0
…
Node # = HASH(KEY) % NUM_NODES
NAÏVE HASHING
Node 0 Node 1 Node 2
Ka Kd Kg
Kj Km Kp
Kb Ke Kh
Kk Kn Kq
Kc Kf Ki
Kl Ko Kr
NAÏVE HASHING
Node 0 Node 1 Node 2
Ka Ke Ki
Km Kq
Kb Kf Kj
Kn Kr
Kc Kg Kk
Ko
Node 4
Kd Kh Kl
Kp
NAÏVE HASHING
• K = # of Keys
• NN = # of Nodes
As NN grows factor essentially becomes 1,
thus ALL keys move
K * (NN – 1) / NN => K
CONSISTENT HASHING
• # of Partitions remains CONSTANT
• Key always maps to the SAME Partition
• Node owns Partitions
• Partitions contain keys
• Extra Level of Indirection
Partition # = HASH(KEY) % Partitions
CONSISTENT HASHING
P4 P7 P2 P5 P8 P3 P6 P9P1
Node 0 Node 1 Node 2
Ka Kd Kg
Kj Km Kp
Kb Ke Kh
Kk Kn Kq
Kc Kf Ki
Kl Ko Kr
CONSISTENT HASHING
P4 P7 P2 P5P8 P3 P6 P9 P1
Node 0 Node 1 Node 2
KaKd Kg
KjKm Kp
Kb KeKh
Kk KnKq
Kc Kf Ki
Kl Ko Kr
Node 4
CONSISTENT HASHING
• K = # of Keys
• NN = # of Nodes
• Q = # of Partitions
As K grows NN becomes constant, thus K/Q
keys move
NN * K/Q => K/Q
RIAK AVAILABILITY
Node 0
Node 1
Node 2
BRIEF MILLISECONDS
PHOTONS FLYING THROUGH GLASS
TIME STOPS FOR NO ONE
Latency
UNDERSTANDING LATENCY
299,792,458 meters/second
in a vacuum
UNDERSTANDING LATENCY
LATENCY: GOOGLE’S BIG TABLE
95th percentile: 24 ms
99.9th percentile: 994 ms
REDUNDANCY REDUCES LATENCY
IF response > 10 ms
THEN send 2nd request
5% increase in total requests
99.9th percentile latency = 50 ms
UNDERSTANDING LATENCY
Overall latency is determined by
latency of the SLOWEST
machine.
Get data close to your users.
MULTI-CLUSTER REPLICATION
Replicate data
across datacenters
or across the world
UNDERSTANDING PERFORMANCE
You get fast read and
write performance
What does this mean?
THE PLAN, THE ENVIRONMENT
• How do we measure performance?
• What do we measure when we
measure performance?
• basho_bench
• Google Cloud
CLUSTER EXPANSION
NODE FAILURE
THINKING DISTRIBUTED
What we consider, when we think distributed:
• Availability
• Fault Tolerance
• Latency
DISTRIBUTED SYSTEMS – A DEFINITION
“Everything works at small scale.
Understand failure modalities to
understand your realities.”
--Tyler Hannan
CV CV
NoSQL
Database
Unstructured Data
No pre-defined Schema
Small and Large Data Sets
on Commodity HW
Many Models:
K/V, document store, graph
Variety of Query Methods
RELATIONAL & NOSQL
What’s the difference?
Relational
Database
Structured Data
Defined Schema
Tables with
Rows/Columns
Indexed
w/ Table Joins
SQL
THE EVOLUTION OF NOSQL
Unstructured
Data Platforms
Multi-Model
Solutions
Point
Solutions
42% of database decision makers admit they
struggle to manage the NoSQL solutions
deployed in their environments”
Riak
Spark
COMPLEX TECHNOLOGY STACK
Simplify the Complexity
Ensure High Availability
Scale Horizontally
Enter
Basho Data Platform
BASHO DATA PLATFORM?
Riak KV
Client
Basho Redis Proxy
Client
Application
Redis Redis
Riak
KV
Riak
KV
Service
Manager Spark Spark
Spark Connector
Spark
Client
Riak KV EnsembleBasho Data Platform
Read
Write
Read
Write
Read
Redis Services
Read
Spark Services
Leader Election
Query
Write
Read/Solr
MANAGING COMPLEXITY AT SCALE
THOUSANDS OF USERS
XfinityTV
MILLIONS OF RECORDS
Information requested
and amended more
than 2.6 BILLION
times a year
42 MILLION Summary
Care Records
1.3 BILLION
prescription messages
BILLIONS OF MOBILE DEVICES
10 BILLION data
transactions a day –
150,000 a second
Forecasting 2.8
BILLION locations
around the world
Generates 4GB OF
DATA every second
?
Tyler Hannan
@tylerhannan
learn more at ricon.io

More Related Content

What's hot

Engineering Leader opportunity @ Netflix - Playback Data Systems
Engineering Leader opportunity @ Netflix - Playback Data SystemsEngineering Leader opportunity @ Netflix - Playback Data Systems
Engineering Leader opportunity @ Netflix - Playback Data Systems
Philip Fisher-Ogden
 
Surviving KubeDoom - Even demons can't kill an intrusion of CockroachDB!
Surviving KubeDoom - Even demons can't kill an intrusion of CockroachDB!Surviving KubeDoom - Even demons can't kill an intrusion of CockroachDB!
Surviving KubeDoom - Even demons can't kill an intrusion of CockroachDB!
Faheem Memon
 
The Last Pickle: Distributed Tracing from Application to Database
The Last Pickle: Distributed Tracing from Application to DatabaseThe Last Pickle: Distributed Tracing from Application to Database
The Last Pickle: Distributed Tracing from Application to Database
DataStax Academy
 
Building Stream Processing as a Service
Building Stream Processing as a ServiceBuilding Stream Processing as a Service
Building Stream Processing as a Service
Steven Wu
 
Let's Chat about Chat - RICON 2014
Let's Chat about Chat - RICON 2014 Let's Chat about Chat - RICON 2014
Let's Chat about Chat - RICON 2014
Michał Ptaszek
 
Beaming flink to the cloud @ netflix ff 2016-monal-daxini
Beaming flink to the cloud @ netflix   ff 2016-monal-daxiniBeaming flink to the cloud @ netflix   ff 2016-monal-daxini
Beaming flink to the cloud @ netflix ff 2016-monal-daxini
Monal Daxini
 
Netflix viewing data architecture evolution - EBJUG Nov 2014
Netflix viewing data architecture evolution - EBJUG Nov 2014Netflix viewing data architecture evolution - EBJUG Nov 2014
Netflix viewing data architecture evolution - EBJUG Nov 2014
Philip Fisher-Ogden
 
Distributed monitoring
Distributed monitoringDistributed monitoring
Distributed monitoringLeon Torres
 
NetflixOSS Meetup S6E2 - Spinnaker, Kayenta
NetflixOSS Meetup S6E2 - Spinnaker, KayentaNetflixOSS Meetup S6E2 - Spinnaker, Kayenta
NetflixOSS Meetup S6E2 - Spinnaker, Kayenta
aspyker
 
Ingesting Healthcare Data, Micah Whitacre
Ingesting Healthcare Data, Micah WhitacreIngesting Healthcare Data, Micah Whitacre
Ingesting Healthcare Data, Micah Whitacre
confluent
 
Keystone - ApacheCon 2016
Keystone - ApacheCon 2016Keystone - ApacheCon 2016
Keystone - ApacheCon 2016
Peter Bakas
 
PagerDuty: Span the WAN? Yes you can!
PagerDuty: Span the WAN? Yes you can!PagerDuty: Span the WAN? Yes you can!
PagerDuty: Span the WAN? Yes you can!
DataStax Academy
 
analytic engine - a common big data computation service on the aws
analytic engine - a common big data computation service on the awsanalytic engine - a common big data computation service on the aws
analytic engine - a common big data computation service on the aws
Scott Miao
 
RedisConf18 - Ultra Scaling with Redis Enterprise
RedisConf18 - Ultra Scaling with Redis EnterpriseRedisConf18 - Ultra Scaling with Redis Enterprise
RedisConf18 - Ultra Scaling with Redis Enterprise
Redis Labs
 
Streaming in Practice - Putting Apache Kafka in Production
Streaming in Practice - Putting Apache Kafka in ProductionStreaming in Practice - Putting Apache Kafka in Production
Streaming in Practice - Putting Apache Kafka in Production
confluent
 
IoT in the DataCenter @ Container Camp, London
IoT in the DataCenter @ Container Camp, LondonIoT in the DataCenter @ Container Camp, London
IoT in the DataCenter @ Container Camp, London
Alex Ellis
 
Introduction To Streaming Data and Stream Processing with Apache Kafka
Introduction To Streaming Data and Stream Processing with Apache KafkaIntroduction To Streaming Data and Stream Processing with Apache Kafka
Introduction To Streaming Data and Stream Processing with Apache Kafka
confluent
 
Data pipeline with kafka
Data pipeline with kafkaData pipeline with kafka
Data pipeline with kafka
Mole Wong
 
Kafka Summit SF 2017 - One Data Center is Not Enough: Scaling Apache Kafka Ac...
Kafka Summit SF 2017 - One Data Center is Not Enough: Scaling Apache Kafka Ac...Kafka Summit SF 2017 - One Data Center is Not Enough: Scaling Apache Kafka Ac...
Kafka Summit SF 2017 - One Data Center is Not Enough: Scaling Apache Kafka Ac...
confluent
 
Data Stores @ Netflix
Data Stores @ NetflixData Stores @ Netflix
Data Stores @ Netflix
Vinay Kumar Chella
 

What's hot (20)

Engineering Leader opportunity @ Netflix - Playback Data Systems
Engineering Leader opportunity @ Netflix - Playback Data SystemsEngineering Leader opportunity @ Netflix - Playback Data Systems
Engineering Leader opportunity @ Netflix - Playback Data Systems
 
Surviving KubeDoom - Even demons can't kill an intrusion of CockroachDB!
Surviving KubeDoom - Even demons can't kill an intrusion of CockroachDB!Surviving KubeDoom - Even demons can't kill an intrusion of CockroachDB!
Surviving KubeDoom - Even demons can't kill an intrusion of CockroachDB!
 
The Last Pickle: Distributed Tracing from Application to Database
The Last Pickle: Distributed Tracing from Application to DatabaseThe Last Pickle: Distributed Tracing from Application to Database
The Last Pickle: Distributed Tracing from Application to Database
 
Building Stream Processing as a Service
Building Stream Processing as a ServiceBuilding Stream Processing as a Service
Building Stream Processing as a Service
 
Let's Chat about Chat - RICON 2014
Let's Chat about Chat - RICON 2014 Let's Chat about Chat - RICON 2014
Let's Chat about Chat - RICON 2014
 
Beaming flink to the cloud @ netflix ff 2016-monal-daxini
Beaming flink to the cloud @ netflix   ff 2016-monal-daxiniBeaming flink to the cloud @ netflix   ff 2016-monal-daxini
Beaming flink to the cloud @ netflix ff 2016-monal-daxini
 
Netflix viewing data architecture evolution - EBJUG Nov 2014
Netflix viewing data architecture evolution - EBJUG Nov 2014Netflix viewing data architecture evolution - EBJUG Nov 2014
Netflix viewing data architecture evolution - EBJUG Nov 2014
 
Distributed monitoring
Distributed monitoringDistributed monitoring
Distributed monitoring
 
NetflixOSS Meetup S6E2 - Spinnaker, Kayenta
NetflixOSS Meetup S6E2 - Spinnaker, KayentaNetflixOSS Meetup S6E2 - Spinnaker, Kayenta
NetflixOSS Meetup S6E2 - Spinnaker, Kayenta
 
Ingesting Healthcare Data, Micah Whitacre
Ingesting Healthcare Data, Micah WhitacreIngesting Healthcare Data, Micah Whitacre
Ingesting Healthcare Data, Micah Whitacre
 
Keystone - ApacheCon 2016
Keystone - ApacheCon 2016Keystone - ApacheCon 2016
Keystone - ApacheCon 2016
 
PagerDuty: Span the WAN? Yes you can!
PagerDuty: Span the WAN? Yes you can!PagerDuty: Span the WAN? Yes you can!
PagerDuty: Span the WAN? Yes you can!
 
analytic engine - a common big data computation service on the aws
analytic engine - a common big data computation service on the awsanalytic engine - a common big data computation service on the aws
analytic engine - a common big data computation service on the aws
 
RedisConf18 - Ultra Scaling with Redis Enterprise
RedisConf18 - Ultra Scaling with Redis EnterpriseRedisConf18 - Ultra Scaling with Redis Enterprise
RedisConf18 - Ultra Scaling with Redis Enterprise
 
Streaming in Practice - Putting Apache Kafka in Production
Streaming in Practice - Putting Apache Kafka in ProductionStreaming in Practice - Putting Apache Kafka in Production
Streaming in Practice - Putting Apache Kafka in Production
 
IoT in the DataCenter @ Container Camp, London
IoT in the DataCenter @ Container Camp, LondonIoT in the DataCenter @ Container Camp, London
IoT in the DataCenter @ Container Camp, London
 
Introduction To Streaming Data and Stream Processing with Apache Kafka
Introduction To Streaming Data and Stream Processing with Apache KafkaIntroduction To Streaming Data and Stream Processing with Apache Kafka
Introduction To Streaming Data and Stream Processing with Apache Kafka
 
Data pipeline with kafka
Data pipeline with kafkaData pipeline with kafka
Data pipeline with kafka
 
Kafka Summit SF 2017 - One Data Center is Not Enough: Scaling Apache Kafka Ac...
Kafka Summit SF 2017 - One Data Center is Not Enough: Scaling Apache Kafka Ac...Kafka Summit SF 2017 - One Data Center is Not Enough: Scaling Apache Kafka Ac...
Kafka Summit SF 2017 - One Data Center is Not Enough: Scaling Apache Kafka Ac...
 
Data Stores @ Netflix
Data Stores @ NetflixData Stores @ Netflix
Data Stores @ Netflix
 

Similar to O'Reilly Webinar: Simplicity Scales - Big Data

Using Kubernetes to deliver a “serverless” service
Using Kubernetes to deliver a “serverless” serviceUsing Kubernetes to deliver a “serverless” service
Using Kubernetes to deliver a “serverless” service
DoKC
 
Revolutionary Storage for Modern Databases, Applications and Infrastrcture
Revolutionary Storage for Modern Databases, Applications and InfrastrctureRevolutionary Storage for Modern Databases, Applications and Infrastrcture
Revolutionary Storage for Modern Databases, Applications and Infrastrcture
sabnees
 
Dragonflow Austin Summit Talk
Dragonflow Austin Summit Talk Dragonflow Austin Summit Talk
Dragonflow Austin Summit Talk
Eran Gampel
 
Patterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to KubernetesPatterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to Kubernetes
QAware GmbH
 
Patterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to KubernetesPatterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to Kubernetes
Josef Adersberger
 
Solutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital EnterpriseSolutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital Enterprise
andreas kuncoro
 
Solutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital EnterpriseSolutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital Enterprise
andreas kuncoro
 
Big Data LDN 2018: CHARTING ZERO LATENCY FUTURE WITH REDIS
Big Data LDN 2018: CHARTING ZERO LATENCY FUTURE WITH REDISBig Data LDN 2018: CHARTING ZERO LATENCY FUTURE WITH REDIS
Big Data LDN 2018: CHARTING ZERO LATENCY FUTURE WITH REDIS
Matt Stubbs
 
Containerized Hadoop beyond Kubernetes
Containerized Hadoop beyond KubernetesContainerized Hadoop beyond Kubernetes
Containerized Hadoop beyond Kubernetes
DataWorks Summit
 
AWS re:Invent 2016: Moving Mission Critical Apps from One Region to Multi-Reg...
AWS re:Invent 2016: Moving Mission Critical Apps from One Region to Multi-Reg...AWS re:Invent 2016: Moving Mission Critical Apps from One Region to Multi-Reg...
AWS re:Invent 2016: Moving Mission Critical Apps from One Region to Multi-Reg...
Amazon Web Services
 
The Crown Jewels: Is Enterprise Data Ready for the Cloud?
The Crown Jewels: Is Enterprise Data Ready for the Cloud?The Crown Jewels: Is Enterprise Data Ready for the Cloud?
The Crown Jewels: Is Enterprise Data Ready for the Cloud?
Inside Analysis
 
osi-oss-dbs.pptx
osi-oss-dbs.pptxosi-oss-dbs.pptx
osi-oss-dbs.pptx
Shivji Kumar Jha
 
DataStax C*ollege Credit: What and Why NoSQL?
DataStax C*ollege Credit: What and Why NoSQL?DataStax C*ollege Credit: What and Why NoSQL?
DataStax C*ollege Credit: What and Why NoSQL?
DataStax
 
BigData Developers MeetUp
BigData Developers MeetUpBigData Developers MeetUp
BigData Developers MeetUp
Christian Johannsen
 
Webinar Slides: Geo-Distributed MySQL Clustering Done Right!
Webinar Slides: Geo-Distributed MySQL Clustering Done Right!Webinar Slides: Geo-Distributed MySQL Clustering Done Right!
Webinar Slides: Geo-Distributed MySQL Clustering Done Right!
Continuent
 
Using Software-Defined WAN implementation to turn on advanced connectivity se...
Using Software-Defined WAN implementation to turn on advanced connectivity se...Using Software-Defined WAN implementation to turn on advanced connectivity se...
Using Software-Defined WAN implementation to turn on advanced connectivity se...
RedHatTelco
 
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #2: Galera Cluster
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #2: Galera ClusterWebinar Slides: MySQL HA/DR/Geo-Scale - High Noon #2: Galera Cluster
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #2: Galera Cluster
Continuent
 
NoSQL and ACID
NoSQL and ACIDNoSQL and ACID
NoSQL and ACID
FoundationDB
 
Using Kubernetes to deliver a “serverless” service
Using Kubernetes to deliver a “serverless” serviceUsing Kubernetes to deliver a “serverless” service
Using Kubernetes to deliver a “serverless” service
DoKC
 
What’s New in ScyllaDB Open Source 5.0
What’s New in ScyllaDB Open Source 5.0What’s New in ScyllaDB Open Source 5.0
What’s New in ScyllaDB Open Source 5.0
ScyllaDB
 

Similar to O'Reilly Webinar: Simplicity Scales - Big Data (20)

Using Kubernetes to deliver a “serverless” service
Using Kubernetes to deliver a “serverless” serviceUsing Kubernetes to deliver a “serverless” service
Using Kubernetes to deliver a “serverless” service
 
Revolutionary Storage for Modern Databases, Applications and Infrastrcture
Revolutionary Storage for Modern Databases, Applications and InfrastrctureRevolutionary Storage for Modern Databases, Applications and Infrastrcture
Revolutionary Storage for Modern Databases, Applications and Infrastrcture
 
Dragonflow Austin Summit Talk
Dragonflow Austin Summit Talk Dragonflow Austin Summit Talk
Dragonflow Austin Summit Talk
 
Patterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to KubernetesPatterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to Kubernetes
 
Patterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to KubernetesPatterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to Kubernetes
 
Solutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital EnterpriseSolutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital Enterprise
 
Solutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital EnterpriseSolutions for IT Organizations on The Journey to The Digital Enterprise
Solutions for IT Organizations on The Journey to The Digital Enterprise
 
Big Data LDN 2018: CHARTING ZERO LATENCY FUTURE WITH REDIS
Big Data LDN 2018: CHARTING ZERO LATENCY FUTURE WITH REDISBig Data LDN 2018: CHARTING ZERO LATENCY FUTURE WITH REDIS
Big Data LDN 2018: CHARTING ZERO LATENCY FUTURE WITH REDIS
 
Containerized Hadoop beyond Kubernetes
Containerized Hadoop beyond KubernetesContainerized Hadoop beyond Kubernetes
Containerized Hadoop beyond Kubernetes
 
AWS re:Invent 2016: Moving Mission Critical Apps from One Region to Multi-Reg...
AWS re:Invent 2016: Moving Mission Critical Apps from One Region to Multi-Reg...AWS re:Invent 2016: Moving Mission Critical Apps from One Region to Multi-Reg...
AWS re:Invent 2016: Moving Mission Critical Apps from One Region to Multi-Reg...
 
The Crown Jewels: Is Enterprise Data Ready for the Cloud?
The Crown Jewels: Is Enterprise Data Ready for the Cloud?The Crown Jewels: Is Enterprise Data Ready for the Cloud?
The Crown Jewels: Is Enterprise Data Ready for the Cloud?
 
osi-oss-dbs.pptx
osi-oss-dbs.pptxosi-oss-dbs.pptx
osi-oss-dbs.pptx
 
DataStax C*ollege Credit: What and Why NoSQL?
DataStax C*ollege Credit: What and Why NoSQL?DataStax C*ollege Credit: What and Why NoSQL?
DataStax C*ollege Credit: What and Why NoSQL?
 
BigData Developers MeetUp
BigData Developers MeetUpBigData Developers MeetUp
BigData Developers MeetUp
 
Webinar Slides: Geo-Distributed MySQL Clustering Done Right!
Webinar Slides: Geo-Distributed MySQL Clustering Done Right!Webinar Slides: Geo-Distributed MySQL Clustering Done Right!
Webinar Slides: Geo-Distributed MySQL Clustering Done Right!
 
Using Software-Defined WAN implementation to turn on advanced connectivity se...
Using Software-Defined WAN implementation to turn on advanced connectivity se...Using Software-Defined WAN implementation to turn on advanced connectivity se...
Using Software-Defined WAN implementation to turn on advanced connectivity se...
 
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #2: Galera Cluster
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #2: Galera ClusterWebinar Slides: MySQL HA/DR/Geo-Scale - High Noon #2: Galera Cluster
Webinar Slides: MySQL HA/DR/Geo-Scale - High Noon #2: Galera Cluster
 
NoSQL and ACID
NoSQL and ACIDNoSQL and ACID
NoSQL and ACID
 
Using Kubernetes to deliver a “serverless” service
Using Kubernetes to deliver a “serverless” serviceUsing Kubernetes to deliver a “serverless” service
Using Kubernetes to deliver a “serverless” service
 
What’s New in ScyllaDB Open Source 5.0
What’s New in ScyllaDB Open Source 5.0What’s New in ScyllaDB Open Source 5.0
What’s New in ScyllaDB Open Source 5.0
 

More from Basho Technologies

Data Modeling IoT and Time Series data in NoSQL
Data Modeling IoT and Time Series data in NoSQLData Modeling IoT and Time Series data in NoSQL
Data Modeling IoT and Time Series data in NoSQL
Basho Technologies
 
A Zen Journey to Database Management
A Zen Journey to Database ManagementA Zen Journey to Database Management
A Zen Journey to Database ManagementBasho Technologies
 
Vagrant up a Distributed Test Environment - Nginx Summit 2015
Vagrant up a Distributed Test Environment - Nginx Summit 2015Vagrant up a Distributed Test Environment - Nginx Summit 2015
Vagrant up a Distributed Test Environment - Nginx Summit 2015
Basho Technologies
 
A little about Message Queues - Boston Riak Meetup
A little about Message Queues - Boston Riak MeetupA little about Message Queues - Boston Riak Meetup
A little about Message Queues - Boston Riak Meetup
Basho Technologies
 
tecFinal 451 webinar deck
tecFinal 451 webinar decktecFinal 451 webinar deck
tecFinal 451 webinar deck
Basho Technologies
 
NoSQL Implementation - Part 1 (Velocity 2015)
NoSQL Implementation - Part 1 (Velocity 2015)NoSQL Implementation - Part 1 (Velocity 2015)
NoSQL Implementation - Part 1 (Velocity 2015)
Basho Technologies
 
Coding with Riak (from Velocity 2015)
Coding with Riak (from Velocity 2015)Coding with Riak (from Velocity 2015)
Coding with Riak (from Velocity 2015)
Basho Technologies
 
Relational Databases to Riak
Relational Databases to RiakRelational Databases to Riak
Relational Databases to Riak
Basho Technologies
 
Taming Big Data with NoSQL
Taming Big Data with NoSQLTaming Big Data with NoSQL
Taming Big Data with NoSQL
Basho Technologies
 
Basho and Riak at GOTO Stockholm: "Don't Use My Database."
Basho and Riak at GOTO Stockholm:  "Don't Use My Database."Basho and Riak at GOTO Stockholm:  "Don't Use My Database."
Basho and Riak at GOTO Stockholm: "Don't Use My Database."
Basho Technologies
 
Using Basho Bench to Load Test Distributed Applications
Using Basho Bench to Load Test Distributed ApplicationsUsing Basho Bench to Load Test Distributed Applications
Using Basho Bench to Load Test Distributed Applications
Basho Technologies
 

More from Basho Technologies (11)

Data Modeling IoT and Time Series data in NoSQL
Data Modeling IoT and Time Series data in NoSQLData Modeling IoT and Time Series data in NoSQL
Data Modeling IoT and Time Series data in NoSQL
 
A Zen Journey to Database Management
A Zen Journey to Database ManagementA Zen Journey to Database Management
A Zen Journey to Database Management
 
Vagrant up a Distributed Test Environment - Nginx Summit 2015
Vagrant up a Distributed Test Environment - Nginx Summit 2015Vagrant up a Distributed Test Environment - Nginx Summit 2015
Vagrant up a Distributed Test Environment - Nginx Summit 2015
 
A little about Message Queues - Boston Riak Meetup
A little about Message Queues - Boston Riak MeetupA little about Message Queues - Boston Riak Meetup
A little about Message Queues - Boston Riak Meetup
 
tecFinal 451 webinar deck
tecFinal 451 webinar decktecFinal 451 webinar deck
tecFinal 451 webinar deck
 
NoSQL Implementation - Part 1 (Velocity 2015)
NoSQL Implementation - Part 1 (Velocity 2015)NoSQL Implementation - Part 1 (Velocity 2015)
NoSQL Implementation - Part 1 (Velocity 2015)
 
Coding with Riak (from Velocity 2015)
Coding with Riak (from Velocity 2015)Coding with Riak (from Velocity 2015)
Coding with Riak (from Velocity 2015)
 
Relational Databases to Riak
Relational Databases to RiakRelational Databases to Riak
Relational Databases to Riak
 
Taming Big Data with NoSQL
Taming Big Data with NoSQLTaming Big Data with NoSQL
Taming Big Data with NoSQL
 
Basho and Riak at GOTO Stockholm: "Don't Use My Database."
Basho and Riak at GOTO Stockholm:  "Don't Use My Database."Basho and Riak at GOTO Stockholm:  "Don't Use My Database."
Basho and Riak at GOTO Stockholm: "Don't Use My Database."
 
Using Basho Bench to Load Test Distributed Applications
Using Basho Bench to Load Test Distributed ApplicationsUsing Basho Bench to Load Test Distributed Applications
Using Basho Bench to Load Test Distributed Applications
 

O'Reilly Webinar: Simplicity Scales - Big Data

Editor's Notes

  1. “IF THE SYSTEM IS ‘DOWN’ AND NO ONE MAKES A REQUEST, IS IT REALLY DOWN?” ~ ME
  2. CAP theorem - Dr. Eric Brewer, Prof UC Berkeley, VP infrastructure google, Basho Board Consistency Always return last written value “eventual consistency” seems scary. Is not – DNS Master/Slave RDMBS log shipping Caching layer Availability Get a response even if portions of system are down Partition Tolerance Not a trade-off google “coda hale partition tolerance”
  3. Harvest a fraction data available / complete data Yield a probability queries completed / queries requested
  4. Transaction log shipping hot/hot backup Datacenter failure vs. node failure Master/Replica Architecture Assumption of Transactional Consistency What happens under failure conditions?
  5. Requests are routed to Nodes using standard load balancing techniques Under the cover keys are actually stored as as combination of the bucket name and user assigned key value. Potentially add proxy/client visual
  6. Riak’s uniform distribution and equal allocation of vnodes to machines Allows you to think of each machine being responsible for: 1/Nth data & 1/Nth performance
  7. Hot spots Unevenly spread data and request patterns Resharding is operationally intensive and often manual Designed for Vertical scale Cost Considerations a key element of vertical scaling Sharding
  8. An approach to fault tolerance is to look at hashing algorithms to distribute data across the F instances. This will be a “ring free” presentation…
  9. Latency is largely a function of the speed of light, which is 299,792,458 meters/second in vacuum. This would equate to a latency of 3.33 microseconds for every kilometer of path length. The index of refraction of most fibre optic cables is about 1.5, meaning that light travels about 1.5 times as fast in a vacuum as it does in the cable. This works out to about 4.9 microseconds of latency for every kilometer. In shorter metro networks, the latency performance rises a bit more due to building risers and cross-connects and can bring the latency as high as 5 microseconds per kilometer.
  10. Our understanding of availability translates to the computational systems we build. Some systems use physical temporal clocks and timestamps (even Riak). Time is continuous but we can only represent discrete moments in a computer. Granularity of the discretization is dependent on probable frequency of events. We tend to choose a millisecond which is like plucking a drop of water from a gushing river. To make matters worse, we know for certain that information does not transmit instantaneously, the speed of light is finite. The distance across this nebula is probably many light-years. To put it on something closer to human scale: the distance between San Francisco and New York at the speed of light is 14 milliseconds, which is a long time in a computer! Now add in a global footprint. The latency, round trip, from SF to Amsterdam can be as much as 200ms.
  11. In-memory BigTable lookups –data replicated in two in-memory tables –issue requests for 1000 keys spread across 100 tablets –measure elapsed time until data for last key arrives
  12. In-memory BigTable lookups –data replicated in two in-memory tables –issue requests for 1000 keys spread across 100 tablets –measure elapsed time until data for last key arrives
  13. And…more importantly…when?
  14. They built a tool called basho_bench that’s designed for testing out distributed, key-value stores. It allows users to specify options such as their key distribution, values, etc. All of our tests used binary representations as integers for keys, and pseudorandom, un-compressible data for values. In our testing, load generation was spread across three nodes, with one node also acting as a test coordinator. There were 256 virtual clients spread across said 3 nodes. All benchmarks were run with {mode, max}, a worst case scenario for load generation. On connection termination, the client was configured to immediately reconnect, and retry the op. The benchmark used the protocol buffers client, which maintains a long-lived connection to the Riak cluster. In order to enable us to reason about an elastic cluster, we added a new driver operation, reconnect. In every one of our tests, 1/10000 operations per client driver was going to result in reconnecting a new node. Each of our instances were of the type n1-standard-16 deployed in the us-central1-f zone. The instances themselves were running the image ‘backports-debian-7-wheezy-v20140904’ All Riak nodes were deployed in the same network. Network load balancing was used to distribute the traffic amongst the Riak nodes, with health checking doing a /ping on the HTTP interface with default healthcheck intervals.
  15. One of the benefits of distributed, Dynamo databases is that cluster expansion is relatively easy. Often times, unexpected load on traditional databases leaves customers, and engineers in a crux, where the entire system is unavailable. Upgrading, and expanding hardware to said databases is typically a tenous, multi-hour offere operation. In this test, we show the effects of taking a fully loaded cluster of 6 nodes, and growing it by 3 nodes, 180 seconds after we started the test. As you can see in this test, 5 minutes after cluster expansion was initiated, an increased throughput of 27% was realized. On the other hand, update latency took slightly longer to converge, as that was based on rebalancing the Riak_api, and protocol buffers coordination load across the rest of the cluster. During the entire rebalancing period, median latency slightly increased, but handoffs can be throttled, and fewer nodes can be added in a single handoff claimaint handoff quanta, to make this process have fewer side effects.
  16. Node failure is a normal part of life for operators today. This is really where Riak shines. We started the test, and 90 seconds afterwards, we killed 1 of 9 nodes by prompting a forced, immediate shutdown of Riak through a pkill. After 420 seconds, an operator initiated force-remove was activated, and 2100 seconds later, the cluster had converged. There was only one operation that actually returned in an error, unfortunately that didn’t show up on the graph. The rest of the operations immediately retried, and were successful. Realistically, convergence could have taken up to 2 seconds, given that’s how long Google’s default healthcheck window takes. Node failure is simply a non-event in a properly built, and planned Riak cluster.
  17. Reduce complexity with integrated NoSQL databases, caching, in-memory analytics, and search components Enhance high availability and fault tolerance across components Integrate real-time analytics with Apache Spark and Riak KV Increase application performance with integrated Redis caching and Riak KV Optimize search with Apache Solr and Riak KV integration
  18. Xfinity Run app on iOS or Android and program television remotely User Profile - Stored as JSON document Metadata – do you have rights to record? Non-trivial drop in calls to support center ~80%