SlideShare a Scribd company logo
2
Most read
12
Most read
eBay Cloud CMS based on nosql 
Xu Jiang 
eBay COE 
1
Agenda 
 What’s eBay Cloud CMS? 
 Why is CMS based on nosql? 
 How does CMS overcome the challenges of nosql?
What is eBay Cloud CMS? 
 CMS is “Configuration Management System” 
 CMS manages the state of all resources in eBay cloud 
environment 
– Metadata: 
○ Data Dictionary 
– Runtime Data 
○ Stable State 
▪ Current State 
▪ Future State 
○ Transient State
Role of CMS in eBay Cloud
CMS Design Goals 
 High Performance & High Availability & High Scalability 
 Network partition tolerated distributed architecture 
 Flexible data model that support graph model 
 Declarative query language that support filter, join and projection 
 Multi-row transactional data consistency 
 Concurrency control 
 Access control
Relational DB vs. Nosql DB 
RDB 
(i.e. MySQL) 
Document Store 
(i.e. MongoDB) 
Column Family Store 
(i.e. HBase) 
DB Schema Relational Model, 
Hard for graph model 
Complete schema-less Semi schema-less 
Performance Too many join for 
graph model 
High read performance; 
Potential write 
performance bottleneck 
High write performance 
Fast key based read & 
Slow range query 
Scalability Difficult to scale-out 
(manual sharding) 
Auto-sharding on pre-defined 
shard key 
Horizontally scalable by 
tablet 
Query SQL Limited query language 
(no join) 
Key-value access; 
Pig & Hive based on 
MapReduce 
Consistency ACID Transactional Eventual Consistency No multi-row transaction 
Concurrency 
Locking or MVCC node-level locking & 
row-based atomic 
Control 
atomic operation 
Security AuthZ & AuthN Basic security Basic security 
Notification 
Mechanism 
Trigger No build-in notification No build-in notification
Solution To Nosql Challenge – 
No Metadata Management 
 Metadata-Driven Object Oriented Model 
– Use object reference to define relationship in graph model 
– Support inherit attributes and virtual expression attributes 
 Support metadata extension & versioning 
 Support runtime data migration
Solution To Nosql Challenge – 
Limited Query Language 
 RESTful query language 
– Resource Path 
– Implicit Join 
– Expression Filter 
– Attribute Selection 
 CMS Query Engine 
Parser 
Translator & 
Optimizer 
Executor 
AST Exec Plan
Solution To Nosql Challenge – 
No Multi-Row Transaction 
 Two Phase Commit 
– It’s not distributed 2PC  
– Phase 1 : Pre-Commit 
○ Optimistic Concurrency Control: check timestamp of each entity to detect 
writing conflict 
– Phase 2 : Commit 
○ Write Ahead Log: writing log before writing data 
 Recovery 
– Records all updates in transaction logs 
– Background thread checks transaction logs to rollback the pending transaction
Solution To Nosql Challenge – 
No Concurrency Control 
 Hierarchy locking for tree model 
– Resource has hierarchy 
– Locking one resource will check all ancestors 
 Advisory locking for application-defined meanings 
– Advisory locking is not mandatory 
– User can use advisory locking to emulate 'pessimistic locks' 
 Lease locking for distributed environment 
– In a distributed environment, it is always possible that a process can die and 
never release a lease 
– Process must renew the lease before it’s expired.
Solution To Nosql Challenge – 
No Access Control 
 Role Based Access Control 
 ACL Based Authorization 
– Define permission in ACL 
 LDAP Based Authentication 
– Maintain user/group/role relationships in LDAP
Solution To Nosql Challenge – 
No Notification Mechanism 
 We use asynchronous publish/subscribe as notification mechanism that is more 
scalable and loosely decouple. 
 By introducing change log, we can decouple the change generation and change 
notification. 
 We can provide some advanced features, e.g. changes collapse and multi-thread 
processing 
Persistence 
Manager 
Data 
Store 
Change 
Logger 
Change 
log 
Change 
Poller 
Change 
Publisher 
Registration 
Change 
Subscriber 1 
Change 
Subscriber N
Solution To Nosql Challenge – 
Potential Writing Bottleneck 
 Document DB may have writing bottleneck. Column DB has limited query 
language 
 We use document store(e.g. MongoDB) as the storage of stable data, and 
use column store (e.g. HBase) as the storage of transient data. 
 We use a data access layer to hide the different data storage. 
Query Engine 
Data Access Layer 
MongoDB 
(stable data) 
HBase 
(transient data)
Solution To Nosql Challenge – 
Distributed Architecture 
 Isolation domain based 
distributed architecture 
 Network partition 
tolerance 
 Runtime data partition 
• Metadata replication 
• Message-based data 
replication

More Related Content

What's hot (20)

PPTX
Deploying MariaDB databases with containers at Nokia Networks
MariaDB plc
 
PPTX
ClustrixDB at Samsung Cloud
MariaDB plc
 
PDF
Introducing workload analysis
MariaDB plc
 
PDF
Database Security Threats - MariaDB Security Best Practices
MariaDB plc
 
PDF
A Marriage of Lambda and Kappa: Supporting Iterative Development of an Event ...
confluent
 
PDF
Change data capture with MongoDB and Kafka.
Dan Harvey
 
PDF
Under the hood: SkySQL monitoring
MariaDB plc
 
PDF
What to expect from MariaDB Platform X5, part 1
MariaDB plc
 
PPTX
Getting the most out of MariaDB MaxScale
MariaDB plc
 
PDF
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
Severalnines
 
PDF
#GeodeSummit: Combining Stream Processing and In-Memory Data Grids for Near-R...
PivotalOpenSourceHub
 
PDF
Introducing the ultimate MariaDB cloud, SkySQL
MariaDB plc
 
PDF
HBaseConAsia2018 Track3-3: HBase at China Life Insurance
Michael Stack
 
PDF
Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to Streamin...
HostedbyConfluent
 
PPTX
Captial One: Why Stream Data as Part of Data Transformation?
ScyllaDB
 
PPTX
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
DataStax
 
PDF
Streaming all over the world Real life use cases with Kafka Streams
confluent
 
PDF
Maximizing performance via tuning and optimization
MariaDB plc
 
PPTX
Change Data Capture using Kafka
Akash Vacher
 
PDF
Argus Production Monitoring at Salesforce
HBaseCon
 
Deploying MariaDB databases with containers at Nokia Networks
MariaDB plc
 
ClustrixDB at Samsung Cloud
MariaDB plc
 
Introducing workload analysis
MariaDB plc
 
Database Security Threats - MariaDB Security Best Practices
MariaDB plc
 
A Marriage of Lambda and Kappa: Supporting Iterative Development of an Event ...
confluent
 
Change data capture with MongoDB and Kafka.
Dan Harvey
 
Under the hood: SkySQL monitoring
MariaDB plc
 
What to expect from MariaDB Platform X5, part 1
MariaDB plc
 
Getting the most out of MariaDB MaxScale
MariaDB plc
 
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
Severalnines
 
#GeodeSummit: Combining Stream Processing and In-Memory Data Grids for Near-R...
PivotalOpenSourceHub
 
Introducing the ultimate MariaDB cloud, SkySQL
MariaDB plc
 
HBaseConAsia2018 Track3-3: HBase at China Life Insurance
Michael Stack
 
Bravo Six, Going Realtime. Transitioning Activision Data Pipeline to Streamin...
HostedbyConfluent
 
Captial One: Why Stream Data as Part of Data Transformation?
ScyllaDB
 
Webinar: Dyn + DataStax - helping companies deliver exceptional end-user expe...
DataStax
 
Streaming all over the world Real life use cases with Kafka Streams
confluent
 
Maximizing performance via tuning and optimization
MariaDB plc
 
Change Data Capture using Kafka
Akash Vacher
 
Argus Production Monitoring at Salesforce
HBaseCon
 

Viewers also liked (14)

PDF
No sql e as vantagens na utilização do mongodb
fabio perrella
 
PDF
Ebay: DB Capacity planning at eBay
DataStax Academy
 
PDF
Social Data and Log Analysis Using MongoDB
Takahiro Inoue
 
PDF
An Elastic Metadata Store for eBay’s Media Platform
MongoDB
 
PPTX
NOSQL uma breve introdução
Wise Systems
 
PDF
Artigo Nosql
Ademir Tadeu
 
KEY
Scaling with MongoDB
MongoDB
 
PPT
MongoATL: How Sourceforge is Using MongoDB
Rick Copeland
 
PPTX
Semantic Wiki: Social Semantic Web In Action:
Jesse Wang
 
PPTX
MongoDB San Francisco 2013: Storing eBay's Media Metadata on MongoDB present...
MongoDB
 
KEY
NoSQL at Twitter (NoSQL EU 2010)
Kevin Weil
 
PDF
Building LinkedIn's Learning Platform with MongoDB
MongoDB
 
PPTX
MongoDB at eBay
MongoDB
 
No sql e as vantagens na utilização do mongodb
fabio perrella
 
Ebay: DB Capacity planning at eBay
DataStax Academy
 
Social Data and Log Analysis Using MongoDB
Takahiro Inoue
 
An Elastic Metadata Store for eBay’s Media Platform
MongoDB
 
NOSQL uma breve introdução
Wise Systems
 
Artigo Nosql
Ademir Tadeu
 
Scaling with MongoDB
MongoDB
 
MongoATL: How Sourceforge is Using MongoDB
Rick Copeland
 
Semantic Wiki: Social Semantic Web In Action:
Jesse Wang
 
MongoDB San Francisco 2013: Storing eBay's Media Metadata on MongoDB present...
MongoDB
 
NoSQL at Twitter (NoSQL EU 2010)
Kevin Weil
 
Building LinkedIn's Learning Platform with MongoDB
MongoDB
 
MongoDB at eBay
MongoDB
 
Ad

Similar to eBay Cloud CMS based on NOSQL (20)

PDF
Big Data Streams Architectures. Why? What? How?
Anton Nazaruk
 
PDF
State transfer With Galera
Mydbops
 
PPTX
CS 542 Parallel DBs, NoSQL, MapReduce
J Singh
 
PPTX
PostgreSQL as an Alternative to MSSQL
Alexei Krasner
 
PDF
AI&BigData Lab 2016. Сарапин Виктор: Размер имеет значение: анализ по требова...
GeeksLab Odessa
 
PPTX
SQL and NoSQL in SQL Server
Michael Rys
 
PPT
No sql
Murat Çakal
 
PPTX
Master.pptx
KarthikR780430
 
PPTX
NoSQL Introduction, Theory, Implementations
Firat Atagun
 
PPT
Gavin M
Ontico
 
PPTX
Microsoft Database Options
David Chou
 
PPTX
NoSQL(NOT ONLY SQL)
Rahul P
 
PPTX
NoSql Database
Suresh Parmar
 
PPTX
Nosql databases
Fayez Shayeb
 
PPTX
Module 2.2 Introduction to NoSQL Databases.pptx
NiramayKolalle
 
PPTX
Sql Server
SandyShin
 
PPTX
Relational databases vs Non-relational databases
James Serra
 
PPTX
No sq lv2
Nusrat Sharmin
 
PPTX
Nosql seminar
Shreyashkumar Nangnurwar
 
PPTX
GWAB 2015 - Data Plaraform
Marcelo Paiva
 
Big Data Streams Architectures. Why? What? How?
Anton Nazaruk
 
State transfer With Galera
Mydbops
 
CS 542 Parallel DBs, NoSQL, MapReduce
J Singh
 
PostgreSQL as an Alternative to MSSQL
Alexei Krasner
 
AI&BigData Lab 2016. Сарапин Виктор: Размер имеет значение: анализ по требова...
GeeksLab Odessa
 
SQL and NoSQL in SQL Server
Michael Rys
 
No sql
Murat Çakal
 
Master.pptx
KarthikR780430
 
NoSQL Introduction, Theory, Implementations
Firat Atagun
 
Gavin M
Ontico
 
Microsoft Database Options
David Chou
 
NoSQL(NOT ONLY SQL)
Rahul P
 
NoSql Database
Suresh Parmar
 
Nosql databases
Fayez Shayeb
 
Module 2.2 Introduction to NoSQL Databases.pptx
NiramayKolalle
 
Sql Server
SandyShin
 
Relational databases vs Non-relational databases
James Serra
 
No sq lv2
Nusrat Sharmin
 
GWAB 2015 - Data Plaraform
Marcelo Paiva
 
Ad

Recently uploaded (20)

PPTX
India Energy and Utility Sector Landscape
Anand Akshay
 
PDF
Chapter-52-Relationship-between-countries-at-different-levels-of-development-...
dinhminhthu1405
 
PPTX
The Brain Behind Your Device: A Deep Dive into Operating Systems
vanshshah1920
 
PDF
Advanced-Web-Design-Crafting-the-Future-Web (1).pdf
vaghelavidhiba591
 
PPTX
Mastering the DevOps Certification: CI/CD, Governance & Monitoring Made Simple
shubhamsharma994585
 
PPTX
2025-07-27 Abraham 09 (shared slides).pptx
Dale Wells
 
PPTX
Applied Stats for Real-Life Decisions.pptx
khalyaniramjan49
 
PPTX
Influencing Factors of Business Environment of Vegetables Selling Business
auntorkhastagirpujan
 
PPTX
milgram study as level psychology core study (social approach)
dinhminhthu1405
 
PDF
Securing Africa’s future: Technology, culture and the changing face of threat
Kayode Fayemi
 
PPTX
A Power Point Presentaion of 2 test match
katarapiyush21
 
PPTX
Design Tips to Help Non-Visual Visitors Stay Safe Online
Daniela Napoli
 
PPTX
GAMABA AWARDEES GINAW BILOG AND SALINTA MONON BY REYMART
purezagambala458
 
PPTX
Ocean_and_Freshwater_Awareness_Presentation.pptx
Suhaira9
 
PPTX
Supply chain management concept for basic understanding
pushpendrabalyan90
 
PPTX
Working-with-HTML-CSS-and-JavaScript.pptx
badalsenma5
 
PDF
Green Natural Green House Presentation (2).pdf
SaeedOsman6
 
PPTX
Marketing Mix Analysis of Singapore Airlines.pptx
auntorkhastagirpujan
 
PPTX
LUBRICANTS presentation slides with types functions and all
dahalsabal2020
 
PPTX
Patient with Upper & Lower GI bleeding .pptx
bdmlwb701
 
India Energy and Utility Sector Landscape
Anand Akshay
 
Chapter-52-Relationship-between-countries-at-different-levels-of-development-...
dinhminhthu1405
 
The Brain Behind Your Device: A Deep Dive into Operating Systems
vanshshah1920
 
Advanced-Web-Design-Crafting-the-Future-Web (1).pdf
vaghelavidhiba591
 
Mastering the DevOps Certification: CI/CD, Governance & Monitoring Made Simple
shubhamsharma994585
 
2025-07-27 Abraham 09 (shared slides).pptx
Dale Wells
 
Applied Stats for Real-Life Decisions.pptx
khalyaniramjan49
 
Influencing Factors of Business Environment of Vegetables Selling Business
auntorkhastagirpujan
 
milgram study as level psychology core study (social approach)
dinhminhthu1405
 
Securing Africa’s future: Technology, culture and the changing face of threat
Kayode Fayemi
 
A Power Point Presentaion of 2 test match
katarapiyush21
 
Design Tips to Help Non-Visual Visitors Stay Safe Online
Daniela Napoli
 
GAMABA AWARDEES GINAW BILOG AND SALINTA MONON BY REYMART
purezagambala458
 
Ocean_and_Freshwater_Awareness_Presentation.pptx
Suhaira9
 
Supply chain management concept for basic understanding
pushpendrabalyan90
 
Working-with-HTML-CSS-and-JavaScript.pptx
badalsenma5
 
Green Natural Green House Presentation (2).pdf
SaeedOsman6
 
Marketing Mix Analysis of Singapore Airlines.pptx
auntorkhastagirpujan
 
LUBRICANTS presentation slides with types functions and all
dahalsabal2020
 
Patient with Upper & Lower GI bleeding .pptx
bdmlwb701
 

eBay Cloud CMS based on NOSQL

  • 1. eBay Cloud CMS based on nosql Xu Jiang eBay COE 1
  • 2. Agenda  What’s eBay Cloud CMS?  Why is CMS based on nosql?  How does CMS overcome the challenges of nosql?
  • 3. What is eBay Cloud CMS?  CMS is “Configuration Management System”  CMS manages the state of all resources in eBay cloud environment – Metadata: ○ Data Dictionary – Runtime Data ○ Stable State ▪ Current State ▪ Future State ○ Transient State
  • 4. Role of CMS in eBay Cloud
  • 5. CMS Design Goals  High Performance & High Availability & High Scalability  Network partition tolerated distributed architecture  Flexible data model that support graph model  Declarative query language that support filter, join and projection  Multi-row transactional data consistency  Concurrency control  Access control
  • 6. Relational DB vs. Nosql DB RDB (i.e. MySQL) Document Store (i.e. MongoDB) Column Family Store (i.e. HBase) DB Schema Relational Model, Hard for graph model Complete schema-less Semi schema-less Performance Too many join for graph model High read performance; Potential write performance bottleneck High write performance Fast key based read & Slow range query Scalability Difficult to scale-out (manual sharding) Auto-sharding on pre-defined shard key Horizontally scalable by tablet Query SQL Limited query language (no join) Key-value access; Pig & Hive based on MapReduce Consistency ACID Transactional Eventual Consistency No multi-row transaction Concurrency Locking or MVCC node-level locking & row-based atomic Control atomic operation Security AuthZ & AuthN Basic security Basic security Notification Mechanism Trigger No build-in notification No build-in notification
  • 7. Solution To Nosql Challenge – No Metadata Management  Metadata-Driven Object Oriented Model – Use object reference to define relationship in graph model – Support inherit attributes and virtual expression attributes  Support metadata extension & versioning  Support runtime data migration
  • 8. Solution To Nosql Challenge – Limited Query Language  RESTful query language – Resource Path – Implicit Join – Expression Filter – Attribute Selection  CMS Query Engine Parser Translator & Optimizer Executor AST Exec Plan
  • 9. Solution To Nosql Challenge – No Multi-Row Transaction  Two Phase Commit – It’s not distributed 2PC  – Phase 1 : Pre-Commit ○ Optimistic Concurrency Control: check timestamp of each entity to detect writing conflict – Phase 2 : Commit ○ Write Ahead Log: writing log before writing data  Recovery – Records all updates in transaction logs – Background thread checks transaction logs to rollback the pending transaction
  • 10. Solution To Nosql Challenge – No Concurrency Control  Hierarchy locking for tree model – Resource has hierarchy – Locking one resource will check all ancestors  Advisory locking for application-defined meanings – Advisory locking is not mandatory – User can use advisory locking to emulate 'pessimistic locks'  Lease locking for distributed environment – In a distributed environment, it is always possible that a process can die and never release a lease – Process must renew the lease before it’s expired.
  • 11. Solution To Nosql Challenge – No Access Control  Role Based Access Control  ACL Based Authorization – Define permission in ACL  LDAP Based Authentication – Maintain user/group/role relationships in LDAP
  • 12. Solution To Nosql Challenge – No Notification Mechanism  We use asynchronous publish/subscribe as notification mechanism that is more scalable and loosely decouple.  By introducing change log, we can decouple the change generation and change notification.  We can provide some advanced features, e.g. changes collapse and multi-thread processing Persistence Manager Data Store Change Logger Change log Change Poller Change Publisher Registration Change Subscriber 1 Change Subscriber N
  • 13. Solution To Nosql Challenge – Potential Writing Bottleneck  Document DB may have writing bottleneck. Column DB has limited query language  We use document store(e.g. MongoDB) as the storage of stable data, and use column store (e.g. HBase) as the storage of transient data.  We use a data access layer to hide the different data storage. Query Engine Data Access Layer MongoDB (stable data) HBase (transient data)
  • 14. Solution To Nosql Challenge – Distributed Architecture  Isolation domain based distributed architecture  Network partition tolerance  Runtime data partition • Metadata replication • Message-based data replication

Editor's Notes

  • #8: Data model & query to explain
  • #9: Add complex query