SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
eBay Inc. Proprietary & Confidential 
eBay Cloud Configuration Management System 
蒋旭 
平台技术部 架构师 
eBay中国技术研发中心
eBay Inc. confidential 
2 
Agenda 
•eBay Cloud Overview 
–Why eBay Need Cloud? 
–eBay Cloud Tech Overview 
•CMS - Configuration Management System 
–Architecture 
–Try Me Page 
–Functionality & Demo 
•NoSQL in CMS 
–Why CMS choose NoSQL? 
–Overcome NoSQL Design Challenges 
–Resolve Open Source NoSQL Issues
eBay Inc. confidential 
3 
Why eBay need cloud?
eBay Inc. confidential 
4 
eBay Scale 
2B page views/day 
96M active users 
500M live listings 
5B queries/day 
75B database calls/day 
9PB of data 
14,000 application servers 
44M line of code 
Data 
Analytics 
Search 
Infrastructure 
Front 
End 
10M items added/day
eBay Inc. confidential 
5 
eBay Utilization 
Number of servers required based on utilization for 8 pools
eBay Inc. confidential 
6 
eBay Global Brands
eBay Inc. confidential 
7 
eBay Cloud Tech Overview
eBay Inc. confidential 
8 
eBay Cloud Technology Stack 
Service Catalog 
Ticket driven run book automation 
Chargeback 
REST APIs 
Model Driven Close Loop 
Automation 
Pay As You Go 
Configuration Management 
Database (CMDB) 
Distributed State Management 
Monitoring 
Complex Event Processing
eBay Inc. confidential 
9 
eBay Cloud Architecture Overview 
Cloud 
Manager 
Configuration 
Management 
Service 
Monitoring 
Infrastructure & 
Platform 
Mgt Services 
REST API 
Queue API 
REST API 
Queue API 
REST API 
Cloud Infrastructure 
Agent 
metrics 
Control 
Current/expected 
state 
Discovery 
Control 
Events & 
alerts 
Thresholds/topology 
REST API 
Queue API
eBay Inc. confidential 
10 
Model Driven Automation 
LB 
Pool 
Server 
Server 
Server 
Current 
State 
Site 
Discovery 
Comparison 
Expected 
State 
Reconciliation 
Orchestration 
LB 
Pool 
Server 
Server 
Server 
•Desired configuration is specified in the expected state and persisted in CMS 
•Upon approval, the orchestration will configure the site to reflect the desired configuration. 
•Updated site configuration is discovered based on detection of configuration events 
•Reconciliation between the expected and current state allows to verify the proper configuration.
eBay Inc. confidential 
11 
Configuration Management System (CMS)
eBay Inc. confidential 
12 
CMS - Overview 
•CMS (Configuration Management System) is a high-performance metadata-driven persistence and query service for configuration data with supporting of RESTful API and client lib (Java, Python). 
•CMS is a generic system that be used for cloud configuration, as well other software needs for configuration. 
•As a by-product, CMS can be a persistence solution for real-time state data as well. 
•CMS supports multiple data repositories for desired data isolation.
eBay Inc. confidential 
13 
CMS - Architecture 
REST API 
Metadata Service 
Query Engine 
Entity Manager 
Data Access Layer 
MongoDB 
Persistence Service 
Search Service 
Parser 
Translator & Optimizer 
Executor 
Entity Mapper 
REST Request 
Entity Service 
Branch Service 
History Service
eBay Inc. confidential 
14 
CMS - Try Me Page
eBay Inc. confidential 
15 
CMS Functionality & Demo
eBay Inc. confidential 
16 
Metadata Model – Basic Feature 
•The metadata model is based on object-oriented paradigm that can support graph/tree data model 
–MetaClass define the meta type of runtime data (i.e. entity) 
–Entity represent one node in graph 
–Relationship between entity represent the edge in graph 
•The metadata can contain two types of field: 
–Attribute field define payload of entity 
•String, Boolean, Double, Integer, Long, Date 
•Json 
–Relationship field define relationship between entity. 
•Reference 
•Embedded
eBay Inc. confidential 
17 
Metadata Model – Sample
eBay Inc. confidential 
18 
Metadata Model – Advanced Feature 
•Metadata Inheritance (parent & child) 
•Reference Integrity (strong & weak) 
•Index Support on Metadata (unique contraints & query optimizer) 
•Mongodb Collection Split by Metadata (break 64 index limitation)
eBay Inc. confidential 
19 
Persistence Service – Basic Feature 
•The persistence service provides CRUD API for the runtime data (i.e. entity) of metadata. 
–Create 
–Retrieval 
–Update 
–Delete 
•The entity can be flat-structure or embedded-structure that conformed to the metadata definition 
–For reference relationship, entity is flat-structure 
–For embedded relationship, entity is embedded-structure
eBay Inc. confidential 
20 
Persistence Service – Advanced Feature 
•Branching (main & sub & merge) 
•Audit Tracing (entity history) 
•Reference Integrity (strong & weak) 
•Conditional Update (version based optimistic locking) 
•Security Access Control
eBay Inc. confidential 
21 
Query Service – Basic Feature 
•The query service provides an imperative style query language that defines the traversal path of graph/tree data model. 
•The query language supports Boolean filter, attribute selection and implicit join that will extract a sub-tree result from graph data set. 
•For example, *ApplicationService[@name = “pool1"].groups[@name = "columns"].groups[@name = "col1"].serviceInstances* will return service instances under column 1 of pool1 application.
eBay Inc. confidential 
22 
Query Service – Advanced Feature 
•Query Optimizer (cost & hint) 
•Result Pagination (sort / limit / skip) 
•Full Table Scan Check (query filter & index info) 
•Query Explanation (execution plan)
eBay Inc. confidential 
23 
System Management 
•Monitoring (approximate & accurate sliding window metrics) 
•State Management (normal / maintain / overload) 
•Healthy Model (formula based on qps & latency -> overload state) 
•API Throttling (overload state -> priority throttling)
eBay Inc. confidential 
24 
Open Source Strategy 
•Plan to open source the core functionality of CMS 
•Separate the ebay-related code (e.g. security) from open source code 
•Welcome to contribute code!
eBay Inc. confidential 
25 
NoSQL in CMS
eBay Inc. confidential 
26 
CMS Requirements 
•The primary goal of CMS is to efficiently manage the configuration data 
•The characteristic of configuration data 
–data model is very complex and flexible 
–access pattern is reading >> writing 
–need to support very complex query 
•Non-functional requirements 
–High Performance 
–High Availability 
–High Scalability 
–Access Control
eBay Inc. confidential 
27 
Relational DB vs. Nosql DB 
RDB (i.e. MySQL) 
Document Store (i.e. MongoDB) 
Column Store (i.e. Cassandra) 
DB Schema 
Rigid Schema 
Schema Free 
Flexible Schema 
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 
Not scale-out 
horizontally scalable 
horizontally scalable 
Metadata 
DB Schema 
No metadata 
No metadata 
Query 
SQL 
Limited query language 
Limited query language 
Consistency 
Transactional 
Eventual Consistency 
Eventual Consistency 
Security 
AuthZ & AuthN 
Basic security 
Basic security 
Concurrency Control 
Locking or MVCC 
database-level locking & atomic operation 
row-based atomic
eBay Inc. confidential 
28 
Why CMS choose MongoDB? 
•High Performance 
–In-Memory Storage (if work set fit in memory) 
–B-Tree Index 
•High Availability & High Scalability 
–Replication Set 
•Flexible Schema 
–JSON-Based Document Model 
•Query Support 
–Rich, document-based queries.
eBay Inc. confidential 
29 
Overcome NoSQL Design Challenges 
•No Metadata Management 
–Metadata Driven 
•Limit Query Language 
–Imperative Query Language 
•No Multi-Row Transaction 
–Branching & Merge 
•No Access Control 
–Security Model
eBay Inc. confidential 
30 
Resolve MongoDB Issues 
•Open source software is great, but isn’t bug-free to use. 
•Something, we may need to dig into source code or OS kernel to find the root cause and do some enhancement by ourselves 
•Case Study 
–Case 1: High system CPU for high concurrent full table scan query 
–Case 2: High system CPU for high concurrent large result set query
eBay Inc. confidential 
31 
Resolve MongoDB Issues – Case Study I 
•Case 1: High system CPU for high concurrent full table scan query 
•Symptom: 
–When there are 100+ concurrent client to execute full table scan on a 100K+ collection, the system cpu is 80%+. 
•Analysis: 
–gdb sampling show that lost of samples are on pthread_mutex_lock & pthread_mutex_unlock that is called mongo::ps::Rolling::access() 
–strace sampling show 80%+ syscall are futex 
–After we study the mongodb code, mongo::ps::Rolling::access() will check whether the record is in memory or not; if it’s out of memory, it will load it into memory. 
–The problem is that mongo::ps::Rolling::access() will acquire a pthread_mutex for each record that trigger high lock contention. 
•Solution 
–We add “full table scan” checking in query engine. And we will reject “full table scan” query when system is in unhealthy state 
–We have a JIRA CS-3969 opened with 10gen
eBay Inc. confidential 
32 
Resolve MongoDB Issues – Case Study II 
•Case 2: High system CPU for high concurrent large result set query 
•Symptom: 
–When there are 100+ concurrent client to execute large query that return 1K+ result set, the system cpu is 90%+. 
•Analysis: 
–gdb sampling show that most samples is on socket recv() and many samples is on malloc mutex that is used in allocate string for query result. 
–Since recv is io-bound that should not cause high system cpu, so we suspect malloc mutex __lll_lock_wait_private() 
–oprofile profiling show that 95% sample is futex_wait & futex_wake 
–Since glibc mutex is implemented by futex, it’s very likely that malloc mutex cause high system cpu 
•Solution 
–We use google tcmalloc to replace the default glibc ptmalloc by LD_PRELOAD. The query latency is reduced from 3 second to 300ms 
–Since mongodb 2.2 already use tcmalloc as default memory allocator, you can use mongodb 2.2 directly.
eBay Inc. confidential 
33 
Q & A 
Thanks! 
please visit us @eBayTech

Weitere ähnliche Inhalte

Was ist angesagt?

Unified Batch & Stream Processing with Apache Samza
Unified Batch & Stream Processing with Apache SamzaUnified Batch & Stream Processing with Apache Samza
Unified Batch & Stream Processing with Apache SamzaDataWorks Summit
 
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 MaxScaleMariaDB plc
 
Visualizing Kafka Security
Visualizing Kafka SecurityVisualizing Kafka Security
Visualizing Kafka SecurityDataWorks Summit
 
HBaseCon 2013:High-Throughput, Transactional Stream Processing on Apache HBase
HBaseCon 2013:High-Throughput, Transactional Stream Processing on Apache HBase HBaseCon 2013:High-Throughput, Transactional Stream Processing on Apache HBase
HBaseCon 2013:High-Throughput, Transactional Stream Processing on Apache HBase Cloudera, Inc.
 
Change data capture with MongoDB and Kafka.
Change data capture with MongoDB and Kafka.Change data capture with MongoDB and Kafka.
Change data capture with MongoDB and Kafka.Dan Harvey
 
Make 2016 your year of SMACK talk
Make 2016 your year of SMACK talkMake 2016 your year of SMACK talk
Make 2016 your year of SMACK talkDataStax Academy
 
HBaseConAsia2018 Track2-4: HTAP DB-System: AsparaDB HBase, Phoenix, and Spark
HBaseConAsia2018 Track2-4: HTAP DB-System: AsparaDB HBase, Phoenix, and SparkHBaseConAsia2018 Track2-4: HTAP DB-System: AsparaDB HBase, Phoenix, and Spark
HBaseConAsia2018 Track2-4: HTAP DB-System: AsparaDB HBase, Phoenix, and SparkMichael Stack
 
Curriculum Associates Strata NYC 2017
Curriculum Associates Strata NYC 2017Curriculum Associates Strata NYC 2017
Curriculum Associates Strata NYC 2017Kristi Lewandowski
 
Hazelcast 3.6 Roadmap Preview
Hazelcast 3.6 Roadmap PreviewHazelcast 3.6 Roadmap Preview
Hazelcast 3.6 Roadmap PreviewHazelcast
 
Coherence RoadMap 2018
Coherence RoadMap 2018Coherence RoadMap 2018
Coherence RoadMap 2018harvraja
 
How to upgrade like a boss to my sql 8.0?
How to upgrade like a boss to my sql 8.0?How to upgrade like a boss to my sql 8.0?
How to upgrade like a boss to my sql 8.0?Alkin Tezuysal
 
hbaseconasia2017: HareQL:快速HBase查詢工具的發展過程
hbaseconasia2017: HareQL:快速HBase查詢工具的發展過程hbaseconasia2017: HareQL:快速HBase查詢工具的發展過程
hbaseconasia2017: HareQL:快速HBase查詢工具的發展過程HBaseCon
 
Apache Geode Clubhouse - WAN-based Replication
Apache Geode Clubhouse - WAN-based ReplicationApache Geode Clubhouse - WAN-based Replication
Apache Geode Clubhouse - WAN-based ReplicationPivotalOpenSourceHub
 
Flink Forward Berlin 2017: Aris Kyriakos Koliopoulos - Drivetribe's Kappa Arc...
Flink Forward Berlin 2017: Aris Kyriakos Koliopoulos - Drivetribe's Kappa Arc...Flink Forward Berlin 2017: Aris Kyriakos Koliopoulos - Drivetribe's Kappa Arc...
Flink Forward Berlin 2017: Aris Kyriakos Koliopoulos - Drivetribe's Kappa Arc...Flink Forward
 
Speed Up Your Existing Relational Databases with Hazelcast and Speedment
Speed Up Your Existing Relational Databases with Hazelcast and SpeedmentSpeed Up Your Existing Relational Databases with Hazelcast and Speedment
Speed Up Your Existing Relational Databases with Hazelcast and SpeedmentHazelcast
 
HBaseConAsia2018 Keynote1: Apache HBase Project Status
HBaseConAsia2018 Keynote1: Apache HBase Project StatusHBaseConAsia2018 Keynote1: Apache HBase Project Status
HBaseConAsia2018 Keynote1: Apache HBase Project StatusMichael Stack
 
Using Apache Geode: Lessons Learned at Southwest Airlines
Using Apache Geode: Lessons Learned at Southwest AirlinesUsing Apache Geode: Lessons Learned at Southwest Airlines
Using Apache Geode: Lessons Learned at Southwest AirlinesVMware Tanzu
 

Was ist angesagt? (20)

Unified Batch & Stream Processing with Apache Samza
Unified Batch & Stream Processing with Apache SamzaUnified Batch & Stream Processing with Apache Samza
Unified Batch & Stream Processing with Apache Samza
 
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
 
Cassandra in e-commerce
Cassandra in e-commerceCassandra in e-commerce
Cassandra in e-commerce
 
Visualizing Kafka Security
Visualizing Kafka SecurityVisualizing Kafka Security
Visualizing Kafka Security
 
HBaseCon 2013:High-Throughput, Transactional Stream Processing on Apache HBase
HBaseCon 2013:High-Throughput, Transactional Stream Processing on Apache HBase HBaseCon 2013:High-Throughput, Transactional Stream Processing on Apache HBase
HBaseCon 2013:High-Throughput, Transactional Stream Processing on Apache HBase
 
Change data capture with MongoDB and Kafka.
Change data capture with MongoDB and Kafka.Change data capture with MongoDB and Kafka.
Change data capture with MongoDB and Kafka.
 
Make 2016 your year of SMACK talk
Make 2016 your year of SMACK talkMake 2016 your year of SMACK talk
Make 2016 your year of SMACK talk
 
HBaseConAsia2018 Track2-4: HTAP DB-System: AsparaDB HBase, Phoenix, and Spark
HBaseConAsia2018 Track2-4: HTAP DB-System: AsparaDB HBase, Phoenix, and SparkHBaseConAsia2018 Track2-4: HTAP DB-System: AsparaDB HBase, Phoenix, and Spark
HBaseConAsia2018 Track2-4: HTAP DB-System: AsparaDB HBase, Phoenix, and Spark
 
Curriculum Associates Strata NYC 2017
Curriculum Associates Strata NYC 2017Curriculum Associates Strata NYC 2017
Curriculum Associates Strata NYC 2017
 
Hazelcast 3.6 Roadmap Preview
Hazelcast 3.6 Roadmap PreviewHazelcast 3.6 Roadmap Preview
Hazelcast 3.6 Roadmap Preview
 
Coherence RoadMap 2018
Coherence RoadMap 2018Coherence RoadMap 2018
Coherence RoadMap 2018
 
How to upgrade like a boss to my sql 8.0?
How to upgrade like a boss to my sql 8.0?How to upgrade like a boss to my sql 8.0?
How to upgrade like a boss to my sql 8.0?
 
hbaseconasia2017: HareQL:快速HBase查詢工具的發展過程
hbaseconasia2017: HareQL:快速HBase查詢工具的發展過程hbaseconasia2017: HareQL:快速HBase查詢工具的發展過程
hbaseconasia2017: HareQL:快速HBase查詢工具的發展過程
 
Apache Geode Clubhouse - WAN-based Replication
Apache Geode Clubhouse - WAN-based ReplicationApache Geode Clubhouse - WAN-based Replication
Apache Geode Clubhouse - WAN-based Replication
 
25 snowflake
25 snowflake25 snowflake
25 snowflake
 
Flink Forward Berlin 2017: Aris Kyriakos Koliopoulos - Drivetribe's Kappa Arc...
Flink Forward Berlin 2017: Aris Kyriakos Koliopoulos - Drivetribe's Kappa Arc...Flink Forward Berlin 2017: Aris Kyriakos Koliopoulos - Drivetribe's Kappa Arc...
Flink Forward Berlin 2017: Aris Kyriakos Koliopoulos - Drivetribe's Kappa Arc...
 
Speed Up Your Existing Relational Databases with Hazelcast and Speedment
Speed Up Your Existing Relational Databases with Hazelcast and SpeedmentSpeed Up Your Existing Relational Databases with Hazelcast and Speedment
Speed Up Your Existing Relational Databases with Hazelcast and Speedment
 
HBaseConAsia2018 Keynote1: Apache HBase Project Status
HBaseConAsia2018 Keynote1: Apache HBase Project StatusHBaseConAsia2018 Keynote1: Apache HBase Project Status
HBaseConAsia2018 Keynote1: Apache HBase Project Status
 
Big Data Tools in AWS
Big Data Tools in AWSBig Data Tools in AWS
Big Data Tools in AWS
 
Using Apache Geode: Lessons Learned at Southwest Airlines
Using Apache Geode: Lessons Learned at Southwest AirlinesUsing Apache Geode: Lessons Learned at Southwest Airlines
Using Apache Geode: Lessons Learned at Southwest Airlines
 

Andere mochten auch

Cloud-Scale Kubernetes at eBay
Cloud-Scale Kubernetes at eBayCloud-Scale Kubernetes at eBay
Cloud-Scale Kubernetes at eBayKubeAcademy
 
Apache Kylin: Hadoop OLAP Engine, 2014 Dec
Apache Kylin: Hadoop OLAP Engine, 2014 DecApache Kylin: Hadoop OLAP Engine, 2014 Dec
Apache Kylin: Hadoop OLAP Engine, 2014 DecYang Li
 
Kylin Engineering Principles
Kylin Engineering PrinciplesKylin Engineering Principles
Kylin Engineering PrinciplesXu Jiang
 
Tectonic Summit 2016: Networking for Kubernetes
Tectonic Summit 2016: Networking for Kubernetes Tectonic Summit 2016: Networking for Kubernetes
Tectonic Summit 2016: Networking for Kubernetes CoreOS
 
Ebay: DB Capacity planning at eBay
Ebay: DB Capacity planning at eBayEbay: DB Capacity planning at eBay
Ebay: DB Capacity planning at eBayDataStax Academy
 
Apache Kylin Introduction
Apache Kylin IntroductionApache Kylin Introduction
Apache Kylin IntroductionLuke Han
 
Low Latency OLAP with Hadoop and HBase
Low Latency OLAP with Hadoop and HBaseLow Latency OLAP with Hadoop and HBase
Low Latency OLAP with Hadoop and HBaseDataWorks Summit
 
Apache Kylin @ Big Data Europe 2015
Apache Kylin @ Big Data Europe 2015Apache Kylin @ Big Data Europe 2015
Apache Kylin @ Big Data Europe 2015Seshu Adunuthula
 
Apache Kylin – Cubes on Hadoop
Apache Kylin – Cubes on HadoopApache Kylin – Cubes on Hadoop
Apache Kylin – Cubes on HadoopDataWorks Summit
 
Wdrożenie systemu e-commerce B2B
Wdrożenie systemu e-commerce B2BWdrożenie systemu e-commerce B2B
Wdrożenie systemu e-commerce B2BLukasz Plutecki
 
Design cube in Apache Kylin
Design cube in Apache KylinDesign cube in Apache Kylin
Design cube in Apache KylinYang Li
 
The eBay Architecture: Striking a Balance between Site Stability, Feature Ve...
The eBay Architecture:  Striking a Balance between Site Stability, Feature Ve...The eBay Architecture:  Striking a Balance between Site Stability, Feature Ve...
The eBay Architecture: Striking a Balance between Site Stability, Feature Ve...Randy Shoup
 
MIS presentation on Skype Business Model
MIS presentation on Skype Business ModelMIS presentation on Skype Business Model
MIS presentation on Skype Business ModelAmit Tiwari
 
HBaseCon 2015: Apache Kylin - Extreme OLAP Engine for Hadoop
HBaseCon 2015: Apache Kylin - Extreme OLAP  Engine for HadoopHBaseCon 2015: Apache Kylin - Extreme OLAP  Engine for Hadoop
HBaseCon 2015: Apache Kylin - Extreme OLAP Engine for HadoopHBaseCon
 
Apache Kylin’s Performance Boost from Apache HBase
Apache Kylin’s Performance Boost from Apache HBaseApache Kylin’s Performance Boost from Apache HBase
Apache Kylin’s Performance Boost from Apache HBaseHBaseCon
 
eBay Architecture
eBay Architecture eBay Architecture
eBay Architecture Tony Ng
 

Andere mochten auch (20)

Open stack@ebay
Open stack@ebayOpen stack@ebay
Open stack@ebay
 
Cloud@ebay
Cloud@ebayCloud@ebay
Cloud@ebay
 
Cloud-Scale Kubernetes at eBay
Cloud-Scale Kubernetes at eBayCloud-Scale Kubernetes at eBay
Cloud-Scale Kubernetes at eBay
 
Apache Kylin: Hadoop OLAP Engine, 2014 Dec
Apache Kylin: Hadoop OLAP Engine, 2014 DecApache Kylin: Hadoop OLAP Engine, 2014 Dec
Apache Kylin: Hadoop OLAP Engine, 2014 Dec
 
Kylin Engineering Principles
Kylin Engineering PrinciplesKylin Engineering Principles
Kylin Engineering Principles
 
Tectonic Summit 2016: Networking for Kubernetes
Tectonic Summit 2016: Networking for Kubernetes Tectonic Summit 2016: Networking for Kubernetes
Tectonic Summit 2016: Networking for Kubernetes
 
Ebay: DB Capacity planning at eBay
Ebay: DB Capacity planning at eBayEbay: DB Capacity planning at eBay
Ebay: DB Capacity planning at eBay
 
Apache Kylin Introduction
Apache Kylin IntroductionApache Kylin Introduction
Apache Kylin Introduction
 
Low Latency OLAP with Hadoop and HBase
Low Latency OLAP with Hadoop and HBaseLow Latency OLAP with Hadoop and HBase
Low Latency OLAP with Hadoop and HBase
 
Apache Kylin @ Big Data Europe 2015
Apache Kylin @ Big Data Europe 2015Apache Kylin @ Big Data Europe 2015
Apache Kylin @ Big Data Europe 2015
 
Apache Kylin – Cubes on Hadoop
Apache Kylin – Cubes on HadoopApache Kylin – Cubes on Hadoop
Apache Kylin – Cubes on Hadoop
 
Wdrożenie systemu e-commerce B2B
Wdrożenie systemu e-commerce B2BWdrożenie systemu e-commerce B2B
Wdrożenie systemu e-commerce B2B
 
Design cube in Apache Kylin
Design cube in Apache KylinDesign cube in Apache Kylin
Design cube in Apache Kylin
 
The Evolution of Apache Kylin
The Evolution of Apache KylinThe Evolution of Apache Kylin
The Evolution of Apache Kylin
 
The eBay Architecture: Striking a Balance between Site Stability, Feature Ve...
The eBay Architecture:  Striking a Balance between Site Stability, Feature Ve...The eBay Architecture:  Striking a Balance between Site Stability, Feature Ve...
The eBay Architecture: Striking a Balance between Site Stability, Feature Ve...
 
MIS presentation on Skype Business Model
MIS presentation on Skype Business ModelMIS presentation on Skype Business Model
MIS presentation on Skype Business Model
 
HBaseCon 2015: Apache Kylin - Extreme OLAP Engine for Hadoop
HBaseCon 2015: Apache Kylin - Extreme OLAP  Engine for HadoopHBaseCon 2015: Apache Kylin - Extreme OLAP  Engine for Hadoop
HBaseCon 2015: Apache Kylin - Extreme OLAP Engine for Hadoop
 
Apache Kylin’s Performance Boost from Apache HBase
Apache Kylin’s Performance Boost from Apache HBaseApache Kylin’s Performance Boost from Apache HBase
Apache Kylin’s Performance Boost from Apache HBase
 
eBay Architecture
eBay Architecture eBay Architecture
eBay Architecture
 
Network Topology
Network TopologyNetwork Topology
Network Topology
 

Ähnlich wie eBay Cloud Configuration Management System Overview

Membase Meetup - Silicon Valley
Membase Meetup - Silicon ValleyMembase Meetup - Silicon Valley
Membase Meetup - Silicon ValleyMembase
 
Membase Intro from Membase Meetup San Francisco
Membase Intro from Membase Meetup San FranciscoMembase Intro from Membase Meetup San Francisco
Membase Intro from Membase Meetup San FranciscoMembase
 
Efficient working with Databases in LabVIEW - Sam Sharp (MediaMongrels Ltd) -...
Efficient working with Databases in LabVIEW - Sam Sharp (MediaMongrels Ltd) -...Efficient working with Databases in LabVIEW - Sam Sharp (MediaMongrels Ltd) -...
Efficient working with Databases in LabVIEW - Sam Sharp (MediaMongrels Ltd) -...MediaMongrels Ltd
 
Access Data from XPages with the Relational Controls
Access Data from XPages with the Relational ControlsAccess Data from XPages with the Relational Controls
Access Data from XPages with the Relational ControlsTeamstudio
 
Architecture Patterns - Open Discussion
Architecture Patterns - Open DiscussionArchitecture Patterns - Open Discussion
Architecture Patterns - Open DiscussionNguyen Tung
 
Membase East Coast Meetups
Membase East Coast MeetupsMembase East Coast Meetups
Membase East Coast MeetupsMembase
 
EM12c: Capacity Planning with OEM Metrics
EM12c: Capacity Planning with OEM MetricsEM12c: Capacity Planning with OEM Metrics
EM12c: Capacity Planning with OEM MetricsMaaz Anjum
 
Case Study: Migrating Hyperic from EJB to Spring from JBoss to Apache Tomcat
Case Study: Migrating Hyperic from EJB to Spring from JBoss to Apache TomcatCase Study: Migrating Hyperic from EJB to Spring from JBoss to Apache Tomcat
Case Study: Migrating Hyperic from EJB to Spring from JBoss to Apache TomcatVMware Hyperic
 
Meetup Oracle Database MAD_BCN: 1.3 Gestión del ciclo de vida de Oracle Datab...
Meetup Oracle Database MAD_BCN: 1.3 Gestión del ciclo de vida de Oracle Datab...Meetup Oracle Database MAD_BCN: 1.3 Gestión del ciclo de vida de Oracle Datab...
Meetup Oracle Database MAD_BCN: 1.3 Gestión del ciclo de vida de Oracle Datab...avanttic Consultoría Tecnológica
 
Storage Systems For Scalable systems
Storage Systems For Scalable systemsStorage Systems For Scalable systems
Storage Systems For Scalable systemselliando dias
 
Membase Meetup 2010
Membase Meetup 2010Membase Meetup 2010
Membase Meetup 2010Membase
 
MySQL Performance Tuning at COSCUP 2014
MySQL Performance Tuning at COSCUP 2014MySQL Performance Tuning at COSCUP 2014
MySQL Performance Tuning at COSCUP 2014Ryusuke Kajiyama
 
Data Handning with Sqlite for Android
Data Handning with Sqlite for AndroidData Handning with Sqlite for Android
Data Handning with Sqlite for AndroidJakir Hossain
 
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...Aaron Shilo
 
AWS re:Invent 2016: How Fulfillment by Amazon (FBA) and Scopely Improved Resu...
AWS re:Invent 2016: How Fulfillment by Amazon (FBA) and Scopely Improved Resu...AWS re:Invent 2016: How Fulfillment by Amazon (FBA) and Scopely Improved Resu...
AWS re:Invent 2016: How Fulfillment by Amazon (FBA) and Scopely Improved Resu...Amazon Web Services
 
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB MongoDB
 
Case Study: Credit Card Core System with Exalogic, Exadata, Oracle Cloud Mach...
Case Study: Credit Card Core System with Exalogic, Exadata, Oracle Cloud Mach...Case Study: Credit Card Core System with Exalogic, Exadata, Oracle Cloud Mach...
Case Study: Credit Card Core System with Exalogic, Exadata, Oracle Cloud Mach...Hirofumi Iwasaki
 

Ähnlich wie eBay Cloud Configuration Management System Overview (20)

Membase Meetup - Silicon Valley
Membase Meetup - Silicon ValleyMembase Meetup - Silicon Valley
Membase Meetup - Silicon Valley
 
Membase Intro from Membase Meetup San Francisco
Membase Intro from Membase Meetup San FranciscoMembase Intro from Membase Meetup San Francisco
Membase Intro from Membase Meetup San Francisco
 
Efficient working with Databases in LabVIEW - Sam Sharp (MediaMongrels Ltd) -...
Efficient working with Databases in LabVIEW - Sam Sharp (MediaMongrels Ltd) -...Efficient working with Databases in LabVIEW - Sam Sharp (MediaMongrels Ltd) -...
Efficient working with Databases in LabVIEW - Sam Sharp (MediaMongrels Ltd) -...
 
Access Data from XPages with the Relational Controls
Access Data from XPages with the Relational ControlsAccess Data from XPages with the Relational Controls
Access Data from XPages with the Relational Controls
 
Architecture Patterns - Open Discussion
Architecture Patterns - Open DiscussionArchitecture Patterns - Open Discussion
Architecture Patterns - Open Discussion
 
Membase East Coast Meetups
Membase East Coast MeetupsMembase East Coast Meetups
Membase East Coast Meetups
 
COBOL to Apache Spark
COBOL to Apache SparkCOBOL to Apache Spark
COBOL to Apache Spark
 
EM12c: Capacity Planning with OEM Metrics
EM12c: Capacity Planning with OEM MetricsEM12c: Capacity Planning with OEM Metrics
EM12c: Capacity Planning with OEM Metrics
 
Case Study: Migrating Hyperic from EJB to Spring from JBoss to Apache Tomcat
Case Study: Migrating Hyperic from EJB to Spring from JBoss to Apache TomcatCase Study: Migrating Hyperic from EJB to Spring from JBoss to Apache Tomcat
Case Study: Migrating Hyperic from EJB to Spring from JBoss to Apache Tomcat
 
Meetup Oracle Database MAD_BCN: 1.3 Gestión del ciclo de vida de Oracle Datab...
Meetup Oracle Database MAD_BCN: 1.3 Gestión del ciclo de vida de Oracle Datab...Meetup Oracle Database MAD_BCN: 1.3 Gestión del ciclo de vida de Oracle Datab...
Meetup Oracle Database MAD_BCN: 1.3 Gestión del ciclo de vida de Oracle Datab...
 
Storage Systems For Scalable systems
Storage Systems For Scalable systemsStorage Systems For Scalable systems
Storage Systems For Scalable systems
 
Membase Meetup 2010
Membase Meetup 2010Membase Meetup 2010
Membase Meetup 2010
 
MySQL Performance Tuning at COSCUP 2014
MySQL Performance Tuning at COSCUP 2014MySQL Performance Tuning at COSCUP 2014
MySQL Performance Tuning at COSCUP 2014
 
Data Handning with Sqlite for Android
Data Handning with Sqlite for AndroidData Handning with Sqlite for Android
Data Handning with Sqlite for Android
 
Master.pptx
Master.pptxMaster.pptx
Master.pptx
 
Serverless SQL
Serverless SQLServerless SQL
Serverless SQL
 
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
Exploring Oracle Database Performance Tuning Best Practices for DBAs and Deve...
 
AWS re:Invent 2016: How Fulfillment by Amazon (FBA) and Scopely Improved Resu...
AWS re:Invent 2016: How Fulfillment by Amazon (FBA) and Scopely Improved Resu...AWS re:Invent 2016: How Fulfillment by Amazon (FBA) and Scopely Improved Resu...
AWS re:Invent 2016: How Fulfillment by Amazon (FBA) and Scopely Improved Resu...
 
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
Webinar: Adobe Experience Manager Clustering Made Easy on MongoDB
 
Case Study: Credit Card Core System with Exalogic, Exadata, Oracle Cloud Mach...
Case Study: Credit Card Core System with Exalogic, Exadata, Oracle Cloud Mach...Case Study: Credit Card Core System with Exalogic, Exadata, Oracle Cloud Mach...
Case Study: Credit Card Core System with Exalogic, Exadata, Oracle Cloud Mach...
 

Kürzlich hochgeladen

Genshin Impact PPT Template by EaTemp.pptx
Genshin Impact PPT Template by EaTemp.pptxGenshin Impact PPT Template by EaTemp.pptx
Genshin Impact PPT Template by EaTemp.pptxJohnree4
 
RACHEL-ANN M. TENIBRO PRODUCT RESEARCH PRESENTATION
RACHEL-ANN M. TENIBRO PRODUCT RESEARCH PRESENTATIONRACHEL-ANN M. TENIBRO PRODUCT RESEARCH PRESENTATION
RACHEL-ANN M. TENIBRO PRODUCT RESEARCH PRESENTATIONRachelAnnTenibroAmaz
 
The Ten Facts About People With Autism Presentation
The Ten Facts About People With Autism PresentationThe Ten Facts About People With Autism Presentation
The Ten Facts About People With Autism PresentationNathan Young
 
SaaStr Workshop Wednesday w/ Kyle Norton, Owner.com
SaaStr Workshop Wednesday w/ Kyle Norton, Owner.comSaaStr Workshop Wednesday w/ Kyle Norton, Owner.com
SaaStr Workshop Wednesday w/ Kyle Norton, Owner.comsaastr
 
Mathan flower ppt.pptx slide orchids ✨🌸
Mathan flower ppt.pptx slide orchids ✨🌸Mathan flower ppt.pptx slide orchids ✨🌸
Mathan flower ppt.pptx slide orchids ✨🌸mathanramanathan2005
 
SBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation TrackSBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation TrackSebastiano Panichella
 
Early Modern Spain. All about this period
Early Modern Spain. All about this periodEarly Modern Spain. All about this period
Early Modern Spain. All about this periodSaraIsabelJimenez
 
Event 4 Introduction to Open Source.pptx
Event 4 Introduction to Open Source.pptxEvent 4 Introduction to Open Source.pptx
Event 4 Introduction to Open Source.pptxaryanv1753
 
Chizaram's Women Tech Makers Deck. .pptx
Chizaram's Women Tech Makers Deck.  .pptxChizaram's Women Tech Makers Deck.  .pptx
Chizaram's Women Tech Makers Deck. .pptxogubuikealex
 
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with AerialistSimulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with AerialistSebastiano Panichella
 
DGT @ CTAC 2024 Valencia: Most crucial invest to digitalisation_Sven Zoelle_v...
DGT @ CTAC 2024 Valencia: Most crucial invest to digitalisation_Sven Zoelle_v...DGT @ CTAC 2024 Valencia: Most crucial invest to digitalisation_Sven Zoelle_v...
DGT @ CTAC 2024 Valencia: Most crucial invest to digitalisation_Sven Zoelle_v...Henrik Hanke
 
miladyskindiseases-200705210221 2.!!pptx
miladyskindiseases-200705210221 2.!!pptxmiladyskindiseases-200705210221 2.!!pptx
miladyskindiseases-200705210221 2.!!pptxCarrieButtitta
 
Dutch Power - 26 maart 2024 - Henk Kras - Circular Plastics
Dutch Power - 26 maart 2024 - Henk Kras - Circular PlasticsDutch Power - 26 maart 2024 - Henk Kras - Circular Plastics
Dutch Power - 26 maart 2024 - Henk Kras - Circular PlasticsDutch Power
 
Work Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptxWork Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptxmavinoikein
 
Engaging Eid Ul Fitr Presentation for Kindergartners.pptx
Engaging Eid Ul Fitr Presentation for Kindergartners.pptxEngaging Eid Ul Fitr Presentation for Kindergartners.pptx
Engaging Eid Ul Fitr Presentation for Kindergartners.pptxAsifArshad8
 
Quality by design.. ppt for RA (1ST SEM
Quality by design.. ppt for  RA (1ST SEMQuality by design.. ppt for  RA (1ST SEM
Quality by design.. ppt for RA (1ST SEMCharmi13
 
INDIAN GCP GUIDELINE. for Regulatory affair 1st sem CRR
INDIAN GCP GUIDELINE. for Regulatory  affair 1st sem CRRINDIAN GCP GUIDELINE. for Regulatory  affair 1st sem CRR
INDIAN GCP GUIDELINE. for Regulatory affair 1st sem CRRsarwankumar4524
 
The 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringThe 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringSebastiano Panichella
 
PHYSICS PROJECT BY MSC - NANOTECHNOLOGY
PHYSICS PROJECT BY MSC  - NANOTECHNOLOGYPHYSICS PROJECT BY MSC  - NANOTECHNOLOGY
PHYSICS PROJECT BY MSC - NANOTECHNOLOGYpruthirajnayak525
 
THE COUNTRY WHO SOLVED THE WORLD_HOW CHINA LAUNCHED THE CIVILIZATION REVOLUTI...
THE COUNTRY WHO SOLVED THE WORLD_HOW CHINA LAUNCHED THE CIVILIZATION REVOLUTI...THE COUNTRY WHO SOLVED THE WORLD_HOW CHINA LAUNCHED THE CIVILIZATION REVOLUTI...
THE COUNTRY WHO SOLVED THE WORLD_HOW CHINA LAUNCHED THE CIVILIZATION REVOLUTI...漢銘 謝
 

Kürzlich hochgeladen (20)

Genshin Impact PPT Template by EaTemp.pptx
Genshin Impact PPT Template by EaTemp.pptxGenshin Impact PPT Template by EaTemp.pptx
Genshin Impact PPT Template by EaTemp.pptx
 
RACHEL-ANN M. TENIBRO PRODUCT RESEARCH PRESENTATION
RACHEL-ANN M. TENIBRO PRODUCT RESEARCH PRESENTATIONRACHEL-ANN M. TENIBRO PRODUCT RESEARCH PRESENTATION
RACHEL-ANN M. TENIBRO PRODUCT RESEARCH PRESENTATION
 
The Ten Facts About People With Autism Presentation
The Ten Facts About People With Autism PresentationThe Ten Facts About People With Autism Presentation
The Ten Facts About People With Autism Presentation
 
SaaStr Workshop Wednesday w/ Kyle Norton, Owner.com
SaaStr Workshop Wednesday w/ Kyle Norton, Owner.comSaaStr Workshop Wednesday w/ Kyle Norton, Owner.com
SaaStr Workshop Wednesday w/ Kyle Norton, Owner.com
 
Mathan flower ppt.pptx slide orchids ✨🌸
Mathan flower ppt.pptx slide orchids ✨🌸Mathan flower ppt.pptx slide orchids ✨🌸
Mathan flower ppt.pptx slide orchids ✨🌸
 
SBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation TrackSBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation Track
 
Early Modern Spain. All about this period
Early Modern Spain. All about this periodEarly Modern Spain. All about this period
Early Modern Spain. All about this period
 
Event 4 Introduction to Open Source.pptx
Event 4 Introduction to Open Source.pptxEvent 4 Introduction to Open Source.pptx
Event 4 Introduction to Open Source.pptx
 
Chizaram's Women Tech Makers Deck. .pptx
Chizaram's Women Tech Makers Deck.  .pptxChizaram's Women Tech Makers Deck.  .pptx
Chizaram's Women Tech Makers Deck. .pptx
 
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with AerialistSimulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
 
DGT @ CTAC 2024 Valencia: Most crucial invest to digitalisation_Sven Zoelle_v...
DGT @ CTAC 2024 Valencia: Most crucial invest to digitalisation_Sven Zoelle_v...DGT @ CTAC 2024 Valencia: Most crucial invest to digitalisation_Sven Zoelle_v...
DGT @ CTAC 2024 Valencia: Most crucial invest to digitalisation_Sven Zoelle_v...
 
miladyskindiseases-200705210221 2.!!pptx
miladyskindiseases-200705210221 2.!!pptxmiladyskindiseases-200705210221 2.!!pptx
miladyskindiseases-200705210221 2.!!pptx
 
Dutch Power - 26 maart 2024 - Henk Kras - Circular Plastics
Dutch Power - 26 maart 2024 - Henk Kras - Circular PlasticsDutch Power - 26 maart 2024 - Henk Kras - Circular Plastics
Dutch Power - 26 maart 2024 - Henk Kras - Circular Plastics
 
Work Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptxWork Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptx
 
Engaging Eid Ul Fitr Presentation for Kindergartners.pptx
Engaging Eid Ul Fitr Presentation for Kindergartners.pptxEngaging Eid Ul Fitr Presentation for Kindergartners.pptx
Engaging Eid Ul Fitr Presentation for Kindergartners.pptx
 
Quality by design.. ppt for RA (1ST SEM
Quality by design.. ppt for  RA (1ST SEMQuality by design.. ppt for  RA (1ST SEM
Quality by design.. ppt for RA (1ST SEM
 
INDIAN GCP GUIDELINE. for Regulatory affair 1st sem CRR
INDIAN GCP GUIDELINE. for Regulatory  affair 1st sem CRRINDIAN GCP GUIDELINE. for Regulatory  affair 1st sem CRR
INDIAN GCP GUIDELINE. for Regulatory affair 1st sem CRR
 
The 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringThe 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software Engineering
 
PHYSICS PROJECT BY MSC - NANOTECHNOLOGY
PHYSICS PROJECT BY MSC  - NANOTECHNOLOGYPHYSICS PROJECT BY MSC  - NANOTECHNOLOGY
PHYSICS PROJECT BY MSC - NANOTECHNOLOGY
 
THE COUNTRY WHO SOLVED THE WORLD_HOW CHINA LAUNCHED THE CIVILIZATION REVOLUTI...
THE COUNTRY WHO SOLVED THE WORLD_HOW CHINA LAUNCHED THE CIVILIZATION REVOLUTI...THE COUNTRY WHO SOLVED THE WORLD_HOW CHINA LAUNCHED THE CIVILIZATION REVOLUTI...
THE COUNTRY WHO SOLVED THE WORLD_HOW CHINA LAUNCHED THE CIVILIZATION REVOLUTI...
 

eBay Cloud Configuration Management System Overview

  • 1. eBay Inc. Proprietary & Confidential eBay Cloud Configuration Management System 蒋旭 平台技术部 架构师 eBay中国技术研发中心
  • 2. eBay Inc. confidential 2 Agenda •eBay Cloud Overview –Why eBay Need Cloud? –eBay Cloud Tech Overview •CMS - Configuration Management System –Architecture –Try Me Page –Functionality & Demo •NoSQL in CMS –Why CMS choose NoSQL? –Overcome NoSQL Design Challenges –Resolve Open Source NoSQL Issues
  • 3. eBay Inc. confidential 3 Why eBay need cloud?
  • 4. eBay Inc. confidential 4 eBay Scale 2B page views/day 96M active users 500M live listings 5B queries/day 75B database calls/day 9PB of data 14,000 application servers 44M line of code Data Analytics Search Infrastructure Front End 10M items added/day
  • 5. eBay Inc. confidential 5 eBay Utilization Number of servers required based on utilization for 8 pools
  • 6. eBay Inc. confidential 6 eBay Global Brands
  • 7. eBay Inc. confidential 7 eBay Cloud Tech Overview
  • 8. eBay Inc. confidential 8 eBay Cloud Technology Stack Service Catalog Ticket driven run book automation Chargeback REST APIs Model Driven Close Loop Automation Pay As You Go Configuration Management Database (CMDB) Distributed State Management Monitoring Complex Event Processing
  • 9. eBay Inc. confidential 9 eBay Cloud Architecture Overview Cloud Manager Configuration Management Service Monitoring Infrastructure & Platform Mgt Services REST API Queue API REST API Queue API REST API Cloud Infrastructure Agent metrics Control Current/expected state Discovery Control Events & alerts Thresholds/topology REST API Queue API
  • 10. eBay Inc. confidential 10 Model Driven Automation LB Pool Server Server Server Current State Site Discovery Comparison Expected State Reconciliation Orchestration LB Pool Server Server Server •Desired configuration is specified in the expected state and persisted in CMS •Upon approval, the orchestration will configure the site to reflect the desired configuration. •Updated site configuration is discovered based on detection of configuration events •Reconciliation between the expected and current state allows to verify the proper configuration.
  • 11. eBay Inc. confidential 11 Configuration Management System (CMS)
  • 12. eBay Inc. confidential 12 CMS - Overview •CMS (Configuration Management System) is a high-performance metadata-driven persistence and query service for configuration data with supporting of RESTful API and client lib (Java, Python). •CMS is a generic system that be used for cloud configuration, as well other software needs for configuration. •As a by-product, CMS can be a persistence solution for real-time state data as well. •CMS supports multiple data repositories for desired data isolation.
  • 13. eBay Inc. confidential 13 CMS - Architecture REST API Metadata Service Query Engine Entity Manager Data Access Layer MongoDB Persistence Service Search Service Parser Translator & Optimizer Executor Entity Mapper REST Request Entity Service Branch Service History Service
  • 14. eBay Inc. confidential 14 CMS - Try Me Page
  • 15. eBay Inc. confidential 15 CMS Functionality & Demo
  • 16. eBay Inc. confidential 16 Metadata Model – Basic Feature •The metadata model is based on object-oriented paradigm that can support graph/tree data model –MetaClass define the meta type of runtime data (i.e. entity) –Entity represent one node in graph –Relationship between entity represent the edge in graph •The metadata can contain two types of field: –Attribute field define payload of entity •String, Boolean, Double, Integer, Long, Date •Json –Relationship field define relationship between entity. •Reference •Embedded
  • 17. eBay Inc. confidential 17 Metadata Model – Sample
  • 18. eBay Inc. confidential 18 Metadata Model – Advanced Feature •Metadata Inheritance (parent & child) •Reference Integrity (strong & weak) •Index Support on Metadata (unique contraints & query optimizer) •Mongodb Collection Split by Metadata (break 64 index limitation)
  • 19. eBay Inc. confidential 19 Persistence Service – Basic Feature •The persistence service provides CRUD API for the runtime data (i.e. entity) of metadata. –Create –Retrieval –Update –Delete •The entity can be flat-structure or embedded-structure that conformed to the metadata definition –For reference relationship, entity is flat-structure –For embedded relationship, entity is embedded-structure
  • 20. eBay Inc. confidential 20 Persistence Service – Advanced Feature •Branching (main & sub & merge) •Audit Tracing (entity history) •Reference Integrity (strong & weak) •Conditional Update (version based optimistic locking) •Security Access Control
  • 21. eBay Inc. confidential 21 Query Service – Basic Feature •The query service provides an imperative style query language that defines the traversal path of graph/tree data model. •The query language supports Boolean filter, attribute selection and implicit join that will extract a sub-tree result from graph data set. •For example, *ApplicationService[@name = “pool1"].groups[@name = "columns"].groups[@name = "col1"].serviceInstances* will return service instances under column 1 of pool1 application.
  • 22. eBay Inc. confidential 22 Query Service – Advanced Feature •Query Optimizer (cost & hint) •Result Pagination (sort / limit / skip) •Full Table Scan Check (query filter & index info) •Query Explanation (execution plan)
  • 23. eBay Inc. confidential 23 System Management •Monitoring (approximate & accurate sliding window metrics) •State Management (normal / maintain / overload) •Healthy Model (formula based on qps & latency -> overload state) •API Throttling (overload state -> priority throttling)
  • 24. eBay Inc. confidential 24 Open Source Strategy •Plan to open source the core functionality of CMS •Separate the ebay-related code (e.g. security) from open source code •Welcome to contribute code!
  • 25. eBay Inc. confidential 25 NoSQL in CMS
  • 26. eBay Inc. confidential 26 CMS Requirements •The primary goal of CMS is to efficiently manage the configuration data •The characteristic of configuration data –data model is very complex and flexible –access pattern is reading >> writing –need to support very complex query •Non-functional requirements –High Performance –High Availability –High Scalability –Access Control
  • 27. eBay Inc. confidential 27 Relational DB vs. Nosql DB RDB (i.e. MySQL) Document Store (i.e. MongoDB) Column Store (i.e. Cassandra) DB Schema Rigid Schema Schema Free Flexible Schema 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 Not scale-out horizontally scalable horizontally scalable Metadata DB Schema No metadata No metadata Query SQL Limited query language Limited query language Consistency Transactional Eventual Consistency Eventual Consistency Security AuthZ & AuthN Basic security Basic security Concurrency Control Locking or MVCC database-level locking & atomic operation row-based atomic
  • 28. eBay Inc. confidential 28 Why CMS choose MongoDB? •High Performance –In-Memory Storage (if work set fit in memory) –B-Tree Index •High Availability & High Scalability –Replication Set •Flexible Schema –JSON-Based Document Model •Query Support –Rich, document-based queries.
  • 29. eBay Inc. confidential 29 Overcome NoSQL Design Challenges •No Metadata Management –Metadata Driven •Limit Query Language –Imperative Query Language •No Multi-Row Transaction –Branching & Merge •No Access Control –Security Model
  • 30. eBay Inc. confidential 30 Resolve MongoDB Issues •Open source software is great, but isn’t bug-free to use. •Something, we may need to dig into source code or OS kernel to find the root cause and do some enhancement by ourselves •Case Study –Case 1: High system CPU for high concurrent full table scan query –Case 2: High system CPU for high concurrent large result set query
  • 31. eBay Inc. confidential 31 Resolve MongoDB Issues – Case Study I •Case 1: High system CPU for high concurrent full table scan query •Symptom: –When there are 100+ concurrent client to execute full table scan on a 100K+ collection, the system cpu is 80%+. •Analysis: –gdb sampling show that lost of samples are on pthread_mutex_lock & pthread_mutex_unlock that is called mongo::ps::Rolling::access() –strace sampling show 80%+ syscall are futex –After we study the mongodb code, mongo::ps::Rolling::access() will check whether the record is in memory or not; if it’s out of memory, it will load it into memory. –The problem is that mongo::ps::Rolling::access() will acquire a pthread_mutex for each record that trigger high lock contention. •Solution –We add “full table scan” checking in query engine. And we will reject “full table scan” query when system is in unhealthy state –We have a JIRA CS-3969 opened with 10gen
  • 32. eBay Inc. confidential 32 Resolve MongoDB Issues – Case Study II •Case 2: High system CPU for high concurrent large result set query •Symptom: –When there are 100+ concurrent client to execute large query that return 1K+ result set, the system cpu is 90%+. •Analysis: –gdb sampling show that most samples is on socket recv() and many samples is on malloc mutex that is used in allocate string for query result. –Since recv is io-bound that should not cause high system cpu, so we suspect malloc mutex __lll_lock_wait_private() –oprofile profiling show that 95% sample is futex_wait & futex_wake –Since glibc mutex is implemented by futex, it’s very likely that malloc mutex cause high system cpu •Solution –We use google tcmalloc to replace the default glibc ptmalloc by LD_PRELOAD. The query latency is reduced from 3 second to 300ms –Since mongodb 2.2 already use tcmalloc as default memory allocator, you can use mongodb 2.2 directly.
  • 33. eBay Inc. confidential 33 Q & A Thanks! please visit us @eBayTech