SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
Introduction
Spilgames & Me

Another
Storage
Motivation          Spilgames Storage Platform
System
Properties
Overview
Internals
Versions & Shards             Enrique Paz
Worldwide
Scaling
Datacenters               Senior Backend Developer
Disaster
Scenarios

Lessons
Learned
                               21/03/2013
Currents Status
Contributions




                                                     1/42
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
Internals
Versions & Shards
                    Introduction
Worldwide
Scaling
Datacenters
Disaster
Scenarios

Lessons
Learned
Currents Status
Contributions




                                   2/42
About Me
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
Internals
Versions & Shards
                               • Passionate Erlang developer
Worldwide
Scaling
                               • Testing enthusiast
Datacenters
Disaster
Scenarios
                               • Love beautiful code!
Lessons
Learned
Currents Status
Contributions




                                                               3/42
Spilgames
Introduction
Spilgames & Me

Another
Storage
Motivation
                     • Gaming Platform
System
Properties           • Serving data to 190+ countries world-wide
Overview
Internals
Versions & Shards
                     • 200+ million unique users per month
Worldwide            • Multiple Platforms: Desktop, Mobile Native & Web
Scaling
Datacenters
Disaster
                     • 300+ employees
Scenarios

Lessons              • Offices in The Netherlands & China
Learned
Currents Status      • Revenue: Advertising & EUM
Contributions




                                                                          4/42
Gaming Portals
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
Internals
Versions & Shards

Worldwide
Scaling
Datacenters
Disaster
Scenarios

Lessons
Learned
Currents Status
Contributions




                                     5/42
Gaming Portals
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
Internals
Versions & Shards

Worldwide
Scaling
Datacenters
Disaster
Scenarios

Lessons
Learned
Currents Status
Contributions




                                     6/42
Games
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
Internals
Versions & Shards

Worldwide
Scaling
Datacenters
Disaster
Scenarios

Lessons
Learned
Currents Status
Contributions




                            7/42
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
Internals
Versions & Shards
                    Another Storage
Worldwide
Scaling
Datacenters
Disaster
Scenarios

Lessons
Learned
Currents Status
Contributions




                                      8/42
Another Storage
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
Internals
Versions & Shards

Worldwide
Scaling
Datacenters
Disaster
Scenarios

Lessons
Learned
Currents Status
Contributions




                                      9/42
LAMP Stack & MySql
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties          • Not all developers are DB experts
Overview
Internals           • Difficult to shard the databases
Versions & Shards

Worldwide           • Storage model all over the place
Scaling
Datacenters
Disaster
                    • Security
Scenarios

Lessons
                    • Performance
Learned
Currents Status     • Caching
Contributions

                    • ...




                                                          10/42
Our Ambition
Introduction
Spilgames & Me

Another
Storage
Motivation
                    • Transparent sharding layer
System
Properties
Overview
                    • Sharding on data ownership
Internals
Versions & Shards   • High availability
Worldwide
Scaling
                    • Centralized caching layer
Datacenters
Disaster
Scenarios
                    • Storage engine agnostic
Lessons             • One strict data model
Learned
Currents Status
Contributions
                    • Transparent storage changes
                    • Scaling geographically



                                                    11/42
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
Internals
Versions & Shards
                    System Properties
Worldwide
Scaling
Datacenters
Disaster
Scenarios

Lessons
Learned
Currents Status
Contributions




                                        12/42
Mindset
Introduction
Spilgames & Me

Another
Storage
Motivation

System
                     • Be always available
Properties
Overview             • Avoid global locks
Internals
Versions & Shards    • Accept change as the only constant
Worldwide
Scaling
                     • Embrace inconsistencies
Datacenters
Disaster                   Hardware breaks down (power failures)
Scenarios
                           Version mismatches (upgrading system not atomic)
Lessons
Learned                    State mismatches (adding new machines)
Currents Status
Contributions




                                                                              13/42
A Key-Value Store With Schema
Introduction
Spilgames & Me
                     • Buckets
Another
Storage                    Largely generated OTP applications
Motivation
                           Offer a CRUD-like interface (with filters)
System
Properties
Overview
                     • GIDs (64 bits) identify the data owner
Internals
Versions & Shards
                           user
Worldwide
                           game
Scaling
Datacenters
                     • Buckets can use different storage engines
Disaster
Scenarios                  Several MySql tables in different databases
Lessons                    Just a binary storage (SWIFT)
Learned
Currents Status
                           ...
Contributions
                     • Data for a bucket/GID is cached
                     • Requests can be atomic per bucket/GID


                                                                         14/42
Optimistic Operations
Introduction
Spilgames & Me

Another
Storage
Motivation

System               • Speed > Consistency
Properties
Overview
Internals
                     • Losing some updates in case of crash is affordable
Versions & Shards
                     • Act first on cache and then on disk
Worldwide
Scaling
Datacenters
                     • No warranties of eventual consistency upon crashes
Disaster
Scenarios                  i.e. Activity feeds
Lessons                    i.e. Popular games list
Learned
Currents Status
Contributions




                                                                            15/42
Pessimistic Operations
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties           • Consistency is key and confirmation is required
Overview
Internals
Versions & Shards
                     • Dealing with critical data
Worldwide            • Persist data and, upon success, update cache
Scaling
Datacenters                i.e. Payments
Disaster
Scenarios                  i.e. Personal information
Lessons
Learned
Currents Status
Contributions




                                                                        16/42
How does it work?
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
Internals
Versions & Shards

Worldwide
Scaling
Datacenters
Disaster
Scenarios

Lessons
Learned
Currents Status
Contributions




                                        17/42
System Components
Introduction
Spilgames & Me

Another
Storage
Motivation

System              • lookup application in all nodes.
Properties
Overview
                      Uses a hashing ring (mnesia):
Internals
Versions & Shards
                          replicated in all nodes
Worldwide                 ram_copies
Scaling
Datacenters
                          dirty reads
Disaster
Scenarios
                          transactional writes
Lessons
Learned
                    • Buckets have Pipeline Factories
Currents Status
Contributions
                    • Buckets register PFs in lookup




                                                         18/42
Tracing Pessimistic Operations
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
                    1. Bucket/GID request in a node
Internals
Versions & Shards   2. Local lookup to find a PF
Worldwide
Scaling
                    3. PF receives request
Datacenters
Disaster
Scenarios
                    4. PF builds job
Lessons
Learned
                    5. PF ensures Pipeline for GID
Currents Status
Contributions
                    6. PF queues operation in Pipeline




                                                         19/42
Wait a minute. . .
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
Internals            • “Why do we need pipelines?”
Versions & Shards

Worldwide
                     • “Sequential == Bottleneck !!!”
Scaling
Datacenters          • “Don’t you guys know Erlang is
Disaster
Scenarios
                       about parallelizing work?”
Lessons
Learned
Currents Status
Contributions




                                                        20/42
About Pipelines
Introduction
Spilgames & Me

Another
Storage
Motivation
                     • CONS
System
Properties                Sequential (read) access for hotspots
Overview
Internals
                          i.e. Popular games
Versions & Shards         Optimization: read from SSP cache in PF
Worldwide
Scaling
Datacenters
Disaster
Scenarios

Lessons
Learned
Currents Status
Contributions




                                                                    21/42
About Pipelines
Introduction
Spilgames & Me

Another
Storage
Motivation
                     • CONS
System
Properties                Sequential (read) access for hotspots
Overview
Internals
                          i.e. Popular games
Versions & Shards         Optimization: read from SSP cache in PF
Worldwide
Scaling
                     • PROS
Datacenters
Disaster                  No need for storage engines to support global locks
Scenarios
                          A bucket can combine several engines
Lessons
Learned
Currents Status
Contributions




                                                                                21/42
About Pipelines
Introduction
Spilgames & Me

Another
Storage
Motivation
                     • CONS
System
Properties                 Sequential (read) access for hotspots
Overview
Internals
                           i.e. Popular games
Versions & Shards          Optimization: read from SSP cache in PF
Worldwide
Scaling
                     • PROS
Datacenters
Disaster                   No need for storage engines to support global locks
Scenarios
                           A bucket can combine several engines
Lessons
Learned
Currents Status
                     • Requests to most GIDs (users) are evenly distributed
Contributions




                                                                                 21/42
Schema Versions
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
                     • Schema Versions determine allowed operations and storage(s)
Internals
Versions & Shards    • Client is not aware of them
Worldwide
Scaling
                     • Max 2 schema versions of a bucket at the time
Datacenters
Disaster
Scenarios
                     • Schema version can be changed at bucket/GID level
Lessons
Learned
Currents Status
Contributions




                                                                                     22/42
Shards
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
                     • Useful for partitioning big blocks of data
Internals
Versions & Shards    • Shard points to the physical location of the data
Worldwide
Scaling
                     • Sharding rules are bucket specific. Default is GID % Shards
Datacenters
Disaster
Scenarios
                     • bucket/GID combinations can be migrated between shards
Lessons
Learned
Currents Status
Contributions




                                                                                    23/42
Working With Versions & Shards
Introduction
Spilgames & Me

Another
Storage
Motivation
                    1. insert(Bucket, Gid, Value)
System
Properties          2. insert(Gid, Value)
Overview
Internals
Versions & Shards
                    3. get_vs(Bucket, Gid)
Worldwide           4. {v2, Shard1}
Scaling
Datacenters
Disaster            5. build_job(insert, Gid, Shard1)
Scenarios

Lessons             6. {ok, InsertJob}
Learned
Currents Status     7. {ok, InsertJob}
Contributions




                                                        24/42
One API To Rule Them All
Introduction
Spilgames & Me

Another
Storage              • “Don’t care where it is, just want my data!!!”
Motivation

System
Properties
Overview
Internals
Versions & Shards

Worldwide
Scaling
Datacenters
Disaster
Scenarios

Lessons
Learned
Currents Status
Contributions




                                                                        25/42
One API To Rule Them All
Introduction
Spilgames & Me

Another
Storage              • “Don’t care where it is, just want my data!!!”
Motivation

System               • PIQI helps with the API
Properties
Overview
Internals
Versions & Shards

Worldwide
Scaling
                                                       Erlang client + Protocol Buffers
Datacenters
Disaster
Scenarios                                              HTTP + JSON
Lessons
Learned                                                HTTP + Protocol Buffers
Currents Status
Contributions




                                                                                          25/42
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
Internals
Versions & Shards
                    Worldwide
Worldwide
Scaling
Datacenters
Disaster
Scenarios

Lessons
Learned
Currents Status
Contributions




                                26/42
Worlwide
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
Internals
Versions & Shards

Worldwide
Scaling
Datacenters
Disaster
Scenarios

Lessons
Learned
Currents Status
Contributions




                               27/42
Masters & Satellites
Introduction
Spilgames & Me

Another
Storage
Motivation

System
                    • Master Datacenters
Properties                Have persistent storage
Overview
Internals                 Can own GIDs
Versions & Shards
                          GIDs can be migrated between Master DCs
Worldwide
Scaling
Datacenters
                    • Satellite Datacenters
Disaster
Scenarios
                          Don’t have persistent storage
Lessons                   Easy to setup and decommission
Learned                   Virtual/Cloud-based
Currents Status
Contributions




                                                                    28/42
Start With One DC
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
Internals
Versions & Shards

Worldwide
Scaling
Datacenters
Disaster
Scenarios

Lessons
Learned
Currents Status
Contributions




                                        29/42
Scale Up A Satellite Where Needed
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
Internals
Versions & Shards

Worldwide
Scaling
Datacenters
Disaster
Scenarios

Lessons
Learned
Currents Status
Contributions




                                                        30/42
Turn Satellites Into Masters When Ready
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
Internals
Versions & Shards

Worldwide
Scaling
Datacenters
Disaster
Scenarios

Lessons
Learned
Currents Status
Contributions




                                                              31/42
Working With Multiple Datacenters
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
Internals
Versions & Shards

Worldwide
Scaling
Datacenters
Disaster
Scenarios

Lessons
Learned
Currents Status
Contributions




                                                        32/42
Disaster Scenarios
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
Internals
Versions & Shards

Worldwide
Scaling
Datacenters
Disaster
Scenarios

Lessons
Learned
Currents Status
Contributions




                                         33/42
Losing A Satellite Datacenter
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
Internals
Versions & Shards

Worldwide
Scaling
Datacenters
Disaster
Scenarios

Lessons
Learned
Currents Status
Contributions




                                                    34/42
Losing A Master Datacenter
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
Internals
Versions & Shards

Worldwide
Scaling
Datacenters
Disaster
Scenarios

Lessons
Learned
Currents Status
Contributions




                                                 35/42
Losing A Master Datacenter
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
Internals
Versions & Shards

Worldwide
Scaling
Datacenters
Disaster
Scenarios

Lessons
Learned
Currents Status
Contributions




                                                 36/42
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
Internals
Versions & Shards
                    Lessons Learned
Worldwide
Scaling
Datacenters
Disaster
Scenarios

Lessons
Learned
Currents Status
Contributions




                                      37/42
Where We Are
Introduction
Spilgames & Me

Another
Storage
Motivation
                     • Using simple buckets on LIVE in one DC
System
Properties           • Added relup support for bucket only updates
Overview
Internals
Versions & Shards
                     • Hammering SSP using property based testing
Worldwide            • Integrating restricted search capabilities
Scaling
Datacenters
Disaster
                     • Testing the WAN protocol for inter DC communication
Scenarios

Lessons              • More buckets to go live in H1 2013
Learned
Currents Status      • Satellite DCs coming on H2 2013
Contributions




                                                                             38/42
What We’ve Used
Introduction
Spilgames & Me
                     • Emysql
                             (+) multi-database transaction support
Another
Storage                      (*) multi-timezone support
Motivation
                     •   Eep0018/Jiffy
System
Properties           •   Estatsd
Overview
Internals            •   PropEr
Versions & Shards

Worldwide
                     •   Poolboy
Scaling
Datacenters          •   Lager
Disaster
Scenarios            •   Rebar
Lessons                      (*) semantic versioning, i.e. [">=1.3.1", "<2.0.0"]
Learned
Currents Status
                             (*) shared dependencies
Contributions                (*) xref fixes
                     • Piqi
                     • BashoBench
                             (+) Several tests on the same plot support

                                                                                   39/42
Questions?
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
Internals
Versions & Shards

Worldwide
Scaling
Datacenters
Disaster
Scenarios

Lessons
Learned
Currents Status
Contributions




                                 40/42
That’s All Folks!
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
Internals



                                        Thanks!
Versions & Shards

Worldwide
Scaling
Datacenters
Disaster
Scenarios

Lessons
Learned
Currents Status
Contributions




                                                  41/42
Join Us!
Introduction
Spilgames & Me

Another
Storage
Motivation

System
Properties
Overview
Internals
Versions & Shards

Worldwide
Scaling
Datacenters
Disaster
Scenarios

Lessons
Learned
Currents Status
Contributions


                               http://www.spilgames.com/careers/job-openings/



                                                                                42/42

Mais conteúdo relacionado

Mais procurados

Best Practices with PostgreSQL on Solaris
Best Practices with PostgreSQL on SolarisBest Practices with PostgreSQL on Solaris
Best Practices with PostgreSQL on SolarisJignesh Shah
 
Strata + Hadoop World 2012: High Availability for the HDFS NameNode Phase 2
Strata + Hadoop World 2012: High Availability for the HDFS NameNode Phase 2Strata + Hadoop World 2012: High Availability for the HDFS NameNode Phase 2
Strata + Hadoop World 2012: High Availability for the HDFS NameNode Phase 2Cloudera, Inc.
 
Hdfs ha using journal nodes
Hdfs ha using journal nodesHdfs ha using journal nodes
Hdfs ha using journal nodesEvans Ye
 
HDFS NameNode High Availability
HDFS NameNode High AvailabilityHDFS NameNode High Availability
HDFS NameNode High AvailabilityDataWorks Summit
 
PostgreSQL worst practices, version PGConf.US 2017 by Ilya Kosmodemiansky
PostgreSQL worst practices, version PGConf.US 2017 by Ilya KosmodemianskyPostgreSQL worst practices, version PGConf.US 2017 by Ilya Kosmodemiansky
PostgreSQL worst practices, version PGConf.US 2017 by Ilya KosmodemianskyPostgreSQL-Consulting
 
PostgreSQL High Availability in a Containerized World
PostgreSQL High Availability in a Containerized WorldPostgreSQL High Availability in a Containerized World
PostgreSQL High Availability in a Containerized WorldJignesh Shah
 
NGENSTOR_ODA_P2V_V5
NGENSTOR_ODA_P2V_V5NGENSTOR_ODA_P2V_V5
NGENSTOR_ODA_P2V_V5UniFabric
 
PostgreSQL Portland Performance Practice Project - Database Test 2 Filesystem...
PostgreSQL Portland Performance Practice Project - Database Test 2 Filesystem...PostgreSQL Portland Performance Practice Project - Database Test 2 Filesystem...
PostgreSQL Portland Performance Practice Project - Database Test 2 Filesystem...Mark Wong
 
ZFS for Databases
ZFS for DatabasesZFS for Databases
ZFS for Databasesahl0003
 
Replication Solutions for PostgreSQL
Replication Solutions for PostgreSQLReplication Solutions for PostgreSQL
Replication Solutions for PostgreSQLPeter Eisentraut
 
Nn ha hadoop world.final
Nn ha hadoop world.finalNn ha hadoop world.final
Nn ha hadoop world.finalHortonworks
 
Postgres & Red Hat Cluster Suite
Postgres & Red Hat Cluster SuitePostgres & Red Hat Cluster Suite
Postgres & Red Hat Cluster SuiteEDB
 
Using Recently Published Ceph Reference Architectures to Select Your Ceph Con...
Using Recently Published Ceph Reference Architectures to Select Your Ceph Con...Using Recently Published Ceph Reference Architectures to Select Your Ceph Con...
Using Recently Published Ceph Reference Architectures to Select Your Ceph Con...Patrick McGarry
 
Developing a Ceph Appliance for Secure Environments
Developing a Ceph Appliance for Secure EnvironmentsDeveloping a Ceph Appliance for Secure Environments
Developing a Ceph Appliance for Secure EnvironmentsCeph Community
 
Oracle Solaris 11 as a BIG Data Platform Apache Hadoop Use Case
Oracle Solaris 11 as a BIG Data Platform Apache Hadoop Use CaseOracle Solaris 11 as a BIG Data Platform Apache Hadoop Use Case
Oracle Solaris 11 as a BIG Data Platform Apache Hadoop Use CaseOrgad Kimchi
 
VMworld 2014: Virtualizing Databases
VMworld 2014: Virtualizing DatabasesVMworld 2014: Virtualizing Databases
VMworld 2014: Virtualizing DatabasesVMworld
 
PostgreSQL Scaling And Failover
PostgreSQL Scaling And FailoverPostgreSQL Scaling And Failover
PostgreSQL Scaling And FailoverJohn Paulett
 
SOUG_Deployment__Automation_DB
SOUG_Deployment__Automation_DBSOUG_Deployment__Automation_DB
SOUG_Deployment__Automation_DBUniFabric
 
Dumb Simple PostgreSQL Performance (NYCPUG)
Dumb Simple PostgreSQL Performance (NYCPUG)Dumb Simple PostgreSQL Performance (NYCPUG)
Dumb Simple PostgreSQL Performance (NYCPUG)Joshua Drake
 
Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph Ceph Community
 

Mais procurados (20)

Best Practices with PostgreSQL on Solaris
Best Practices with PostgreSQL on SolarisBest Practices with PostgreSQL on Solaris
Best Practices with PostgreSQL on Solaris
 
Strata + Hadoop World 2012: High Availability for the HDFS NameNode Phase 2
Strata + Hadoop World 2012: High Availability for the HDFS NameNode Phase 2Strata + Hadoop World 2012: High Availability for the HDFS NameNode Phase 2
Strata + Hadoop World 2012: High Availability for the HDFS NameNode Phase 2
 
Hdfs ha using journal nodes
Hdfs ha using journal nodesHdfs ha using journal nodes
Hdfs ha using journal nodes
 
HDFS NameNode High Availability
HDFS NameNode High AvailabilityHDFS NameNode High Availability
HDFS NameNode High Availability
 
PostgreSQL worst practices, version PGConf.US 2017 by Ilya Kosmodemiansky
PostgreSQL worst practices, version PGConf.US 2017 by Ilya KosmodemianskyPostgreSQL worst practices, version PGConf.US 2017 by Ilya Kosmodemiansky
PostgreSQL worst practices, version PGConf.US 2017 by Ilya Kosmodemiansky
 
PostgreSQL High Availability in a Containerized World
PostgreSQL High Availability in a Containerized WorldPostgreSQL High Availability in a Containerized World
PostgreSQL High Availability in a Containerized World
 
NGENSTOR_ODA_P2V_V5
NGENSTOR_ODA_P2V_V5NGENSTOR_ODA_P2V_V5
NGENSTOR_ODA_P2V_V5
 
PostgreSQL Portland Performance Practice Project - Database Test 2 Filesystem...
PostgreSQL Portland Performance Practice Project - Database Test 2 Filesystem...PostgreSQL Portland Performance Practice Project - Database Test 2 Filesystem...
PostgreSQL Portland Performance Practice Project - Database Test 2 Filesystem...
 
ZFS for Databases
ZFS for DatabasesZFS for Databases
ZFS for Databases
 
Replication Solutions for PostgreSQL
Replication Solutions for PostgreSQLReplication Solutions for PostgreSQL
Replication Solutions for PostgreSQL
 
Nn ha hadoop world.final
Nn ha hadoop world.finalNn ha hadoop world.final
Nn ha hadoop world.final
 
Postgres & Red Hat Cluster Suite
Postgres & Red Hat Cluster SuitePostgres & Red Hat Cluster Suite
Postgres & Red Hat Cluster Suite
 
Using Recently Published Ceph Reference Architectures to Select Your Ceph Con...
Using Recently Published Ceph Reference Architectures to Select Your Ceph Con...Using Recently Published Ceph Reference Architectures to Select Your Ceph Con...
Using Recently Published Ceph Reference Architectures to Select Your Ceph Con...
 
Developing a Ceph Appliance for Secure Environments
Developing a Ceph Appliance for Secure EnvironmentsDeveloping a Ceph Appliance for Secure Environments
Developing a Ceph Appliance for Secure Environments
 
Oracle Solaris 11 as a BIG Data Platform Apache Hadoop Use Case
Oracle Solaris 11 as a BIG Data Platform Apache Hadoop Use CaseOracle Solaris 11 as a BIG Data Platform Apache Hadoop Use Case
Oracle Solaris 11 as a BIG Data Platform Apache Hadoop Use Case
 
VMworld 2014: Virtualizing Databases
VMworld 2014: Virtualizing DatabasesVMworld 2014: Virtualizing Databases
VMworld 2014: Virtualizing Databases
 
PostgreSQL Scaling And Failover
PostgreSQL Scaling And FailoverPostgreSQL Scaling And Failover
PostgreSQL Scaling And Failover
 
SOUG_Deployment__Automation_DB
SOUG_Deployment__Automation_DBSOUG_Deployment__Automation_DB
SOUG_Deployment__Automation_DB
 
Dumb Simple PostgreSQL Performance (NYCPUG)
Dumb Simple PostgreSQL Performance (NYCPUG)Dumb Simple PostgreSQL Performance (NYCPUG)
Dumb Simple PostgreSQL Performance (NYCPUG)
 
Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph
 

Semelhante a Spilgames Storage Platform

Presentation architecting a cloud infrastructure
Presentation   architecting a cloud infrastructurePresentation   architecting a cloud infrastructure
Presentation architecting a cloud infrastructurexKinAnx
 
Presentation architecting a cloud infrastructure
Presentation   architecting a cloud infrastructurePresentation   architecting a cloud infrastructure
Presentation architecting a cloud infrastructuresolarisyourep
 
Top Technology Trends for Virtualization dallas
Top Technology Trends for Virtualization dallasTop Technology Trends for Virtualization dallas
Top Technology Trends for Virtualization dallasInnoTech
 
Teradata Partners 2011 - Utilizing Teradata Express For Development And Sandb...
Teradata Partners 2011 - Utilizing Teradata Express For Development And Sandb...Teradata Partners 2011 - Utilizing Teradata Express For Development And Sandb...
Teradata Partners 2011 - Utilizing Teradata Express For Development And Sandb...monsonc
 
Development of concurrent services using In-Memory Data Grids
Development of concurrent services using In-Memory Data GridsDevelopment of concurrent services using In-Memory Data Grids
Development of concurrent services using In-Memory Data Gridsjlorenzocima
 
Application Profiling for Memory and Performance
Application Profiling for Memory and PerformanceApplication Profiling for Memory and Performance
Application Profiling for Memory and Performancepradeepfn
 
VMworld 2013: Demystifying VMware Mirage: Tips and Tricks for Success
VMworld 2013: Demystifying VMware Mirage: Tips and Tricks for Success VMworld 2013: Demystifying VMware Mirage: Tips and Tricks for Success
VMworld 2013: Demystifying VMware Mirage: Tips and Tricks for Success VMworld
 
Top Technology Trends
Top Technology Trends Top Technology Trends
Top Technology Trends InnoTech
 
Hadoop - Disk Fail In Place (DFIP)
Hadoop - Disk Fail In Place (DFIP)Hadoop - Disk Fail In Place (DFIP)
Hadoop - Disk Fail In Place (DFIP)mundlapudi
 
Share point disaster avoidance architecture for large scale enterprises
Share point disaster avoidance architecture for large scale enterprisesShare point disaster avoidance architecture for large scale enterprises
Share point disaster avoidance architecture for large scale enterprisesSentri
 
Application Profiling for Memory and Performance
Application Profiling for Memory and PerformanceApplication Profiling for Memory and Performance
Application Profiling for Memory and PerformanceWSO2
 
Vancouver bug enterprise storage and zfs
Vancouver bug   enterprise storage and zfsVancouver bug   enterprise storage and zfs
Vancouver bug enterprise storage and zfsRami Jebara
 
Fedbench - A Benchmark Suite for Federated Semantic Data Processing
Fedbench - A Benchmark Suite for Federated Semantic Data ProcessingFedbench - A Benchmark Suite for Federated Semantic Data Processing
Fedbench - A Benchmark Suite for Federated Semantic Data ProcessingPeter Haase
 
Computer system organization
Computer system organizationComputer system organization
Computer system organizationSyed Zaid Irshad
 
Database Provisioning in EM12c: Provision me a Database Now!
Database Provisioning in EM12c: Provision me a Database Now!Database Provisioning in EM12c: Provision me a Database Now!
Database Provisioning in EM12c: Provision me a Database Now!Maaz Anjum
 
Keith Norbie Flash Storage decision methodology - mnvmug
Keith Norbie Flash Storage decision methodology - mnvmugKeith Norbie Flash Storage decision methodology - mnvmug
Keith Norbie Flash Storage decision methodology - mnvmugKeith Norbie
 
MCSA Installing & Configuring Windows Server 2012 70-410
MCSA Installing & Configuring Windows Server 2012 70-410MCSA Installing & Configuring Windows Server 2012 70-410
MCSA Installing & Configuring Windows Server 2012 70-410omardabbas
 
End of RAID as we know it with Ceph Replication
End of RAID as we know it with Ceph ReplicationEnd of RAID as we know it with Ceph Replication
End of RAID as we know it with Ceph ReplicationCeph Community
 
Denodo Data Virtualization Platform: Scalability (session 3 from Architect to...
Denodo Data Virtualization Platform: Scalability (session 3 from Architect to...Denodo Data Virtualization Platform: Scalability (session 3 from Architect to...
Denodo Data Virtualization Platform: Scalability (session 3 from Architect to...Denodo
 
4th Systems Paper Survey Seminar
4th Systems Paper Survey Seminar4th Systems Paper Survey Seminar
4th Systems Paper Survey SeminarRyo Matsumiya
 

Semelhante a Spilgames Storage Platform (20)

Presentation architecting a cloud infrastructure
Presentation   architecting a cloud infrastructurePresentation   architecting a cloud infrastructure
Presentation architecting a cloud infrastructure
 
Presentation architecting a cloud infrastructure
Presentation   architecting a cloud infrastructurePresentation   architecting a cloud infrastructure
Presentation architecting a cloud infrastructure
 
Top Technology Trends for Virtualization dallas
Top Technology Trends for Virtualization dallasTop Technology Trends for Virtualization dallas
Top Technology Trends for Virtualization dallas
 
Teradata Partners 2011 - Utilizing Teradata Express For Development And Sandb...
Teradata Partners 2011 - Utilizing Teradata Express For Development And Sandb...Teradata Partners 2011 - Utilizing Teradata Express For Development And Sandb...
Teradata Partners 2011 - Utilizing Teradata Express For Development And Sandb...
 
Development of concurrent services using In-Memory Data Grids
Development of concurrent services using In-Memory Data GridsDevelopment of concurrent services using In-Memory Data Grids
Development of concurrent services using In-Memory Data Grids
 
Application Profiling for Memory and Performance
Application Profiling for Memory and PerformanceApplication Profiling for Memory and Performance
Application Profiling for Memory and Performance
 
VMworld 2013: Demystifying VMware Mirage: Tips and Tricks for Success
VMworld 2013: Demystifying VMware Mirage: Tips and Tricks for Success VMworld 2013: Demystifying VMware Mirage: Tips and Tricks for Success
VMworld 2013: Demystifying VMware Mirage: Tips and Tricks for Success
 
Top Technology Trends
Top Technology Trends Top Technology Trends
Top Technology Trends
 
Hadoop - Disk Fail In Place (DFIP)
Hadoop - Disk Fail In Place (DFIP)Hadoop - Disk Fail In Place (DFIP)
Hadoop - Disk Fail In Place (DFIP)
 
Share point disaster avoidance architecture for large scale enterprises
Share point disaster avoidance architecture for large scale enterprisesShare point disaster avoidance architecture for large scale enterprises
Share point disaster avoidance architecture for large scale enterprises
 
Application Profiling for Memory and Performance
Application Profiling for Memory and PerformanceApplication Profiling for Memory and Performance
Application Profiling for Memory and Performance
 
Vancouver bug enterprise storage and zfs
Vancouver bug   enterprise storage and zfsVancouver bug   enterprise storage and zfs
Vancouver bug enterprise storage and zfs
 
Fedbench - A Benchmark Suite for Federated Semantic Data Processing
Fedbench - A Benchmark Suite for Federated Semantic Data ProcessingFedbench - A Benchmark Suite for Federated Semantic Data Processing
Fedbench - A Benchmark Suite for Federated Semantic Data Processing
 
Computer system organization
Computer system organizationComputer system organization
Computer system organization
 
Database Provisioning in EM12c: Provision me a Database Now!
Database Provisioning in EM12c: Provision me a Database Now!Database Provisioning in EM12c: Provision me a Database Now!
Database Provisioning in EM12c: Provision me a Database Now!
 
Keith Norbie Flash Storage decision methodology - mnvmug
Keith Norbie Flash Storage decision methodology - mnvmugKeith Norbie Flash Storage decision methodology - mnvmug
Keith Norbie Flash Storage decision methodology - mnvmug
 
MCSA Installing & Configuring Windows Server 2012 70-410
MCSA Installing & Configuring Windows Server 2012 70-410MCSA Installing & Configuring Windows Server 2012 70-410
MCSA Installing & Configuring Windows Server 2012 70-410
 
End of RAID as we know it with Ceph Replication
End of RAID as we know it with Ceph ReplicationEnd of RAID as we know it with Ceph Replication
End of RAID as we know it with Ceph Replication
 
Denodo Data Virtualization Platform: Scalability (session 3 from Architect to...
Denodo Data Virtualization Platform: Scalability (session 3 from Architect to...Denodo Data Virtualization Platform: Scalability (session 3 from Architect to...
Denodo Data Virtualization Platform: Scalability (session 3 from Architect to...
 
4th Systems Paper Survey Seminar
4th Systems Paper Survey Seminar4th Systems Paper Survey Seminar
4th Systems Paper Survey Seminar
 

Último

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 

Último (20)

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 

Spilgames Storage Platform

  • 1. Introduction Spilgames & Me Another Storage Motivation Spilgames Storage Platform System Properties Overview Internals Versions & Shards Enrique Paz Worldwide Scaling Datacenters Senior Backend Developer Disaster Scenarios Lessons Learned 21/03/2013 Currents Status Contributions 1/42
  • 2. Introduction Spilgames & Me Another Storage Motivation System Properties Overview Internals Versions & Shards Introduction Worldwide Scaling Datacenters Disaster Scenarios Lessons Learned Currents Status Contributions 2/42
  • 3. About Me Introduction Spilgames & Me Another Storage Motivation System Properties Overview Internals Versions & Shards • Passionate Erlang developer Worldwide Scaling • Testing enthusiast Datacenters Disaster Scenarios • Love beautiful code! Lessons Learned Currents Status Contributions 3/42
  • 4. Spilgames Introduction Spilgames & Me Another Storage Motivation • Gaming Platform System Properties • Serving data to 190+ countries world-wide Overview Internals Versions & Shards • 200+ million unique users per month Worldwide • Multiple Platforms: Desktop, Mobile Native & Web Scaling Datacenters Disaster • 300+ employees Scenarios Lessons • Offices in The Netherlands & China Learned Currents Status • Revenue: Advertising & EUM Contributions 4/42
  • 5. Gaming Portals Introduction Spilgames & Me Another Storage Motivation System Properties Overview Internals Versions & Shards Worldwide Scaling Datacenters Disaster Scenarios Lessons Learned Currents Status Contributions 5/42
  • 6. Gaming Portals Introduction Spilgames & Me Another Storage Motivation System Properties Overview Internals Versions & Shards Worldwide Scaling Datacenters Disaster Scenarios Lessons Learned Currents Status Contributions 6/42
  • 7. Games Introduction Spilgames & Me Another Storage Motivation System Properties Overview Internals Versions & Shards Worldwide Scaling Datacenters Disaster Scenarios Lessons Learned Currents Status Contributions 7/42
  • 8. Introduction Spilgames & Me Another Storage Motivation System Properties Overview Internals Versions & Shards Another Storage Worldwide Scaling Datacenters Disaster Scenarios Lessons Learned Currents Status Contributions 8/42
  • 9. Another Storage Introduction Spilgames & Me Another Storage Motivation System Properties Overview Internals Versions & Shards Worldwide Scaling Datacenters Disaster Scenarios Lessons Learned Currents Status Contributions 9/42
  • 10. LAMP Stack & MySql Introduction Spilgames & Me Another Storage Motivation System Properties • Not all developers are DB experts Overview Internals • Difficult to shard the databases Versions & Shards Worldwide • Storage model all over the place Scaling Datacenters Disaster • Security Scenarios Lessons • Performance Learned Currents Status • Caching Contributions • ... 10/42
  • 11. Our Ambition Introduction Spilgames & Me Another Storage Motivation • Transparent sharding layer System Properties Overview • Sharding on data ownership Internals Versions & Shards • High availability Worldwide Scaling • Centralized caching layer Datacenters Disaster Scenarios • Storage engine agnostic Lessons • One strict data model Learned Currents Status Contributions • Transparent storage changes • Scaling geographically 11/42
  • 12. Introduction Spilgames & Me Another Storage Motivation System Properties Overview Internals Versions & Shards System Properties Worldwide Scaling Datacenters Disaster Scenarios Lessons Learned Currents Status Contributions 12/42
  • 13. Mindset Introduction Spilgames & Me Another Storage Motivation System • Be always available Properties Overview • Avoid global locks Internals Versions & Shards • Accept change as the only constant Worldwide Scaling • Embrace inconsistencies Datacenters Disaster Hardware breaks down (power failures) Scenarios Version mismatches (upgrading system not atomic) Lessons Learned State mismatches (adding new machines) Currents Status Contributions 13/42
  • 14. A Key-Value Store With Schema Introduction Spilgames & Me • Buckets Another Storage Largely generated OTP applications Motivation Offer a CRUD-like interface (with filters) System Properties Overview • GIDs (64 bits) identify the data owner Internals Versions & Shards user Worldwide game Scaling Datacenters • Buckets can use different storage engines Disaster Scenarios Several MySql tables in different databases Lessons Just a binary storage (SWIFT) Learned Currents Status ... Contributions • Data for a bucket/GID is cached • Requests can be atomic per bucket/GID 14/42
  • 15. Optimistic Operations Introduction Spilgames & Me Another Storage Motivation System • Speed > Consistency Properties Overview Internals • Losing some updates in case of crash is affordable Versions & Shards • Act first on cache and then on disk Worldwide Scaling Datacenters • No warranties of eventual consistency upon crashes Disaster Scenarios i.e. Activity feeds Lessons i.e. Popular games list Learned Currents Status Contributions 15/42
  • 16. Pessimistic Operations Introduction Spilgames & Me Another Storage Motivation System Properties • Consistency is key and confirmation is required Overview Internals Versions & Shards • Dealing with critical data Worldwide • Persist data and, upon success, update cache Scaling Datacenters i.e. Payments Disaster Scenarios i.e. Personal information Lessons Learned Currents Status Contributions 16/42
  • 17. How does it work? Introduction Spilgames & Me Another Storage Motivation System Properties Overview Internals Versions & Shards Worldwide Scaling Datacenters Disaster Scenarios Lessons Learned Currents Status Contributions 17/42
  • 18. System Components Introduction Spilgames & Me Another Storage Motivation System • lookup application in all nodes. Properties Overview Uses a hashing ring (mnesia): Internals Versions & Shards replicated in all nodes Worldwide ram_copies Scaling Datacenters dirty reads Disaster Scenarios transactional writes Lessons Learned • Buckets have Pipeline Factories Currents Status Contributions • Buckets register PFs in lookup 18/42
  • 19. Tracing Pessimistic Operations Introduction Spilgames & Me Another Storage Motivation System Properties Overview 1. Bucket/GID request in a node Internals Versions & Shards 2. Local lookup to find a PF Worldwide Scaling 3. PF receives request Datacenters Disaster Scenarios 4. PF builds job Lessons Learned 5. PF ensures Pipeline for GID Currents Status Contributions 6. PF queues operation in Pipeline 19/42
  • 20. Wait a minute. . . Introduction Spilgames & Me Another Storage Motivation System Properties Overview Internals • “Why do we need pipelines?” Versions & Shards Worldwide • “Sequential == Bottleneck !!!” Scaling Datacenters • “Don’t you guys know Erlang is Disaster Scenarios about parallelizing work?” Lessons Learned Currents Status Contributions 20/42
  • 21. About Pipelines Introduction Spilgames & Me Another Storage Motivation • CONS System Properties Sequential (read) access for hotspots Overview Internals i.e. Popular games Versions & Shards Optimization: read from SSP cache in PF Worldwide Scaling Datacenters Disaster Scenarios Lessons Learned Currents Status Contributions 21/42
  • 22. About Pipelines Introduction Spilgames & Me Another Storage Motivation • CONS System Properties Sequential (read) access for hotspots Overview Internals i.e. Popular games Versions & Shards Optimization: read from SSP cache in PF Worldwide Scaling • PROS Datacenters Disaster No need for storage engines to support global locks Scenarios A bucket can combine several engines Lessons Learned Currents Status Contributions 21/42
  • 23. About Pipelines Introduction Spilgames & Me Another Storage Motivation • CONS System Properties Sequential (read) access for hotspots Overview Internals i.e. Popular games Versions & Shards Optimization: read from SSP cache in PF Worldwide Scaling • PROS Datacenters Disaster No need for storage engines to support global locks Scenarios A bucket can combine several engines Lessons Learned Currents Status • Requests to most GIDs (users) are evenly distributed Contributions 21/42
  • 24. Schema Versions Introduction Spilgames & Me Another Storage Motivation System Properties Overview • Schema Versions determine allowed operations and storage(s) Internals Versions & Shards • Client is not aware of them Worldwide Scaling • Max 2 schema versions of a bucket at the time Datacenters Disaster Scenarios • Schema version can be changed at bucket/GID level Lessons Learned Currents Status Contributions 22/42
  • 25. Shards Introduction Spilgames & Me Another Storage Motivation System Properties Overview • Useful for partitioning big blocks of data Internals Versions & Shards • Shard points to the physical location of the data Worldwide Scaling • Sharding rules are bucket specific. Default is GID % Shards Datacenters Disaster Scenarios • bucket/GID combinations can be migrated between shards Lessons Learned Currents Status Contributions 23/42
  • 26. Working With Versions & Shards Introduction Spilgames & Me Another Storage Motivation 1. insert(Bucket, Gid, Value) System Properties 2. insert(Gid, Value) Overview Internals Versions & Shards 3. get_vs(Bucket, Gid) Worldwide 4. {v2, Shard1} Scaling Datacenters Disaster 5. build_job(insert, Gid, Shard1) Scenarios Lessons 6. {ok, InsertJob} Learned Currents Status 7. {ok, InsertJob} Contributions 24/42
  • 27. One API To Rule Them All Introduction Spilgames & Me Another Storage • “Don’t care where it is, just want my data!!!” Motivation System Properties Overview Internals Versions & Shards Worldwide Scaling Datacenters Disaster Scenarios Lessons Learned Currents Status Contributions 25/42
  • 28. One API To Rule Them All Introduction Spilgames & Me Another Storage • “Don’t care where it is, just want my data!!!” Motivation System • PIQI helps with the API Properties Overview Internals Versions & Shards Worldwide Scaling Erlang client + Protocol Buffers Datacenters Disaster Scenarios HTTP + JSON Lessons Learned HTTP + Protocol Buffers Currents Status Contributions 25/42
  • 29. Introduction Spilgames & Me Another Storage Motivation System Properties Overview Internals Versions & Shards Worldwide Worldwide Scaling Datacenters Disaster Scenarios Lessons Learned Currents Status Contributions 26/42
  • 30. Worlwide Introduction Spilgames & Me Another Storage Motivation System Properties Overview Internals Versions & Shards Worldwide Scaling Datacenters Disaster Scenarios Lessons Learned Currents Status Contributions 27/42
  • 31. Masters & Satellites Introduction Spilgames & Me Another Storage Motivation System • Master Datacenters Properties Have persistent storage Overview Internals Can own GIDs Versions & Shards GIDs can be migrated between Master DCs Worldwide Scaling Datacenters • Satellite Datacenters Disaster Scenarios Don’t have persistent storage Lessons Easy to setup and decommission Learned Virtual/Cloud-based Currents Status Contributions 28/42
  • 32. Start With One DC Introduction Spilgames & Me Another Storage Motivation System Properties Overview Internals Versions & Shards Worldwide Scaling Datacenters Disaster Scenarios Lessons Learned Currents Status Contributions 29/42
  • 33. Scale Up A Satellite Where Needed Introduction Spilgames & Me Another Storage Motivation System Properties Overview Internals Versions & Shards Worldwide Scaling Datacenters Disaster Scenarios Lessons Learned Currents Status Contributions 30/42
  • 34. Turn Satellites Into Masters When Ready Introduction Spilgames & Me Another Storage Motivation System Properties Overview Internals Versions & Shards Worldwide Scaling Datacenters Disaster Scenarios Lessons Learned Currents Status Contributions 31/42
  • 35. Working With Multiple Datacenters Introduction Spilgames & Me Another Storage Motivation System Properties Overview Internals Versions & Shards Worldwide Scaling Datacenters Disaster Scenarios Lessons Learned Currents Status Contributions 32/42
  • 36. Disaster Scenarios Introduction Spilgames & Me Another Storage Motivation System Properties Overview Internals Versions & Shards Worldwide Scaling Datacenters Disaster Scenarios Lessons Learned Currents Status Contributions 33/42
  • 37. Losing A Satellite Datacenter Introduction Spilgames & Me Another Storage Motivation System Properties Overview Internals Versions & Shards Worldwide Scaling Datacenters Disaster Scenarios Lessons Learned Currents Status Contributions 34/42
  • 38. Losing A Master Datacenter Introduction Spilgames & Me Another Storage Motivation System Properties Overview Internals Versions & Shards Worldwide Scaling Datacenters Disaster Scenarios Lessons Learned Currents Status Contributions 35/42
  • 39. Losing A Master Datacenter Introduction Spilgames & Me Another Storage Motivation System Properties Overview Internals Versions & Shards Worldwide Scaling Datacenters Disaster Scenarios Lessons Learned Currents Status Contributions 36/42
  • 40. Introduction Spilgames & Me Another Storage Motivation System Properties Overview Internals Versions & Shards Lessons Learned Worldwide Scaling Datacenters Disaster Scenarios Lessons Learned Currents Status Contributions 37/42
  • 41. Where We Are Introduction Spilgames & Me Another Storage Motivation • Using simple buckets on LIVE in one DC System Properties • Added relup support for bucket only updates Overview Internals Versions & Shards • Hammering SSP using property based testing Worldwide • Integrating restricted search capabilities Scaling Datacenters Disaster • Testing the WAN protocol for inter DC communication Scenarios Lessons • More buckets to go live in H1 2013 Learned Currents Status • Satellite DCs coming on H2 2013 Contributions 38/42
  • 42. What We’ve Used Introduction Spilgames & Me • Emysql (+) multi-database transaction support Another Storage (*) multi-timezone support Motivation • Eep0018/Jiffy System Properties • Estatsd Overview Internals • PropEr Versions & Shards Worldwide • Poolboy Scaling Datacenters • Lager Disaster Scenarios • Rebar Lessons (*) semantic versioning, i.e. [">=1.3.1", "<2.0.0"] Learned Currents Status (*) shared dependencies Contributions (*) xref fixes • Piqi • BashoBench (+) Several tests on the same plot support 39/42
  • 43. Questions? Introduction Spilgames & Me Another Storage Motivation System Properties Overview Internals Versions & Shards Worldwide Scaling Datacenters Disaster Scenarios Lessons Learned Currents Status Contributions 40/42
  • 44. That’s All Folks! Introduction Spilgames & Me Another Storage Motivation System Properties Overview Internals Thanks! Versions & Shards Worldwide Scaling Datacenters Disaster Scenarios Lessons Learned Currents Status Contributions 41/42
  • 45. Join Us! Introduction Spilgames & Me Another Storage Motivation System Properties Overview Internals Versions & Shards Worldwide Scaling Datacenters Disaster Scenarios Lessons Learned Currents Status Contributions http://www.spilgames.com/careers/job-openings/ 42/42