SlideShare a Scribd company logo
1 of 26
Download to read offline
ESPRESSO/Voldemort©2013 LinkedIn Corporation. All Rights Reserved.
Fast Online Access to Massive Offline Data
Software Engineering Conference in Russia
28 October 2016
By Felix GV
©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems
Agenda
▪  Introduction
– High Level Web Architecture
– What is Primary Data and Derived Data?
– What is Voldemort?
▪  Recent Improvements to Voldemort RO
– Cross-DC Bandwidth
– Multi-tenancy
– Performance
▪  How to Get Started?
2
©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems
High Level Web Architecture
Web
Datacenter
Front Ends Mid Tiers Primary
Databases
Derived
Databases
3
©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems
High Level Web Architecture
Web
Datacenter
Front Ends Mid Tiers Queue
Logs Logs Change
Capture
Hadoop
Job
Scheduler
Launch
Jobs
Database
Snapshots
Trigger Derived
Data Refresh
Data
Crunching
ETL
Bulk Load
Derived
Databases
Primary
Databases
4
©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems
What is Primary Data and Derived Data?
Primary Data is “Source of Truth” data:
▪  Users’ profiles, private messages, etc.
▪  Typically requires strong consistency & read-your-write semantics
Derived Data comes from crunching primary data:
▪  “People You May Know”, “Jobs You May Be Interested In”, etc.
▪  Aggregation, Joins, Machine learning
▪  Typically generated offline, in Hadoop
How can we serve derived data back to online apps?
5
©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems
What is Voldemort?
Voldemort is a Distributed Key Value Store with two modes:
▪  Read-Write
–  Random access writes, tunable consistency
▪  Read-Only
–  Bulk-loaded from Hadoop
Can be single DC, or globally distributed.
Pluggable:
▪  Storage Engine (BDB-JE, RocksDB, Read-Only format, etc.)
▪  Serialization (Avro, JSON, Protobuf, Thrift, raw bytes, etc.)
6
©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems
What is Voldemort Read-Only?
Voldemort RO Servers:
▪  Fetch entire datasets from HDFS
▪  Serve key-value read requests
Build and Push job:
▪  Validates store & schema
▪  Triggers MR job
–  MR job partitions data
▪  Triggers server fetches
▪  Swaps new dataset
7
©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems
For Voldemort to die, all pieces must die.
8
©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems
Recent Improvements to Voldemort RO
▪  Cross-DC Bandwidth
– Block-level Compression
– Throttling
▪ Multi-tenancy
– Nuage Integration
– Storage Space Quotas
▪ Performance
– Build and Push Performance
– Client Latency
9
©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems
Voldemort Cross-DC Bandwidth
Voldemort RO among largest users of cross-DC bandwidth at LinkedIn
▪  >100 TB / day ingested across the WAN, every day
We added block-level compression:
▪  Output of BnP’s MR job is compressed (GZIP)
▪  Voldemort servers decompress on the fly
–  CPU cost of decompression deemed negligible
▪  Completely transparent to store owners
▪  ~18% reduction in dataset size
10
©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems
Voldemort Cross-DC Bandwidth
DC1
DC2
DC3
DC1
DC2
DC3
Inbound bandwidth used to look like this:
▪  Very spiky
▪  Each DC was fetching sequentially
▪  Love/hate relationship with Net Ops
Now, with parallel fetching and throttling:
▪  No more spikes
▪  DCs are fetching in parallel
▪  Best friends with Net Ops
11
©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems
Recent Improvements to Voldemort RO
▪  Cross-DC Bandwidth
– Block-level Compression
– Throttling
▪ Multi-tenancy
– Nuage Integration
– Storage Space Quotas
▪ Performance
– Build and Push Performance
– Client Latency
12
©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems
Voldemort Multi-tenancy
Nuage is LinkedIn’s internal (AWS-like) self-service provisioning infra
All new stores at LinkedIn are now created via Nuage
▪  Prevents accidental pushes to the wrong cluster
▪  Store creation in production is now self-service
▪  ~3 stores / week created in production!
13
©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems
Voldemort Multi-tenancy
Storage Space Quotas
▪  Precise storage requirement measured during build phase
▪  Voldemort server validates quota before starting to fetch
▪  The goal is to prevent unexpected growth from killing clusters
LOTS of improvements on admin commands
▪  Stability
▪  Performance
14
©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems
Recent Improvements to Voldemort RO
▪  Cross-DC Bandwidth
– Block-level Compression
– Throttling
▪ Multi-tenancy
– Nuage Integration
– Storage Space Quotas
▪ Performance
– Build and Push Performance
– Client Latency
15
©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems
Build and Push Performance
New datacenter with denser clusters required major BnP refactoring
As a side effect of that rewrite, BnP is also a lot more efficient
▪  Each partition replica is now built only once
▪  The following metrics are reduced (roughly by half) :
–  Number of reduce tasks
–  Amount of shuffle bandwidth
–  Amount of data written to HDFS
Leveraged new datacenter buildout to get rid of duplicate BnP jobs
16
©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems
Build and Push Performance
Delta:
63.2%
reduction
Before:
103 hours / job
After:
38 hours / job
17
©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems
Build and Push Performance
Delta:
31.4%
reduction
Before:
381 jobs / day
After:
261 jobs / day
18
©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems
Build and Push Performance
Delta:
74.4%
reduction
Before:
4.48 years / day
After:
1.15 years / day
19
©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems
Client Latency
Major client/server communication rewrite:
▪  Client and server’s memory footprint reduced by half
▪  Client garbage collection reduced by 80%
▪  Failure detection is more accurate
▪  Solved the stability issues of our highest throughput clients
Major effort to upgrade all clients to the latest version.
20
©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems
Client Latency
Set up:
▪  20 client instances
▪  40 nodes multi-tenant Voldemort cluster
–  >90 stores
–  56K QPS at peak
Metric:
▪  Worst p95/p99 latency from all clients
▪  Units are in milliseconds (“m” mean microseconds)
▪  Old code in pink
▪  New code in green
21
©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems
Client Latency
95th percentile
22
©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems
Client Latency
99th percentile
23
©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems 24
©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems
How to Get Started?
# Get code
git clone https://github.com/voldemort/voldemort
cd voldemort
# Launch Voldemort Servers
./gradlew jar
./bin/voldemort-shell.sh config/readonly_two_nodes_cluster/node0/config &
./bin/voldemort-shell.sh config/readonly_two_nodes_cluster/node1/config &
# Launch Build and Push job
./gradlew bnpJar
./bin/run-bnp.sh <config_file>
25
©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems
Questions?
(We’re hiring!)

More Related Content

What's hot

What's hot (20)

Mike Stonebraker on Designing An Architecture For Real-time Event Processing
Mike Stonebraker on Designing An Architecture For Real-time Event ProcessingMike Stonebraker on Designing An Architecture For Real-time Event Processing
Mike Stonebraker on Designing An Architecture For Real-time Event Processing
 
Introduction to MemSQL
Introduction to MemSQLIntroduction to MemSQL
Introduction to MemSQL
 
Scylla Summit 2018: Adventures in AdTech: Processing 50 Billion User Profiles...
Scylla Summit 2018: Adventures in AdTech: Processing 50 Billion User Profiles...Scylla Summit 2018: Adventures in AdTech: Processing 50 Billion User Profiles...
Scylla Summit 2018: Adventures in AdTech: Processing 50 Billion User Profiles...
 
Scalability truths and serverless architectures
Scalability truths and serverless architecturesScalability truths and serverless architectures
Scalability truths and serverless architectures
 
Scylla Summit 2022: An Odyssey to ScyllaDB and Apache Kafka
Scylla Summit 2022: An Odyssey to ScyllaDB and Apache KafkaScylla Summit 2022: An Odyssey to ScyllaDB and Apache Kafka
Scylla Summit 2022: An Odyssey to ScyllaDB and Apache Kafka
 
How leading financial services organisations are winning with tech
How leading financial services organisations are winning with techHow leading financial services organisations are winning with tech
How leading financial services organisations are winning with tech
 
ClustrixDB: how distributed databases scale out
ClustrixDB: how distributed databases scale outClustrixDB: how distributed databases scale out
ClustrixDB: how distributed databases scale out
 
GridFS: The Perfect Solution for Media Storage
GridFS: The Perfect Solution for Media StorageGridFS: The Perfect Solution for Media Storage
GridFS: The Perfect Solution for Media Storage
 
HBaseCon2017 Splice Machine as a Service: Multi-tenant HBase using DCOS (Meso...
HBaseCon2017 Splice Machine as a Service: Multi-tenant HBase using DCOS (Meso...HBaseCon2017 Splice Machine as a Service: Multi-tenant HBase using DCOS (Meso...
HBaseCon2017 Splice Machine as a Service: Multi-tenant HBase using DCOS (Meso...
 
How DataStax Enterprise and Azure Make Your Apps Scale from Day 1
How DataStax Enterprise and Azure Make Your Apps Scale from Day 1How DataStax Enterprise and Azure Make Your Apps Scale from Day 1
How DataStax Enterprise and Azure Make Your Apps Scale from Day 1
 
An Enterprise Architect's View of MongoDB
An Enterprise Architect's View of MongoDBAn Enterprise Architect's View of MongoDB
An Enterprise Architect's View of MongoDB
 
MongoDB Operations for Developers
MongoDB Operations for DevelopersMongoDB Operations for Developers
MongoDB Operations for Developers
 
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
 
Apache Kafka and the Data Mesh | Ben Stopford and Michael Noll, Confluent
Apache Kafka and the Data Mesh | Ben Stopford and Michael Noll, ConfluentApache Kafka and the Data Mesh | Ben Stopford and Michael Noll, Confluent
Apache Kafka and the Data Mesh | Ben Stopford and Michael Noll, Confluent
 
Infinispan, transactional key value data grid and nosql database
Infinispan, transactional key value data grid and nosql databaseInfinispan, transactional key value data grid and nosql database
Infinispan, transactional key value data grid and nosql database
 
DataStax Enterprise in Practice (Field Notes)
DataStax Enterprise in Practice (Field Notes)DataStax Enterprise in Practice (Field Notes)
DataStax Enterprise in Practice (Field Notes)
 
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...
Billions of Messages in Real Time: Why Paypal & LinkedIn Trust an Engagement ...
 
Infinispan - Galder Zamarreno - October 2010
Infinispan - Galder Zamarreno - October 2010Infinispan - Galder Zamarreno - October 2010
Infinispan - Galder Zamarreno - October 2010
 
Lambda-B-Gone: In-memory Case Study for Faster, Smarter and Simpler Answers
Lambda-B-Gone: In-memory Case Study for Faster, Smarter and Simpler AnswersLambda-B-Gone: In-memory Case Study for Faster, Smarter and Simpler Answers
Lambda-B-Gone: In-memory Case Study for Faster, Smarter and Simpler Answers
 
MongoDB vs Mysql. A devops point of view
MongoDB vs Mysql. A devops point of viewMongoDB vs Mysql. A devops point of view
MongoDB vs Mysql. A devops point of view
 

Viewers also liked

Быстрое прототипирование системы управления БПЛА
Быстрое прототипирование системы управления БПЛАБыстрое прототипирование системы управления БПЛА
Быстрое прототипирование системы управления БПЛА
CEE-SEC(R)
 
Повышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документацииПовышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документации
CEE-SEC(R)
 
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
CEE-SEC(R)
 
Apache Storm: от простого приложения до подробностей реализации
Apache Storm: от простого приложения до подробностей реализацииApache Storm: от простого приложения до подробностей реализации
Apache Storm: от простого приложения до подробностей реализации
CEE-SEC(R)
 
Как развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CIКак развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CI
CEE-SEC(R)
 
Как показать 90 млн картинок и сохранить жизнь диску
Как показать 90 млн картинок и сохранить жизнь дискуКак показать 90 млн картинок и сохранить жизнь диску
Как показать 90 млн картинок и сохранить жизнь диску
CEE-SEC(R)
 
Законы создания IT команд и следствия законов для IT проектов «на пальцах»
Законы создания IT команд и следствия законов для IT проектов «на пальцах»Законы создания IT команд и следствия законов для IT проектов «на пальцах»
Законы создания IT команд и следствия законов для IT проектов «на пальцах»
CEE-SEC(R)
 

Viewers also liked (12)

Помоги ближнему, или Как потоки помогают друг другу
Помоги ближнему, или Как потоки помогают друг другуПомоги ближнему, или Как потоки помогают друг другу
Помоги ближнему, или Как потоки помогают друг другу
 
Быстрое прототипирование системы управления БПЛА
Быстрое прототипирование системы управления БПЛАБыстрое прототипирование системы управления БПЛА
Быстрое прототипирование системы управления БПЛА
 
Повышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документацииПовышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документации
 
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
 
Apache Storm: от простого приложения до подробностей реализации
Apache Storm: от простого приложения до подробностей реализацииApache Storm: от простого приложения до подробностей реализации
Apache Storm: от простого приложения до подробностей реализации
 
Titanic.csv – Как заметить макушку айсберга в океане багов?
Titanic.csv – Как заметить макушку айсберга в океане багов?Titanic.csv – Как заметить макушку айсберга в океане багов?
Titanic.csv – Как заметить макушку айсберга в океане багов?
 
Как развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CIКак развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CI
 
Next-Gen уже здесь
Next-Gen уже здесьNext-Gen уже здесь
Next-Gen уже здесь
 
Как показать 90 млн картинок и сохранить жизнь диску
Как показать 90 млн картинок и сохранить жизнь дискуКак показать 90 млн картинок и сохранить жизнь диску
Как показать 90 млн картинок и сохранить жизнь диску
 
Законы создания IT команд и следствия законов для IT проектов «на пальцах»
Законы создания IT команд и следствия законов для IT проектов «на пальцах»Законы создания IT команд и следствия законов для IT проектов «на пальцах»
Законы создания IT команд и следствия законов для IT проектов «на пальцах»
 
Почему Agile больше не работает
Почему Agile больше не работаетПочему Agile больше не работает
Почему Agile больше не работает
 
YoctoDB в Яндекс.Вертикалях
YoctoDB в Яндекс.ВертикаляхYoctoDB в Яндекс.Вертикалях
YoctoDB в Яндекс.Вертикалях
 

Similar to Быстрый онлайн-доступ к огромному количеству оффлайн-данных в LinkedIn

La creación de una capa operacional con MongoDB
La creación de una capa operacional con MongoDBLa creación de una capa operacional con MongoDB
La creación de una capa operacional con MongoDB
MongoDB
 
How to Choose a Host for a Big Data Project
How to Choose a Host for a Big Data ProjectHow to Choose a Host for a Big Data Project
How to Choose a Host for a Big Data Project
Peak Hosting
 

Similar to Быстрый онлайн-доступ к огромному количеству оффлайн-данных в LinkedIn (20)

Webinar - Delivering Enhanced Message Processing at Scale With an Always-on D...
Webinar - Delivering Enhanced Message Processing at Scale With an Always-on D...Webinar - Delivering Enhanced Message Processing at Scale With an Always-on D...
Webinar - Delivering Enhanced Message Processing at Scale With an Always-on D...
 
Introduction to Kafka Cruise Control
Introduction to Kafka Cruise ControlIntroduction to Kafka Cruise Control
Introduction to Kafka Cruise Control
 
Case study migration from cm13 to cm14 - Oracle Primavera P6 Collaborate 14
Case study migration from cm13 to cm14 - Oracle Primavera P6 Collaborate 14Case study migration from cm13 to cm14 - Oracle Primavera P6 Collaborate 14
Case study migration from cm13 to cm14 - Oracle Primavera P6 Collaborate 14
 
Datastax - Why Your RDBMS fails at scale
Datastax - Why Your RDBMS fails at scaleDatastax - Why Your RDBMS fails at scale
Datastax - Why Your RDBMS fails at scale
 
Big Data Analytics on the Cloud Oracle Applications AWS Redshift & Tableau
Big Data Analytics on the Cloud Oracle Applications AWS Redshift & TableauBig Data Analytics on the Cloud Oracle Applications AWS Redshift & Tableau
Big Data Analytics on the Cloud Oracle Applications AWS Redshift & Tableau
 
Azure + DataStax Enterprise Powers Office 365 Per User Store
Azure + DataStax Enterprise Powers Office 365 Per User StoreAzure + DataStax Enterprise Powers Office 365 Per User Store
Azure + DataStax Enterprise Powers Office 365 Per User Store
 
Kafka at Peak Performance
Kafka at Peak PerformanceKafka at Peak Performance
Kafka at Peak Performance
 
Updates to Apache CloudStack and LINBIT SDS
Updates to Apache CloudStack and LINBIT SDSUpdates to Apache CloudStack and LINBIT SDS
Updates to Apache CloudStack and LINBIT SDS
 
Big Data on Cloud Native Platform
Big Data on Cloud Native PlatformBig Data on Cloud Native Platform
Big Data on Cloud Native Platform
 
Big Data on Cloud Native Platform
Big Data on Cloud Native PlatformBig Data on Cloud Native Platform
Big Data on Cloud Native Platform
 
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at DatabricksLessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
 
La creación de una capa operacional con MongoDB
La creación de una capa operacional con MongoDBLa creación de una capa operacional con MongoDB
La creación de una capa operacional con MongoDB
 
Detect and Fix Performance Problems Faster
Detect and Fix Performance Problems FasterDetect and Fix Performance Problems Faster
Detect and Fix Performance Problems Faster
 
Has Your Data Gone Rogue?
Has Your Data Gone Rogue?Has Your Data Gone Rogue?
Has Your Data Gone Rogue?
 
Webinar: Enterprise Trends for Database-as-a-Service
Webinar: Enterprise Trends for Database-as-a-ServiceWebinar: Enterprise Trends for Database-as-a-Service
Webinar: Enterprise Trends for Database-as-a-Service
 
More Datacenters, More Problems
More Datacenters, More ProblemsMore Datacenters, More Problems
More Datacenters, More Problems
 
How to Choose a Host for a Big Data Project
How to Choose a Host for a Big Data ProjectHow to Choose a Host for a Big Data Project
How to Choose a Host for a Big Data Project
 
[db tech showcase Tokyo 2016] E22: Getting real time Oracle data into Kafka a...
[db tech showcase Tokyo 2016] E22: Getting real time Oracle data into Kafka a...[db tech showcase Tokyo 2016] E22: Getting real time Oracle data into Kafka a...
[db tech showcase Tokyo 2016] E22: Getting real time Oracle data into Kafka a...
 
Near Real-Time Network Anomaly Detection and Traffic Analysis using Spark bas...
Near Real-Time Network Anomaly Detection and Traffic Analysis using Spark bas...Near Real-Time Network Anomaly Detection and Traffic Analysis using Spark bas...
Near Real-Time Network Anomaly Detection and Traffic Analysis using Spark bas...
 
TechEvent 2019: Create a Private Database Cloud in the Public Cloud using the...
TechEvent 2019: Create a Private Database Cloud in the Public Cloud using the...TechEvent 2019: Create a Private Database Cloud in the Public Cloud using the...
TechEvent 2019: Create a Private Database Cloud in the Public Cloud using the...
 

More from CEE-SEC(R)

Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автом...
Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автом...Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автом...
Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автом...
CEE-SEC(R)
 
Проблемы процесса разработки с точки зрения тестирования
Проблемы процесса разработки с точки зрения тестированияПроблемы процесса разработки с точки зрения тестирования
Проблемы процесса разработки с точки зрения тестирования
CEE-SEC(R)
 
Технологичный подход к повышению продуктивности – кейсы и исследования
Технологичный подход к повышению продуктивности – кейсы и исследованияТехнологичный подход к повышению продуктивности – кейсы и исследования
Технологичный подход к повышению продуктивности – кейсы и исследования
CEE-SEC(R)
 
Разработка требований для противоречащих законодательств
Разработка требований для противоречащих законодательствРазработка требований для противоречащих законодательств
Разработка требований для противоречащих законодательств
CEE-SEC(R)
 
Разработка системы автоматизированного тестирования при помощи фреймворка Pro...
Разработка системы автоматизированного тестирования при помощи фреймворка Pro...Разработка системы автоматизированного тестирования при помощи фреймворка Pro...
Разработка системы автоматизированного тестирования при помощи фреймворка Pro...
CEE-SEC(R)
 

More from CEE-SEC(R) (20)

Подбор и адаптация методологий разработки ПО под различные типы производствен...
Подбор и адаптация методологий разработки ПО под различные типы производствен...Подбор и адаптация методологий разработки ПО под различные типы производствен...
Подбор и адаптация методологий разработки ПО под различные типы производствен...
 
Проектный офис и аналитик
Проектный офис и аналитикПроектный офис и аналитик
Проектный офис и аналитик
 
Онлайн-революция: от ранних репозиториев – к современным МООС-курсам
Онлайн-революция: от ранних репозиториев – к современным МООС-курсамОнлайн-революция: от ранних репозиториев – к современным МООС-курсам
Онлайн-революция: от ранних репозиториев – к современным МООС-курсам
 
Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автом...
Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автом...Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автом...
Массовый параллелизм для гетерогенных вычислений на C++ для беспилотных автом...
 
Как компании с вузами вместе ИТ специалиста готовили или Чем ИТ компания може...
Как компании с вузами вместе ИТ специалиста готовили или Чем ИТ компания може...Как компании с вузами вместе ИТ специалиста готовили или Чем ИТ компания може...
Как компании с вузами вместе ИТ специалиста готовили или Чем ИТ компания може...
 
«Знак качества» как инструмент анализа восприятия продукта клиентами
«Знак качества» как инструмент анализа восприятия продукта клиентами«Знак качества» как инструмент анализа восприятия продукта клиентами
«Знак качества» как инструмент анализа восприятия продукта клиентами
 
Машинное обучение на каждый день
Машинное обучение на каждый деньМашинное обучение на каждый день
Машинное обучение на каждый день
 
Process и Case Management в информационной системе:
Process и Case Management в информационной системе: Process и Case Management в информационной системе:
Process и Case Management в информационной системе:
 
Проблемы процесса разработки с точки зрения тестирования
Проблемы процесса разработки с точки зрения тестированияПроблемы процесса разработки с точки зрения тестирования
Проблемы процесса разработки с точки зрения тестирования
 
Как ЧПУ станку в домашней мастерской не превратиться в мульт героев “двое из ...
Как ЧПУ станку в домашней мастерской не превратиться в мульт героев “двое из ...Как ЧПУ станку в домашней мастерской не превратиться в мульт героев “двое из ...
Как ЧПУ станку в домашней мастерской не превратиться в мульт героев “двое из ...
 
Ай-трекинг в UX исследованиях
Ай-трекинг в UX исследованияхАй-трекинг в UX исследованиях
Ай-трекинг в UX исследованиях
 
Технологичный подход к повышению продуктивности – кейсы и исследования
Технологичный подход к повышению продуктивности – кейсы и исследованияТехнологичный подход к повышению продуктивности – кейсы и исследования
Технологичный подход к повышению продуктивности – кейсы и исследования
 
Субъектно-ориентированные информационные системы на предприятиях
Субъектно-ориентированные информационные системы на предприятияхСубъектно-ориентированные информационные системы на предприятиях
Субъектно-ориентированные информационные системы на предприятиях
 
Шаблоны контейнеров в Virtuozzo
Шаблоны контейнеров в VirtuozzoШаблоны контейнеров в Virtuozzo
Шаблоны контейнеров в Virtuozzo
 
Семантическое ядро рунета
Семантическое ядро рунетаСемантическое ядро рунета
Семантическое ядро рунета
 
Разработка требований для противоречащих законодательств
Разработка требований для противоречащих законодательствРазработка требований для противоречащих законодательств
Разработка требований для противоречащих законодательств
 
IT-Лаборатория: кузница кадров и стартапов
IT-Лаборатория: кузница кадров и стартаповIT-Лаборатория: кузница кадров и стартапов
IT-Лаборатория: кузница кадров и стартапов
 
Технология предметно ориентированного программирования гетерогенных многоядер...
Технология предметно ориентированного программирования гетерогенных многоядер...Технология предметно ориентированного программирования гетерогенных многоядер...
Технология предметно ориентированного программирования гетерогенных многоядер...
 
Разработка системы автоматизированного тестирования при помощи фреймворка Pro...
Разработка системы автоматизированного тестирования при помощи фреймворка Pro...Разработка системы автоматизированного тестирования при помощи фреймворка Pro...
Разработка системы автоматизированного тестирования при помощи фреймворка Pro...
 
SysML в качестве платформы интеграции для моделирования ко-симуляций
SysML в качестве платформы интеграции для моделирования ко-симуляцийSysML в качестве платформы интеграции для моделирования ко-симуляций
SysML в качестве платформы интеграции для моделирования ко-симуляций
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 

Быстрый онлайн-доступ к огромному количеству оффлайн-данных в LinkedIn

  • 1. ESPRESSO/Voldemort©2013 LinkedIn Corporation. All Rights Reserved. Fast Online Access to Massive Offline Data Software Engineering Conference in Russia 28 October 2016 By Felix GV
  • 2. ©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems Agenda ▪  Introduction – High Level Web Architecture – What is Primary Data and Derived Data? – What is Voldemort? ▪  Recent Improvements to Voldemort RO – Cross-DC Bandwidth – Multi-tenancy – Performance ▪  How to Get Started? 2
  • 3. ©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems High Level Web Architecture Web Datacenter Front Ends Mid Tiers Primary Databases Derived Databases 3
  • 4. ©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems High Level Web Architecture Web Datacenter Front Ends Mid Tiers Queue Logs Logs Change Capture Hadoop Job Scheduler Launch Jobs Database Snapshots Trigger Derived Data Refresh Data Crunching ETL Bulk Load Derived Databases Primary Databases 4
  • 5. ©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems What is Primary Data and Derived Data? Primary Data is “Source of Truth” data: ▪  Users’ profiles, private messages, etc. ▪  Typically requires strong consistency & read-your-write semantics Derived Data comes from crunching primary data: ▪  “People You May Know”, “Jobs You May Be Interested In”, etc. ▪  Aggregation, Joins, Machine learning ▪  Typically generated offline, in Hadoop How can we serve derived data back to online apps? 5
  • 6. ©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems What is Voldemort? Voldemort is a Distributed Key Value Store with two modes: ▪  Read-Write –  Random access writes, tunable consistency ▪  Read-Only –  Bulk-loaded from Hadoop Can be single DC, or globally distributed. Pluggable: ▪  Storage Engine (BDB-JE, RocksDB, Read-Only format, etc.) ▪  Serialization (Avro, JSON, Protobuf, Thrift, raw bytes, etc.) 6
  • 7. ©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems What is Voldemort Read-Only? Voldemort RO Servers: ▪  Fetch entire datasets from HDFS ▪  Serve key-value read requests Build and Push job: ▪  Validates store & schema ▪  Triggers MR job –  MR job partitions data ▪  Triggers server fetches ▪  Swaps new dataset 7
  • 8. ©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems For Voldemort to die, all pieces must die. 8
  • 9. ©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems Recent Improvements to Voldemort RO ▪  Cross-DC Bandwidth – Block-level Compression – Throttling ▪ Multi-tenancy – Nuage Integration – Storage Space Quotas ▪ Performance – Build and Push Performance – Client Latency 9
  • 10. ©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems Voldemort Cross-DC Bandwidth Voldemort RO among largest users of cross-DC bandwidth at LinkedIn ▪  >100 TB / day ingested across the WAN, every day We added block-level compression: ▪  Output of BnP’s MR job is compressed (GZIP) ▪  Voldemort servers decompress on the fly –  CPU cost of decompression deemed negligible ▪  Completely transparent to store owners ▪  ~18% reduction in dataset size 10
  • 11. ©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems Voldemort Cross-DC Bandwidth DC1 DC2 DC3 DC1 DC2 DC3 Inbound bandwidth used to look like this: ▪  Very spiky ▪  Each DC was fetching sequentially ▪  Love/hate relationship with Net Ops Now, with parallel fetching and throttling: ▪  No more spikes ▪  DCs are fetching in parallel ▪  Best friends with Net Ops 11
  • 12. ©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems Recent Improvements to Voldemort RO ▪  Cross-DC Bandwidth – Block-level Compression – Throttling ▪ Multi-tenancy – Nuage Integration – Storage Space Quotas ▪ Performance – Build and Push Performance – Client Latency 12
  • 13. ©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems Voldemort Multi-tenancy Nuage is LinkedIn’s internal (AWS-like) self-service provisioning infra All new stores at LinkedIn are now created via Nuage ▪  Prevents accidental pushes to the wrong cluster ▪  Store creation in production is now self-service ▪  ~3 stores / week created in production! 13
  • 14. ©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems Voldemort Multi-tenancy Storage Space Quotas ▪  Precise storage requirement measured during build phase ▪  Voldemort server validates quota before starting to fetch ▪  The goal is to prevent unexpected growth from killing clusters LOTS of improvements on admin commands ▪  Stability ▪  Performance 14
  • 15. ©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems Recent Improvements to Voldemort RO ▪  Cross-DC Bandwidth – Block-level Compression – Throttling ▪ Multi-tenancy – Nuage Integration – Storage Space Quotas ▪ Performance – Build and Push Performance – Client Latency 15
  • 16. ©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems Build and Push Performance New datacenter with denser clusters required major BnP refactoring As a side effect of that rewrite, BnP is also a lot more efficient ▪  Each partition replica is now built only once ▪  The following metrics are reduced (roughly by half) : –  Number of reduce tasks –  Amount of shuffle bandwidth –  Amount of data written to HDFS Leveraged new datacenter buildout to get rid of duplicate BnP jobs 16
  • 17. ©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems Build and Push Performance Delta: 63.2% reduction Before: 103 hours / job After: 38 hours / job 17
  • 18. ©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems Build and Push Performance Delta: 31.4% reduction Before: 381 jobs / day After: 261 jobs / day 18
  • 19. ©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems Build and Push Performance Delta: 74.4% reduction Before: 4.48 years / day After: 1.15 years / day 19
  • 20. ©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems Client Latency Major client/server communication rewrite: ▪  Client and server’s memory footprint reduced by half ▪  Client garbage collection reduced by 80% ▪  Failure detection is more accurate ▪  Solved the stability issues of our highest throughput clients Major effort to upgrade all clients to the latest version. 20
  • 21. ©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems Client Latency Set up: ▪  20 client instances ▪  40 nodes multi-tenant Voldemort cluster –  >90 stores –  56K QPS at peak Metric: ▪  Worst p95/p99 latency from all clients ▪  Units are in milliseconds (“m” mean microseconds) ▪  Old code in pink ▪  New code in green 21
  • 22. ©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems Client Latency 95th percentile 22
  • 23. ©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems Client Latency 99th percentile 23
  • 24. ©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems 24
  • 25. ©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems How to Get Started? # Get code git clone https://github.com/voldemort/voldemort cd voldemort # Launch Voldemort Servers ./gradlew jar ./bin/voldemort-shell.sh config/readonly_two_nodes_cluster/node0/config & ./bin/voldemort-shell.sh config/readonly_two_nodes_cluster/node1/config & # Launch Build and Push job ./gradlew bnpJar ./bin/run-bnp.sh <config_file> 25
  • 26. ©2016 LinkedIn Corporation. All Rights Reserved. Distributed Data Systems Questions? (We’re hiring!)