SlideShare a Scribd company logo
Introducing Venice
A Derived Data Store for Batch, Streaming & Lambda
Architectures
Jeff Weiner
Chief Executive Officer
Felix GV
Engineer
Yan Yan
Engineer
Today’s
Agenda
Introducing Venice
2:55 Intro
3:05 Venice
3:10 Architecture
3:20 Hybrid Stores
3:25 Conclusion
3:30 Q&A
Intro
Primary & Derived Data, Data Lifecycle, Voldemort, Venice
Kinds of Data
• Source of Truth
• Example use case:
• Profile
• Example systems:
• SQL
• Document Stores
• K-V Stores
Primary Data Derived Data
• Derived from computing primary data
• Example use case:
• People You May Know
• Example systems:
• Search Indices
• Graph Databases
• K-V Stores
Data Lifecycle
Apps
Events
Buffer
Offline
Storage
Batch
Jobs
Online
Storage
Data Lifecycle
Apps
Kafka
HDFS
Pig,
Hive,
Spark…
…
Voldemort
The data store who must not be named
Overview
Voldemort Read-Only
• Generates binary files on Hadoop
• Bulk loads data from Hadoop
• (in the background)
• Swaps new data when ready
• Keeps last dataset as a backup
• Allows quick rollbacks
Scale
Voldemort Read-Only
• At LinkedIn:
• ~1000 nodes
• > 500 stores
• ~ 1 PB of SSD storage
• > 240 TB refreshed / day
• ~ 500K queries / second
Data Lifecycle
Apps
Events
Buffer
Offline
Storage
Batch
Jobs
Online
Storage
Data Lifecycle
Today
Apps
Events
Buffer
Offline
Storage
Batch
Jobs
Online
Storage
Stream
Processing
How can we serve both
batch and stream data?
Lambda Architecture
Stream
Processing
Speed
Layer
Batch
Processing
Bulk
Store
App
Kafka
Hadoop
Downsides
Lambda Architecture
• Read path limited by:
• Slowest of two systems
• Least available of two systems
• Extra application complexity
Lambda Architecture, v2
Stream
Processing
Batch
Processing
App
Kafka
Hadoop
Design Goals, API, Features, Scale, Tradeoffs
Design Goals
Venice
• To replace Voldemort Read-Only
• Drop-in replacement
• More efficient
• More resilient
• More operable
• To enable new use cases “as a
service”
• Nearline derived data
• Lambda Architecture
Read/Write API
Venice
• Derived data K-V store
• Single Get
• Batch Get
• High throughput ingestion from:
• Hadoop
• Samza
• Or both (hybrid)
Features
Venice
• Dataset versioning
• Same semantics as Voldemort RO
• Bulk loads data in the background
• Swapped in when ready
• Quick rollback
Features
Venice
• Avro schema evolution
• Service discovery via D2
• Helix cluster management
• Fully automatic replica placement
• Cluster expansion
• Self-healing
• Rack-awareness
Scale
Venice
• Large scale
• Multi-Datacenter
• Multi-Cluster
• Run “as a service”
• Self-service onboarding
• Each cluster is multi-tenant
• Resource isolation
Tradeoffs
Venice
• All writes go through Kafka
• Scalable
• Burst tolerant
• Asynchronous
• No “read your writes” semantics
Architecture
Components, Global Replication, Kafka Usage
Components
Architecture
• Server Processes
• Storage Node
• Router
• Controller
• Libraries
• Client
• Hadoop to Venice Push Job
• Samza System Producer
Storage
Node
Venice Components
Router
Samza
Client
Push JobHadoop
Controller
Global Replication
Architecture
• In Voldemort RO:
• Each server pulls replicas redundantly
• Waste of WAN bandwidth
Global Replication
Single replica pushed across the WAN
Push JobHadoop
Mirror
Maker Storage
Nodes
DC 3DC 2
DC 1Source DC
Many replicas consumed locally
Global Replication
Architecture
• In Venice:
• Only one replica pushed across the
WAN
• ~ 40% faster push time
Metadata Replication
Architecture
• Admin operations performed on
parent
• Store creation/deletion
• Schema evolution
• Quota changes, etc.
• Metadata replicated via “admin topic”
• Resilient to transient DC failures
Kafka Usage
Architecture
• One topic per store-version
• Kafka is fully managed by the
controller
• Dynamic topic creation/deletion
• Infinite retention
Step 1/3: Steady State, In-between Bulkloads
RouterStore
v7
Data Source Kafka Topics Venice Processes
Hadoop
Store
v6
Not consuming,
unless restoring
a failed replica.
Step 2/3: Offline Bulkload Into New Store-Version
RouterStore
v7
Data Source Kafka Topics Venice Processes
Hadoop Store
v8
Store
v6
Push Job
Step 3/3: Bulkload Finished, Router Swaps to New
Version
RouterStore
v7
Data Source Kafka Topics Venice Processes
Hadoop Store
v8
Store
v6
Push Job
Hybrid Stores
Overview, Data Merging, Usage Patterns
Overview
Hybrid Store
• Hybrid Stores aim to
• Merge batch and streaming data
• Better read path performance than Lambda
Arch.
• Minimize application complexity
Data Merge
Hybrid Store
• Write-time merge
• All writes go through Kafka
• Hadoop writes into store-version topics
• Samza writes into a Real-Time Buffer topic
(RTB)
• The RTB gets replayed into store-version topics
Step 1/4: Steady State, In-between Bulkloads
RouterSamza Store
v7
Data Sources Kafka Topics Venice Processes
Hadoop
Step 2/4: Offline Bulkload Into New Store-Version
RouterSamza Store
v7
Data Sources Kafka Topics Venice Processes
Hadoop Store
v8
Push Job
Step 3/4: Bulkload Finished, Start Buffer Replay
RouterSamza Store
v7
Data Sources Kafka Topics Venice Processes
Hadoop Store
v8
Push Job
Step 4/4: Replay Caught Up, Router Swaps to New
Version
RouterSamza Store
v7
Data Sources Kafka Topics Venice Processes
Store
v8
Hadoop
Usage Patterns
Hybrid Store
• Offline Source
• Traditional Hadoop job
• Samza “reprocessing” job
• Nearline Source
• Overwrite same keys
• Write into different keys
Conclusion
Production Status, Killing Voldemort
Production Status
Conclusion
• Venice is running in production
• Batch stores since late 2016
• Hybrid stores since September 2017
Killing Voldemort
Conclusion
• Migration of Voldemort RO to Venice
• Tooling complete
• Seamless
• Starting now
Thank you
Introducing Venice - Strata NYC 2017

More Related Content

What's hot

Membase Meetup 2010
Membase Meetup 2010Membase Meetup 2010
Membase Meetup 2010
Membase
 
Bootstrap SaaS startup using Open Source Tools
Bootstrap SaaS startup using Open Source ToolsBootstrap SaaS startup using Open Source Tools
Bootstrap SaaS startup using Open Source Tools
botsplash.com
 
hbaseconasia2017: HareQL:快速HBase查詢工具的發展過程
hbaseconasia2017: HareQL:快速HBase查詢工具的發展過程hbaseconasia2017: HareQL:快速HBase查詢工具的發展過程
hbaseconasia2017: HareQL:快速HBase查詢工具的發展過程
HBaseCon
 
HBaseConAsia2018 Keynote1: Apache HBase Project Status
HBaseConAsia2018 Keynote1: Apache HBase Project StatusHBaseConAsia2018 Keynote1: Apache HBase Project Status
HBaseConAsia2018 Keynote1: Apache HBase Project Status
Michael Stack
 
Application Development with Apache Cassandra as a Service
Application Development with Apache Cassandra as a ServiceApplication Development with Apache Cassandra as a Service
Application Development with Apache Cassandra as a Service
WSO2
 
What database
What databaseWhat database
What database
Regunath B
 
The Future of Hadoop by Arun Murthy, PMC Apache Hadoop & Cofounder Hortonworks
The Future of Hadoop by Arun Murthy, PMC Apache Hadoop & Cofounder HortonworksThe Future of Hadoop by Arun Murthy, PMC Apache Hadoop & Cofounder Hortonworks
The Future of Hadoop by Arun Murthy, PMC Apache Hadoop & Cofounder Hortonworks
Data Con LA
 
What is Change Data Capture (CDC) and Why is it Important?
What is Change Data Capture (CDC) and Why is it Important?What is Change Data Capture (CDC) and Why is it Important?
What is Change Data Capture (CDC) and Why is it Important?
FlyData Inc.
 
Column and hadoop
Column and hadoopColumn and hadoop
Column and hadoop
Alex Jiang
 
HBaseCon2017 Apache HBase at Didi
HBaseCon2017 Apache HBase at DidiHBaseCon2017 Apache HBase at Didi
HBaseCon2017 Apache HBase at Didi
HBaseCon
 
HBaseConAsia2018 Track3-3: HBase at China Life Insurance
HBaseConAsia2018 Track3-3: HBase at China Life InsuranceHBaseConAsia2018 Track3-3: HBase at China Life Insurance
HBaseConAsia2018 Track3-3: HBase at China Life Insurance
Michael Stack
 
How Alibaba Cloud scaled ApsaraDB with MariaDB MaxScale
How Alibaba Cloud scaled ApsaraDB with MariaDB MaxScaleHow Alibaba Cloud scaled ApsaraDB with MariaDB MaxScale
How Alibaba Cloud scaled ApsaraDB with MariaDB MaxScale
MariaDB plc
 
Hello, Enterprise! Meet Presto. (Presto Boston Meetup 10062015)
Hello, Enterprise! Meet Presto. (Presto Boston Meetup 10062015)Hello, Enterprise! Meet Presto. (Presto Boston Meetup 10062015)
Hello, Enterprise! Meet Presto. (Presto Boston Meetup 10062015)
Matt Fuller
 
HBaseConAsia2018 Track3-2: HBase at China Telecom
HBaseConAsia2018 Track3-2:  HBase at China TelecomHBaseConAsia2018 Track3-2:  HBase at China Telecom
HBaseConAsia2018 Track3-2: HBase at China Telecom
Michael Stack
 
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
DataStax
 
ClustrixDB: how distributed databases scale out
ClustrixDB: how distributed databases scale outClustrixDB: how distributed databases scale out
ClustrixDB: how distributed databases scale out
MariaDB plc
 
Workshop - How to benchmark your database
Workshop - How to benchmark your databaseWorkshop - How to benchmark your database
Workshop - How to benchmark your database
ScyllaDB
 
Software defined storage real or bs-2014
Software defined storage real or bs-2014Software defined storage real or bs-2014
Software defined storage real or bs-2014
Howard Marks
 
Streaming all over the world Real life use cases with Kafka Streams
Streaming all over the world  Real life use cases with Kafka StreamsStreaming all over the world  Real life use cases with Kafka Streams
Streaming all over the world Real life use cases with Kafka Streams
confluent
 
Webseminar: MariaDB Enterprise und MariaDB Enterprise Cluster
Webseminar: MariaDB Enterprise und MariaDB Enterprise ClusterWebseminar: MariaDB Enterprise und MariaDB Enterprise Cluster
Webseminar: MariaDB Enterprise und MariaDB Enterprise Cluster
MariaDB Corporation
 

What's hot (20)

Membase Meetup 2010
Membase Meetup 2010Membase Meetup 2010
Membase Meetup 2010
 
Bootstrap SaaS startup using Open Source Tools
Bootstrap SaaS startup using Open Source ToolsBootstrap SaaS startup using Open Source Tools
Bootstrap SaaS startup using Open Source Tools
 
hbaseconasia2017: HareQL:快速HBase查詢工具的發展過程
hbaseconasia2017: HareQL:快速HBase查詢工具的發展過程hbaseconasia2017: HareQL:快速HBase查詢工具的發展過程
hbaseconasia2017: HareQL:快速HBase查詢工具的發展過程
 
HBaseConAsia2018 Keynote1: Apache HBase Project Status
HBaseConAsia2018 Keynote1: Apache HBase Project StatusHBaseConAsia2018 Keynote1: Apache HBase Project Status
HBaseConAsia2018 Keynote1: Apache HBase Project Status
 
Application Development with Apache Cassandra as a Service
Application Development with Apache Cassandra as a ServiceApplication Development with Apache Cassandra as a Service
Application Development with Apache Cassandra as a Service
 
What database
What databaseWhat database
What database
 
The Future of Hadoop by Arun Murthy, PMC Apache Hadoop & Cofounder Hortonworks
The Future of Hadoop by Arun Murthy, PMC Apache Hadoop & Cofounder HortonworksThe Future of Hadoop by Arun Murthy, PMC Apache Hadoop & Cofounder Hortonworks
The Future of Hadoop by Arun Murthy, PMC Apache Hadoop & Cofounder Hortonworks
 
What is Change Data Capture (CDC) and Why is it Important?
What is Change Data Capture (CDC) and Why is it Important?What is Change Data Capture (CDC) and Why is it Important?
What is Change Data Capture (CDC) and Why is it Important?
 
Column and hadoop
Column and hadoopColumn and hadoop
Column and hadoop
 
HBaseCon2017 Apache HBase at Didi
HBaseCon2017 Apache HBase at DidiHBaseCon2017 Apache HBase at Didi
HBaseCon2017 Apache HBase at Didi
 
HBaseConAsia2018 Track3-3: HBase at China Life Insurance
HBaseConAsia2018 Track3-3: HBase at China Life InsuranceHBaseConAsia2018 Track3-3: HBase at China Life Insurance
HBaseConAsia2018 Track3-3: HBase at China Life Insurance
 
How Alibaba Cloud scaled ApsaraDB with MariaDB MaxScale
How Alibaba Cloud scaled ApsaraDB with MariaDB MaxScaleHow Alibaba Cloud scaled ApsaraDB with MariaDB MaxScale
How Alibaba Cloud scaled ApsaraDB with MariaDB MaxScale
 
Hello, Enterprise! Meet Presto. (Presto Boston Meetup 10062015)
Hello, Enterprise! Meet Presto. (Presto Boston Meetup 10062015)Hello, Enterprise! Meet Presto. (Presto Boston Meetup 10062015)
Hello, Enterprise! Meet Presto. (Presto Boston Meetup 10062015)
 
HBaseConAsia2018 Track3-2: HBase at China Telecom
HBaseConAsia2018 Track3-2:  HBase at China TelecomHBaseConAsia2018 Track3-2:  HBase at China Telecom
HBaseConAsia2018 Track3-2: HBase at China Telecom
 
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
 
ClustrixDB: how distributed databases scale out
ClustrixDB: how distributed databases scale outClustrixDB: how distributed databases scale out
ClustrixDB: how distributed databases scale out
 
Workshop - How to benchmark your database
Workshop - How to benchmark your databaseWorkshop - How to benchmark your database
Workshop - How to benchmark your database
 
Software defined storage real or bs-2014
Software defined storage real or bs-2014Software defined storage real or bs-2014
Software defined storage real or bs-2014
 
Streaming all over the world Real life use cases with Kafka Streams
Streaming all over the world  Real life use cases with Kafka StreamsStreaming all over the world  Real life use cases with Kafka Streams
Streaming all over the world Real life use cases with Kafka Streams
 
Webseminar: MariaDB Enterprise und MariaDB Enterprise Cluster
Webseminar: MariaDB Enterprise und MariaDB Enterprise ClusterWebseminar: MariaDB Enterprise und MariaDB Enterprise Cluster
Webseminar: MariaDB Enterprise und MariaDB Enterprise Cluster
 

Similar to Introducing Venice - Strata NYC 2017

Introducing Venice
Introducing VeniceIntroducing Venice
Introducing Venice
Yan Yan
 
A Tale of 2 Systems
A Tale of 2 SystemsA Tale of 2 Systems
A Tale of 2 Systems
David Newman
 
Stream processing on mobile networks
Stream processing on mobile networksStream processing on mobile networks
Stream processing on mobile networks
pbelko82
 
Trend Micro Big Data Platform and Apache Bigtop
Trend Micro Big Data Platform and Apache BigtopTrend Micro Big Data Platform and Apache Bigtop
Trend Micro Big Data Platform and Apache Bigtop
Evans Ye
 
CouchbasetoHadoop_Matt_Michael_Justin v4
CouchbasetoHadoop_Matt_Michael_Justin v4CouchbasetoHadoop_Matt_Michael_Justin v4
CouchbasetoHadoop_Matt_Michael_Justin v4
Michael Kehoe
 
Petabyte Scale Object Storage Service Using Ceph in A Private Cloud - Varada ...
Petabyte Scale Object Storage Service Using Ceph in A Private Cloud - Varada ...Petabyte Scale Object Storage Service Using Ceph in A Private Cloud - Varada ...
Petabyte Scale Object Storage Service Using Ceph in A Private Cloud - Varada ...
Ceph Community
 
OpenStack and Windows
OpenStack and WindowsOpenStack and Windows
OpenStack and Windows
Alessandro Pilotti
 
Real time fraud detection at 1+M scale on hadoop stack
Real time fraud detection at 1+M scale on hadoop stackReal time fraud detection at 1+M scale on hadoop stack
Real time fraud detection at 1+M scale on hadoop stack
DataWorks Summit/Hadoop Summit
 
Building a derived data store using Kafka
Building a derived data store using KafkaBuilding a derived data store using Kafka
Building a derived data store using Kafka
Venu Ryali
 
ActiveMQ 5.9.x new features
ActiveMQ 5.9.x new featuresActiveMQ 5.9.x new features
ActiveMQ 5.9.x new features
Christian Posta
 
KeyValue Stores
KeyValue StoresKeyValue Stores
KeyValue Stores
Mauro Pompilio
 
Speed Up Your Queries with Hive LLAP Engine on Hadoop or in the Cloud
Speed Up Your Queries with Hive LLAP Engine on Hadoop or in the CloudSpeed Up Your Queries with Hive LLAP Engine on Hadoop or in the Cloud
Speed Up Your Queries with Hive LLAP Engine on Hadoop or in the Cloud
gluent.
 
Apache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - VerisignApache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - Verisign
Michael Noll
 
Storage Requirements and Options for Running Spark on Kubernetes
Storage Requirements and Options for Running Spark on KubernetesStorage Requirements and Options for Running Spark on Kubernetes
Storage Requirements and Options for Running Spark on Kubernetes
DataWorks Summit
 
MariaDB on Docker
MariaDB on DockerMariaDB on Docker
MariaDB on Docker
MariaDB plc
 
Large-scale Web Apps @ Pinterest
Large-scale Web Apps @ PinterestLarge-scale Web Apps @ Pinterest
Large-scale Web Apps @ Pinterest
HBaseCon
 
State of the Container Ecosystem
State of the Container EcosystemState of the Container Ecosystem
State of the Container Ecosystem
Vinay Rao
 
Getting started with MariaDB with Docker
Getting started with MariaDB with DockerGetting started with MariaDB with Docker
Getting started with MariaDB with Docker
MariaDB plc
 
Apache hadoop technology : Beginners
Apache hadoop technology : BeginnersApache hadoop technology : Beginners
Apache hadoop technology : Beginners
Shweta Patnaik
 
Apache hadoop technology : Beginners
Apache hadoop technology : BeginnersApache hadoop technology : Beginners
Apache hadoop technology : Beginners
Shweta Patnaik
 

Similar to Introducing Venice - Strata NYC 2017 (20)

Introducing Venice
Introducing VeniceIntroducing Venice
Introducing Venice
 
A Tale of 2 Systems
A Tale of 2 SystemsA Tale of 2 Systems
A Tale of 2 Systems
 
Stream processing on mobile networks
Stream processing on mobile networksStream processing on mobile networks
Stream processing on mobile networks
 
Trend Micro Big Data Platform and Apache Bigtop
Trend Micro Big Data Platform and Apache BigtopTrend Micro Big Data Platform and Apache Bigtop
Trend Micro Big Data Platform and Apache Bigtop
 
CouchbasetoHadoop_Matt_Michael_Justin v4
CouchbasetoHadoop_Matt_Michael_Justin v4CouchbasetoHadoop_Matt_Michael_Justin v4
CouchbasetoHadoop_Matt_Michael_Justin v4
 
Petabyte Scale Object Storage Service Using Ceph in A Private Cloud - Varada ...
Petabyte Scale Object Storage Service Using Ceph in A Private Cloud - Varada ...Petabyte Scale Object Storage Service Using Ceph in A Private Cloud - Varada ...
Petabyte Scale Object Storage Service Using Ceph in A Private Cloud - Varada ...
 
OpenStack and Windows
OpenStack and WindowsOpenStack and Windows
OpenStack and Windows
 
Real time fraud detection at 1+M scale on hadoop stack
Real time fraud detection at 1+M scale on hadoop stackReal time fraud detection at 1+M scale on hadoop stack
Real time fraud detection at 1+M scale on hadoop stack
 
Building a derived data store using Kafka
Building a derived data store using KafkaBuilding a derived data store using Kafka
Building a derived data store using Kafka
 
ActiveMQ 5.9.x new features
ActiveMQ 5.9.x new featuresActiveMQ 5.9.x new features
ActiveMQ 5.9.x new features
 
KeyValue Stores
KeyValue StoresKeyValue Stores
KeyValue Stores
 
Speed Up Your Queries with Hive LLAP Engine on Hadoop or in the Cloud
Speed Up Your Queries with Hive LLAP Engine on Hadoop or in the CloudSpeed Up Your Queries with Hive LLAP Engine on Hadoop or in the Cloud
Speed Up Your Queries with Hive LLAP Engine on Hadoop or in the Cloud
 
Apache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - VerisignApache Kafka 0.8 basic training - Verisign
Apache Kafka 0.8 basic training - Verisign
 
Storage Requirements and Options for Running Spark on Kubernetes
Storage Requirements and Options for Running Spark on KubernetesStorage Requirements and Options for Running Spark on Kubernetes
Storage Requirements and Options for Running Spark on Kubernetes
 
MariaDB on Docker
MariaDB on DockerMariaDB on Docker
MariaDB on Docker
 
Large-scale Web Apps @ Pinterest
Large-scale Web Apps @ PinterestLarge-scale Web Apps @ Pinterest
Large-scale Web Apps @ Pinterest
 
State of the Container Ecosystem
State of the Container EcosystemState of the Container Ecosystem
State of the Container Ecosystem
 
Getting started with MariaDB with Docker
Getting started with MariaDB with DockerGetting started with MariaDB with Docker
Getting started with MariaDB with Docker
 
Apache hadoop technology : Beginners
Apache hadoop technology : BeginnersApache hadoop technology : Beginners
Apache hadoop technology : Beginners
 
Apache hadoop technology : Beginners
Apache hadoop technology : BeginnersApache hadoop technology : Beginners
Apache hadoop technology : Beginners
 

Recently uploaded

原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
ydzowc
 
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
ecqow
 
Mechatronics material . Mechanical engineering
Mechatronics material . Mechanical engineeringMechatronics material . Mechanical engineering
Mechatronics material . Mechanical engineering
sachin chaurasia
 
Software Engineering and Project Management - Introduction, Modeling Concepts...
Software Engineering and Project Management - Introduction, Modeling Concepts...Software Engineering and Project Management - Introduction, Modeling Concepts...
Software Engineering and Project Management - Introduction, Modeling Concepts...
Prakhyath Rai
 
5G Radio Network Througput Problem Analysis HCIA.pdf
5G Radio Network Througput Problem Analysis HCIA.pdf5G Radio Network Througput Problem Analysis HCIA.pdf
5G Radio Network Througput Problem Analysis HCIA.pdf
AlvianRamadhani5
 
Operational amplifiers and oscillators notes
Operational amplifiers and oscillators notesOperational amplifiers and oscillators notes
Operational amplifiers and oscillators notes
ShachiPGowda
 
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
PriyankaKilaniya
 
5g-5G SA reg. -standalone-access-registration.pdf
5g-5G SA reg. -standalone-access-registration.pdf5g-5G SA reg. -standalone-access-registration.pdf
5g-5G SA reg. -standalone-access-registration.pdf
devtomar25
 
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by AnantLLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
Anant Corporation
 
Pressure Relief valve used in flow line to release the over pressure at our d...
Pressure Relief valve used in flow line to release the over pressure at our d...Pressure Relief valve used in flow line to release the over pressure at our d...
Pressure Relief valve used in flow line to release the over pressure at our d...
cannyengineerings
 
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Sinan KOZAK
 
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
Gino153088
 
VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...
VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...
VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...
PIMR BHOPAL
 
Bayesian Decision Theory details ML.pptx
Bayesian Decision Theory details ML.pptxBayesian Decision Theory details ML.pptx
Bayesian Decision Theory details ML.pptx
amrita chaturvedi
 
NATURAL DEEP EUTECTIC SOLVENTS AS ANTI-FREEZING AGENT
NATURAL DEEP EUTECTIC SOLVENTS AS ANTI-FREEZING AGENTNATURAL DEEP EUTECTIC SOLVENTS AS ANTI-FREEZING AGENT
NATURAL DEEP EUTECTIC SOLVENTS AS ANTI-FREEZING AGENT
Addu25809
 
Applications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdfApplications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdf
Atif Razi
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
uqyfuc
 
SCALING OF MOS CIRCUITS m .pptx
SCALING OF MOS CIRCUITS m                 .pptxSCALING OF MOS CIRCUITS m                 .pptx
SCALING OF MOS CIRCUITS m .pptx
harshapolam10
 
132/33KV substation case study Presentation
132/33KV substation case study Presentation132/33KV substation case study Presentation
132/33KV substation case study Presentation
kandramariana6
 
ITSM Integration with MuleSoft.pptx
ITSM  Integration with MuleSoft.pptxITSM  Integration with MuleSoft.pptx
ITSM Integration with MuleSoft.pptx
VANDANAMOHANGOUDA
 

Recently uploaded (20)

原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
 
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
一比一原版(CalArts毕业证)加利福尼亚艺术学院毕业证如何办理
 
Mechatronics material . Mechanical engineering
Mechatronics material . Mechanical engineeringMechatronics material . Mechanical engineering
Mechatronics material . Mechanical engineering
 
Software Engineering and Project Management - Introduction, Modeling Concepts...
Software Engineering and Project Management - Introduction, Modeling Concepts...Software Engineering and Project Management - Introduction, Modeling Concepts...
Software Engineering and Project Management - Introduction, Modeling Concepts...
 
5G Radio Network Througput Problem Analysis HCIA.pdf
5G Radio Network Througput Problem Analysis HCIA.pdf5G Radio Network Througput Problem Analysis HCIA.pdf
5G Radio Network Througput Problem Analysis HCIA.pdf
 
Operational amplifiers and oscillators notes
Operational amplifiers and oscillators notesOperational amplifiers and oscillators notes
Operational amplifiers and oscillators notes
 
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
 
5g-5G SA reg. -standalone-access-registration.pdf
5g-5G SA reg. -standalone-access-registration.pdf5g-5G SA reg. -standalone-access-registration.pdf
5g-5G SA reg. -standalone-access-registration.pdf
 
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by AnantLLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
LLM Fine Tuning with QLoRA Cassandra Lunch 4, presented by Anant
 
Pressure Relief valve used in flow line to release the over pressure at our d...
Pressure Relief valve used in flow line to release the over pressure at our d...Pressure Relief valve used in flow line to release the over pressure at our d...
Pressure Relief valve used in flow line to release the over pressure at our d...
 
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
Optimizing Gradle Builds - Gradle DPE Tour Berlin 2024
 
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
 
VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...
VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...
VARIABLE FREQUENCY DRIVE. VFDs are widely used in industrial applications for...
 
Bayesian Decision Theory details ML.pptx
Bayesian Decision Theory details ML.pptxBayesian Decision Theory details ML.pptx
Bayesian Decision Theory details ML.pptx
 
NATURAL DEEP EUTECTIC SOLVENTS AS ANTI-FREEZING AGENT
NATURAL DEEP EUTECTIC SOLVENTS AS ANTI-FREEZING AGENTNATURAL DEEP EUTECTIC SOLVENTS AS ANTI-FREEZING AGENT
NATURAL DEEP EUTECTIC SOLVENTS AS ANTI-FREEZING AGENT
 
Applications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdfApplications of artificial Intelligence in Mechanical Engineering.pdf
Applications of artificial Intelligence in Mechanical Engineering.pdf
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
SCALING OF MOS CIRCUITS m .pptx
SCALING OF MOS CIRCUITS m                 .pptxSCALING OF MOS CIRCUITS m                 .pptx
SCALING OF MOS CIRCUITS m .pptx
 
132/33KV substation case study Presentation
132/33KV substation case study Presentation132/33KV substation case study Presentation
132/33KV substation case study Presentation
 
ITSM Integration with MuleSoft.pptx
ITSM  Integration with MuleSoft.pptxITSM  Integration with MuleSoft.pptx
ITSM Integration with MuleSoft.pptx
 

Introducing Venice - Strata NYC 2017

Editor's Notes

  1. The first feature I want to introduce is data versioning. Inside in Venice, we keep multiple versions for your data, once a user start to ingest a new offline data set, that data is being written in the background without impacting the current data version which is serving read requests. When this version is ready to serve, Venice will do an atomic swap to let all read requests hit this new version instead. The whole process is almost transparent to user, the only thing user need to do is just start the ingestion. Then Venice will help you to manage everything. Of course, in case that you find your data have any issue, you could also quickly rollback, just tell Venice which version you wanna to use.
  2. So in terms of scalability, there are two kinds of meaning of scalability in Venice. The first one is we have to support large scale of machine and data. So Venice is a system running in multi-datacenter across continents. And could also run multiple clusters in one physical datacenter in order to get better resource utilization for different use cases. Example?Secondly, we want to run Venice as a service which means Venice could support large scale of users. This is why we provide the self-service onboarding with our internal cloud management platform to let user manage their store without our SRE/DEV. As each cluster is multi-tenant Env, which means users are going to share some resources like cpu and storage, so we introduced several ways to do the resource isolation like qps quota, storage quota and also multi-cluster to prevent user being impacted by each others.
  3. Thanks Felix,I am Yan from Venice team, I am going to give you guys a brief introduction of Venice our new generation derived data platform, with highlighting our design goals, API and main features we have, the scalability that Venice support to and some tradeoffs we made when we designed that system.
  4. So let’s start from design goals, as Venice is the successor of Voldemort read-only. So obviously it should be able to take over everything thing that Voldemort read-only has been doing. But more efficient, more resilient and more operable. And one more important thing here is we wanna make Venice as a drop-in replacement of Voldemort. Caz we have hundreds of users are living on Voldemort and all of their data, $$$ will be moved to Venice eventually. Caz you could expect migrating that much of data is not easy so This is why we we have to make the migration as smooth as possible.Another main goal of Venice is in addition to offline derived data, we could also serve for near line derived data and should have the ability to merge offline and near-line data together to give our user a unified view of them in one system.
  5. All right, after we are clear on the goals, let’s see what APIs and features Venice have to achieve our goals. On the read path, actually you could think of Venice as a distributed key-value store, so obviousely the single get and batch get API are required.On the write path, a high throughput ingestion from both Hadoop and Samza will keep our system efficient, caz we have hundreds of Terabytes data get to be written into system every day. In Venice we provide an asynchronous way to write data from data source to Venice, I will explain the details when we talk about trade offs.
  6. The first feature I want to introduce is data versioning. Inside in Venice, we keep multiple versions for your data, once a user start to ingest a new offline data set, that data is being written in the background without impacting the current data version which is serving read requests. When this version is ready to serve, Venice will do an atomic swap to let all read requests hit this new version instead. The whole process is almost transparent to user, the only thing user need to do is just start the ingestion. Then Venice will help you to manage everything. Of course, in case that you find your data have any issue, you could also quickly rollback, just tell Venice which version you wanna to use.
  7. In this slides I want to talk about 3 new features in Venice which are all aimed for solving the pain points in Voldemort we met.1. At first, the Avro schema evolution allow user to update the schema of their data instead of creating a new store, which was what did in Voldemort.2. The second thing is Dynamic service discovery, we build our own service discovery feature on top of D2 which is a dynamic discovery framework opensourced by Linkedin. So on client side, user do not need to specify which endpoint they want to talk to, instead, Venice will find the proper server for you based on the store you are using. And in case of any server failure, Venice will give you another server as the replacement. So your application could focus on the business logic you want to solve. . Another benefit brought by this feature is No extra config needed if you migrate from voldemort to Venice.3. We also introduced Helix which is the open sourced cluster management framework widely used in Linkedin. It provides the ability to do the fully automatic and rack-ware data replica placement. Other than that we implement the further features on top of this framework, which is zero-downtime cluster expansion and upgrading, this is a big improvement on Voldemort in terms of availability, it means user could continue their data ingestion during our maintenance period which could normally take 2-3 hours each time.
  8. So in terms of scalability, there are two kinds of meaning of scalability in Venice. The first one is we have to support large scale of machine and data. So Venice is a system running in multi-datacenter across continents. And could also run multiple clusters in one physical datacenter in order to get better resource utilization for different use cases. Example?Secondly, we want to run Venice as a service which means Venice could support large scale of users. This is why we provide the self-service onboarding with our internal cloud management platform to let user manage their store without our SRE/DEV. As each cluster is multi-tenant Env, which means users are going to share some resources like cpu and storage, so we introduced several ways to do the resource isolation like qps quota, storage quota and also multi-cluster to prevent user being impacted by each others.
  9. So tradeoffs, as I said, we need a way to do the high throughput ingestion to keep our system efficient.The main tradeoff we made is how to ingest large amount of data into Venice. Basically we have two options: Fetch data from data source directly or write data into an intermedia then fetch the data from that intermedia asynchronousely.Finally we decided to make all writes go through Kafka, it means we write all data into Kafka at first thus we treat Kafka as the source of truth for Venice. As you know Kafka is a scalable message queue could provide good support for high throughput writes. In that case we could accept user’s data as much as possible and as also fast as possible . Remember that we do the bulk load from Hadoop, so we always face the message burst issue, with Kafka we have the ability to be burst tolerant, Caz Kafka persist those messages at first, then Venice consume them gradually to prevent running out of capacity, particually in case of accepting large number of message in a short period.What we paid for that asynchronous push mechanism is in near line cases Venice does not provide “read your writes” semantics. Imaging that your data has been written into Kafka and Venice return that your write succeeds. Now you could not see the data you just write, because normally Venice take several seconds to consume that data then persist locally before make that data visible to client. We think it’s acceptable for most our use cases, and we are also working on some workaround to support read your writes semantics with this push mechanism.
  10. Now I wanna describe the architecture of Venice to help you understand how we implement the features we mentioned above. I’m goanna introduce the main components in Venice and how they interact with each others. Then jump into the global replication which let us be able to sync up the data and metadata across multiple datacenters. At last explain how we use kafka, caz, the way we use kafka is a slightly different from the common case.
  11. So, there are two kinds of components in Venice, we have some processes running on server side like, storage node which is the real host of the dataset, the router is the gateway of our cluster so all of request will hit router first then forward to proper nodes. And we also have the controller who mange the whole cluster.Another kind of component is the library embedded in user’s application. Of course we have the client library to let user read data from Venice. And a H2V push job plugin in azkaban to let user be able to push offline derived data into venice. Regarding to nearline dervicd data, we provide a kinf of samza system produer, so user could push their data from samza job into Venice as well.
  12. This diagram shows how components interact with each others.The blue shapes are Venice components we built and the gray shape are the dependencies we rely on. So you could see at first your data exist on the data sources like Hadoop, and in order to ingest them into Venice, you need to start a new push job and wait it to be completed. Underneath the job, Venice controller will create all essentials for you like a new data version and a new Kafka topic. Beside that Controller will also pick up proper storage nodes to be the real hosts for your data set. Those storage node will consume the data written by your push job parallely from kakfa, and report status to controller regularly. So once controller get enough information and think you data is ready to serve, it will notify routers to use the new data version, after version swap, Now your data is visible to read client.So this is whole lifecycle of a offline push job. For nearline derived data, Felix will give more details later.
  13. As I said Venice is a plant level scale system, so each piece of data must be replicated to multiple datacenters located in different continents.In voldemort, the global replication is each replica in each datacenter will try to read a copy of data from source datacenter, so it every server pulls data redundantly, which eat large oversea bandwidth and slowdown the whole push.
  14. So in Venice we build a new global replication mechanism that the push job write data into kafka located in the source datacenters, then we rely on Kafka mirror maker to replicate each message to all target datacenters. Please note here we only send one copy of data to a remoted datacenter, in order to keep enough replicas, multiple storage nodes consume the same copy of data from local kafka and persist them in local storage enginee.
  15. So with this new global replication mechansism, we savd 40% time spent on the the whole push job. And also reduced the across datacenters bandwidth usage// depends on the replication factor it could be 2 of thrid or half bandwith cost will be saved.
  16. Beside the data replication, we replicated our metadata across multi-datacenters as well. There is a dedicated kafka topic we used to transfer our medata data operations called “Admin topic”. So once you create store in source datacenter, all target data centers will receive this admin message and execute the related operation to create store to keep metadata consistent. In case one entire dc failed, we still have that data in kafka, either in source kafka cluster or target kafka cluster. Once this datacenter is recovered, the admin message will be eventually consumed by Venice running in the recovered datacenter, thus be handled properly by controller in that datacenter. So no manual operation is need to handle datacenter failure and metadata inconsistency.
  17. Unlike most of kafka use cases, we create one topic once a new data version is created and delete that topic once the associate version is retired. And all those topic creation and deletion are dynamic and fully managed by controller. So topic here is no longer a pre-created one with long term life cycle.
  18. Image we already have 2 data versions in your data store, V6 and V7. V7 is the current version serving read requests.
  19. Now you gonna start a new push job, so Venice create V8 for this push
  20. Once the push job succeed, V8 is ready to serve, so what Venice will do is swap the current version from V7 to V8, meanwhile retire the oldest version V6 with deleting the associate kafka topic and data persisted in local storage enginee. So now we still keep 2 versions for you data set but complete one round of data swap. All right that’s all about Venice architecture and offline push job. I want to give it back to Felix to introduce more about our hybrid design. Thank you.