SlideShare uma empresa Scribd logo
1 de 40
mrys@microsoft.com









MySpace: the Business Problem
 223M users

 900 Terabytes of data

 450 SQL Servers
 Required (eventual) data
  consistency across databases
MySpace’s Data Consistency Problem




    1-1000     1001-2000




   2001-3000   3001-4000




   4001-5000   5001-6000
MySpace’s Solution


 Propagate data changes from one DB to
  other DBs using reliable, async Message
  Service (Service Broker)




 And also used for
MySpace’s Service Dispatcher
 Coordination point between all SQL Servers


 Load-balanced across 30 SQL Servers

 Enables multicast/broadcast functionality

 18,000 ~2k msgs/sec per dispatcher SQL
  Server
MySpace Architecture


1-1000          3001-4000
                                               My DB                I change
                                               gets updated          my status
                      Service
          Service
   TX3    Broker
                    TX2                TX1
                    Dispatcher Service                              userId=1024
                                Broker
2001-3000     Service
                                         1001-2000
              Broker


    TX4                 TX5

4001-5000       5001-6000                                     Web Tier
               Data Tier
Many other customers using similar
patterns
 Online electronic stores (cannot give names
  )
 Travel reservation systems (e.g. Choice
  International)







Social
                                                          Social
                                                       Networks
                                                         Network
                     Management                             s
 Ops                   Services


                                  Data Backend
                                    Data Backend
                                    Services
                                      Data Backend
                                       Services
                                         Services
          MSN
 MSN     Games
Games         l
        Web Portal


                                  Front Door
                      GameBar       Router
          WLM                      Services
 WLM     Games
                        Host
Games   Web Portal




          Bing
 Bing                   Auth
         Games                       STS
                                      STS
Games         l
        Web Portal


                                  Azure Data Centers





•

•
•
Partitioned over 100 SQL Azure DBs
                                                                                  Find Friends’ Profiles
                                                                Social            Get my Profile
                                                                  Social
                                                               Services
     User     …     DB                                           Service          Publish feed, read feed
                                 Find Friends’ Profiles


                                     Get Friends highscores

                                                                Gamer             Last Played
                                                                  Gamer
                                                               Services           Favorites
            STS                                                  Services         Game Preferences
              STS
                             Leaderb      …                                       Social Leaderboards
                                                DB
                               oard

                         Partitioned over 298 SQL Azure DBs         Game
                                                                      Game        Disable/Enable
                                                                  Ingestion       Games from
       Front Door             Write user specific game infos        Ingestion
                                                                                  accessing services
         Router
        Services

                                                                   Game
                                                                                  Game binaries
                              User       …     DB                 Catalog
                                                                                  Game metadata
        250 instances

                         Partitioned over 100 SQL Azure DBs       250 instances
• Fanout: Parallel calls to
   multiple database
   partitions

• Quorum: Able to
   tolerate a percentage of
   request failures during
   Fanout

• Retry: Retry on database
   requests error
Statistics per game















































   Federation
                                                              Azure DB with Federation Root
        Represents the data being sharded
   Federation Root
                                                             Federation Directories, Federation Users,
        Database that logically houses federations,
        contains federation meta data                        Federation Distributions, …
   Federation Key
        Value that determines the routing of a piece
        of data (defines a Federation Distribution)
   Federation Member (aka Shard)
                                                              Federation “Orders_Fed”
        A physical container for a set of federated          (Federation Key: CustomerID)
        tables for a specific key range and reference
        tables
                                                                    Member: PK [min, 100)
   Federated Table
        Table that contains only atomic units for the             AU           AU           AU
        member’s key range                                       PK=5         PK=25        PK=35
   Reference Table
        Non-sharded table
   Atomic Unit                                                      Member: PK [100, 488)
        All rows with the same federation
        key value: always together!                                AU           AU           AU
                                                Connection



                                                                 PK=105       PK=235       PK=365
                                                 Gateway




                                                                    Member: PK [488, max)

                                                                   AU          AU            AU
                             Sharded                             PK=555      PK=2545       PK=3565

                            Application                                               24
•
•


•


    http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?CaseSt
    udyID=4000008310

                           http://cacm.acm.org/magazines/2011/6/108663-
       scalable-sql

       http://download.microsoft.com/download/9/E/9/9E9F240D-0EB6-472E-
       B4DE-
       6D9FCBB505DD/Windows%20Azure%20No%20SQL%20White%20Paper.p
       df

       http://blogs.msdn.com/b/cbiyikoglu/archive/2011/03/03/nosql-genes-in-
       sql-azure-federations.aspx

       mrys@microsoft.com

       http://sqlblog.com/blogs/michael_rys/default.aspx
Connection:
     Server=az1cl321.db.windows.net;
     Database=MyDB;
     User=AppUser;
     Passwd=****;



                                   Gateway
                                                                                              CREATE FEDERATION
                                                                          Existing Database


                                             CREATE FEDERATION sales
                                             (customer_id bigint RANGE)




29
Federation with a Single Shard
                                                    Existing Database

                                                                           CREATE FEDERATION sales
                                                                           (customer_id bigint RANGE)

                                                                           Database root contains:
                                                              sales
                                                                           • Federation root = DB level object
                                                                             containing federation scheme
                                          Gateway




                                                                           • Federation users
                                                                           • Federation metadata incl. federation
                            Connection:




                                                                             map
Server=az1cl321.db.windows.net;




                                                        Range: Min...Max
Database=MyDB;
User=AppUser;
Passwd=****;




                                                    Federation Member
                                                                                                            30
Introducing Two Connection Modes

 • Filtered Connection
    – Guarantees that any queries or DML will produce the
      same results independent of changes to the physical
      layout of the federation members
    – Scoped to an “Atomic Unit”
 • Unfiltered Connection
    – Scoped to a Federation Member
    – Management Connection




                                                       31
Create Schema on Member: Management Connection
                                                                            Existing Database




                                                                                             sales
                                          Gateway




                                                    USE FEDEDERATION sales (customer_id=0)
                            Connection:




                                                    WITH FILTERING=OFF, RESET;
Server=az1cl321.db.windows.net;




                                                        CREATE TABLE …


                                                                                                     Range: Min...Max


                                                                                 Customer                   Order        Product
Database=MyDB;
User=AppUser;
Passwd=****;




                                                                                                     Federation Member
                                                                © 2011 Microsoft Corporation. Microsoft Materials
                                                                     - Confidential. All rights reserved. CITA #                   32
                                                                                  MSFT101120_A
DDL
 CREATE TABLE customer (
   c_id bigint PRIMARY KEY,
   …
   )
   FEDERATED ON (customer_id=c_id);

 CREATE TABLE order (
   item_num int,
   customer_id bigint,
   date_sold datetime2,
   …,
   CONSTRAINT PK_Order PRIMARY KEY (item_num, customer_id, date_sold),
   CONSTRAINT FK_Cust FOREIGN KEY customer_id REFERENCES
   customer (customer_id)
   )
   FEDERATED ON (customer_id=customer_id);

 CREATE TABLE product (
   product_name varchar(100) NOT NULL,
   unit_price money,
   item_num int PRIMARY KEY,
   …
   );

                                                                         33
More Detail
 • Supported data types for federation key : bigint, int, GUID, and varbinary
   (900)
     – Only range partitioning
 • Federation key must be part of unique index
 • Foreign key constraints only allowed between federated tables and from
   federated table to reference table
 • Not all Azure programmability features supported
     – Sequence, timestamp
 • Additional surface area restrictions
     – Indexed views, drop database (members)
 • Schemas are allowed to diverge over time
     – Furthermore, in v1, schema updates to existing members must be done in each
       member (where the change is needed)
 • USE FEDERATION “rewires a connection”
     – Connection is reestablished
     – All existing settings and context of the connection is lost (sp_reset_connection)
     – Must be in a batch by itself



                                                                                           34
Connect to Atomic Unit: Filtered
                                                                       Existing Database



                                                                                                          When using into a specific key
                                                                                                          value, SELECT will only return
                                                                                       sales
                                                                                                          records from federated tables that
                                                                                                          match that value. It will still return
                                          Gateway




                                                                                                          all records from non-federated
                                                                                                          tables.
                                                    USE FEDEDERATION sales (customer_id=3)
                            Connection:




                                                                                                          Inserts and UPDATES operating
                                                    WITH FILTERING=ON, RESET;
                                                                                                          outside of the value will fail.
Server=az1cl321.db.windows.net;




                                                                                 Range: Min...Max

                                                                       customer        order    product

                                                                                        3
Database=MyDB;




                                            SELECT * from customer           3
User=AppUser;
Passwd=****;




                                                                                                                  SELECT * from product

                                                       SELECT * from order


                                                                       Federation Member
                                                                                                                                          35
More on Connection Filtering

 • Most operations behave differently in filtered vs
   unfiltered connections
 • Connection filtering is a property of the session
    – Filter injected dynamically at runtime
    – Cannot inspect source code to determine how it behaves
       • E.g., running stored proc written for filtered mode on unfiltered
         connection could lead to unintended results
 • There are several operations that will not work in
   filtered connection in v1
    – DDL, DML on reference tables, …
 • Fan-out, bulk operations not efficient in filtered mode
    – For now, filter=off is our best offer


                                                                             36
Support Matrix

                    Connection Type Filtered Unfiltered Named
              Operation                                (unfiltered)
                     Dynamic SELECT     P        P          P
           DML* (federated tables)      P        P          P
           DML* (reference tables)      X        P          P
                                 DDL    X        P          P
                Views (not indexed)     P        P          P
                       UDF - activate   P        P          P
              Stored Proc - activate    P        P          P
       Trigger (all modes) - activate   P        P          P
              CREATE/UPDATE Stats       X        P          P
   Bulk Ops
        openrowset bulk, bcp, bulk
                               insert   X        P          P


   * not including SELECT & modules
    ^ autostats will work on all connections
   System stored procs, intrinsics will be unaffected (run unfiltered)


                                                                         37
Splitting a Member
                                                                          Existing Database



                                                                                                     ALTER FEDERATION sales
                                                                                       sales         SPLIT AT (customer_id=50)
                                          Gateway




                                                    USE FEDERATION ROOT
                            Connection:




                                                    WITH RESET

                                                    Using to the
Server=az1cl321.db.windows.net;




                                                    federation ROOT
                                                    will pop you out of
                                                    a member back                Range: Min...Max
                                                    into the database
                                                    that hosts the        customer     order    product

                                                    federation               3          3
Database=MyDB;
User=AppUser;
Passwd=****;




                                                                            40          58
                                                                            58          58



                                                                          Federation Member
                                                                                                                            38
Two New Members
                                                                              Existing Database



                                                                                                      ALTER FEDERATION sales
                                                                                              sales   SPLIT AT (customer_id=50)
                                          Gateway




                                                    USE FEDEDERATION ROOT
                                                    WITH RESET
                            Connection:
Server=az1cl321.db.windows.net;




                                                                  Range: Min...50                                 Range: 51...Max

                                                           customer     order       product                customer     order       product

                                                                          3
Database=MyDB;




                                                              3
User=AppUser;




                                                                                                                         58
Passwd=****;




                                                             40                                              58          58




                                                            Federation Member                              Federation Member
                                                                                                                                        39
Two New Members
                                                                                Existing Database




                                                                                                sales
                                            Gateway




                                                      USE FEDEDERATION sales (customer_id=40)
                            Connection:




                                                      WITH FILTERING=ON, RESET;
Server=az1cl321.db.windows.net;




                                                                    Range: Min...50                            Range: 51...Max

                                                             customer     order       product           customer     order       product
Database=MyDB;




                                          SELECT *
User=AppUser;




                                                                                                                      58
Passwd=****;




                                          from customer                    40
                                                               40                                         58          58

                                                SELECT * from order




                                                                                                                                     40

Mais conteúdo relacionado

Mais procurados

TCA/TCO Benefits of Consolidating Databases and x86 Servers on IBM Enterprise...
TCA/TCO Benefits of Consolidating Databases and x86 Servers on IBM Enterprise...TCA/TCO Benefits of Consolidating Databases and x86 Servers on IBM Enterprise...
TCA/TCO Benefits of Consolidating Databases and x86 Servers on IBM Enterprise...IBM India Smarter Computing
 
Power management: Lenovo ThinkServer Smart Grid Technology
Power management: Lenovo ThinkServer Smart Grid TechnologyPower management: Lenovo ThinkServer Smart Grid Technology
Power management: Lenovo ThinkServer Smart Grid TechnologyPrincipled Technologies
 
9sept2009 concept electronics
9sept2009 concept electronics9sept2009 concept electronics
9sept2009 concept electronicsAgora Group
 
Microsoft Unified Communications - Outlook/Exchange Better Together Presentation
Microsoft Unified Communications - Outlook/Exchange Better Together PresentationMicrosoft Unified Communications - Outlook/Exchange Better Together Presentation
Microsoft Unified Communications - Outlook/Exchange Better Together PresentationMicrosoft Private Cloud
 
Lucene in the Cloud: Learn how GCE leveraged the power of search and Big Data...
Lucene in the Cloud: Learn how GCE leveraged the power of search and Big Data...Lucene in the Cloud: Learn how GCE leveraged the power of search and Big Data...
Lucene in the Cloud: Learn how GCE leveraged the power of search and Big Data...lucenerevolution
 
VNSISPL_DBMS_Concepts_ch4
VNSISPL_DBMS_Concepts_ch4VNSISPL_DBMS_Concepts_ch4
VNSISPL_DBMS_Concepts_ch4sriprasoon
 
NoSQL Databases for Implementing Data Services – Should I Care?
NoSQL Databases for Implementing Data Services – Should I Care?NoSQL Databases for Implementing Data Services – Should I Care?
NoSQL Databases for Implementing Data Services – Should I Care?Guido Schmutz
 
distilling the Web of Data drop by drop (with Java)
distilling the Web of Data drop by drop (with Java)distilling the Web of Data drop by drop (with Java)
distilling the Web of Data drop by drop (with Java)Davide Palmisano
 
SUPPORTING QUERYING ON MULTI-MILLION EVENTS PER SECOND from Structure:Data 2012
SUPPORTING QUERYING ON MULTI-MILLION EVENTS PER SECOND from Structure:Data 2012SUPPORTING QUERYING ON MULTI-MILLION EVENTS PER SECOND from Structure:Data 2012
SUPPORTING QUERYING ON MULTI-MILLION EVENTS PER SECOND from Structure:Data 2012Gigaom
 
[NHN] 성공적인 소셜게임 런칭과 기술
[NHN] 성공적인 소셜게임 런칭과 기술[NHN] 성공적인 소셜게임 런칭과 기술
[NHN] 성공적인 소셜게임 런칭과 기술GAMENEXT Works
 
Cache-partitioning
Cache-partitioningCache-partitioning
Cache-partitioningdavidkftam
 
Introduction to NoSQL and Couchbase
Introduction to NoSQL and CouchbaseIntroduction to NoSQL and Couchbase
Introduction to NoSQL and CouchbaseDipti Borkar
 

Mais procurados (14)

TCA/TCO Benefits of Consolidating Databases and x86 Servers on IBM Enterprise...
TCA/TCO Benefits of Consolidating Databases and x86 Servers on IBM Enterprise...TCA/TCO Benefits of Consolidating Databases and x86 Servers on IBM Enterprise...
TCA/TCO Benefits of Consolidating Databases and x86 Servers on IBM Enterprise...
 
Power management: Lenovo ThinkServer Smart Grid Technology
Power management: Lenovo ThinkServer Smart Grid TechnologyPower management: Lenovo ThinkServer Smart Grid Technology
Power management: Lenovo ThinkServer Smart Grid Technology
 
9sept2009 concept electronics
9sept2009 concept electronics9sept2009 concept electronics
9sept2009 concept electronics
 
Microsoft Unified Communications - Outlook/Exchange Better Together Presentation
Microsoft Unified Communications - Outlook/Exchange Better Together PresentationMicrosoft Unified Communications - Outlook/Exchange Better Together Presentation
Microsoft Unified Communications - Outlook/Exchange Better Together Presentation
 
Lucene in the Cloud: Learn how GCE leveraged the power of search and Big Data...
Lucene in the Cloud: Learn how GCE leveraged the power of search and Big Data...Lucene in the Cloud: Learn how GCE leveraged the power of search and Big Data...
Lucene in the Cloud: Learn how GCE leveraged the power of search and Big Data...
 
XenDesktop Presentations 25022010
XenDesktop Presentations 25022010XenDesktop Presentations 25022010
XenDesktop Presentations 25022010
 
VNSISPL_DBMS_Concepts_ch4
VNSISPL_DBMS_Concepts_ch4VNSISPL_DBMS_Concepts_ch4
VNSISPL_DBMS_Concepts_ch4
 
NoSQL Databases for Implementing Data Services – Should I Care?
NoSQL Databases for Implementing Data Services – Should I Care?NoSQL Databases for Implementing Data Services – Should I Care?
NoSQL Databases for Implementing Data Services – Should I Care?
 
distilling the Web of Data drop by drop (with Java)
distilling the Web of Data drop by drop (with Java)distilling the Web of Data drop by drop (with Java)
distilling the Web of Data drop by drop (with Java)
 
SUPPORTING QUERYING ON MULTI-MILLION EVENTS PER SECOND from Structure:Data 2012
SUPPORTING QUERYING ON MULTI-MILLION EVENTS PER SECOND from Structure:Data 2012SUPPORTING QUERYING ON MULTI-MILLION EVENTS PER SECOND from Structure:Data 2012
SUPPORTING QUERYING ON MULTI-MILLION EVENTS PER SECOND from Structure:Data 2012
 
[NHN] 성공적인 소셜게임 런칭과 기술
[NHN] 성공적인 소셜게임 런칭과 기술[NHN] 성공적인 소셜게임 런칭과 기술
[NHN] 성공적인 소셜게임 런칭과 기술
 
Cache-partitioning
Cache-partitioningCache-partitioning
Cache-partitioning
 
Introduction to NoSQL and Couchbase
Introduction to NoSQL and CouchbaseIntroduction to NoSQL and Couchbase
Introduction to NoSQL and Couchbase
 
Dell latitude 2120-specsheet
Dell latitude 2120-specsheetDell latitude 2120-specsheet
Dell latitude 2120-specsheet
 

Semelhante a Building Scalable SQL Applications Using NoSQL Paradigms

SQLBits X Scaling out with SQL Azure Federations
SQLBits X Scaling out with SQL Azure FederationsSQLBits X Scaling out with SQL Azure Federations
SQLBits X Scaling out with SQL Azure FederationsMichael Rys
 
A Practical Architecture Design for MMO Casual Game
A Practical Architecture Design for MMO Casual GameA Practical Architecture Design for MMO Casual Game
A Practical Architecture Design for MMO Casual Gameaction.vn
 
Take the spaghetti out of windows azure – an insight for it pro techies part 1
Take the spaghetti out of windows azure – an insight for it pro techies part 1Take the spaghetti out of windows azure – an insight for it pro techies part 1
Take the spaghetti out of windows azure – an insight for it pro techies part 1Microsoft TechNet - Belgium and Luxembourg
 
Windows Azure Uzerinden Alinabilen Hizmetler
Windows Azure Uzerinden Alinabilen HizmetlerWindows Azure Uzerinden Alinabilen Hizmetler
Windows Azure Uzerinden Alinabilen HizmetlerMustafa
 
Windows Azure Üzerinden Alınabilecek Hizmetler
Windows Azure Üzerinden Alınabilecek HizmetlerWindows Azure Üzerinden Alınabilecek Hizmetler
Windows Azure Üzerinden Alınabilecek HizmetlerMSHOWTO Bilisim Toplulugu
 
End-to-End Integrated Management with System Center 2012
End-to-End Integrated Management with System Center 2012End-to-End Integrated Management with System Center 2012
End-to-End Integrated Management with System Center 2012wwwally
 
Introducing SQL Server Data Services
Introducing SQL Server Data ServicesIntroducing SQL Server Data Services
Introducing SQL Server Data Servicesgoodfriday
 
Introducing SQL Server Data Services
Introducing SQL Server Data ServicesIntroducing SQL Server Data Services
Introducing SQL Server Data Servicesgoodfriday
 
OrientDB the graph database
OrientDB the graph databaseOrientDB the graph database
OrientDB the graph databaseartem_orobets
 
OrientDB the graph database
OrientDB the graph databaseOrientDB the graph database
OrientDB the graph databaseArtem Orobets
 
SQL Server Developer 70-433
SQL Server Developer 70-433SQL Server Developer 70-433
SQL Server Developer 70-433jasonyousef
 
Office 365: Planning and Automating for Hybrid Identity Scenarios in the Clou...
Office 365: Planning and Automating for Hybrid Identity Scenarios in the Clou...Office 365: Planning and Automating for Hybrid Identity Scenarios in the Clou...
Office 365: Planning and Automating for Hybrid Identity Scenarios in the Clou...Microsoft TechNet - Belgium and Luxembourg
 
Peering through the Clouds - Cloud Architectures You Need to Master
Peering through the Clouds - Cloud Architectures You Need to MasterPeering through the Clouds - Cloud Architectures You Need to Master
Peering through the Clouds - Cloud Architectures You Need to MasterClint Edmonson
 
My cloud + Windows Phone app experience
My cloud + Windows Phone app experienceMy cloud + Windows Phone app experience
My cloud + Windows Phone app experienceJeff Wilcox
 
Windows Azure Platform
Windows Azure PlatformWindows Azure Platform
Windows Azure PlatformAsmTrash
 

Semelhante a Building Scalable SQL Applications Using NoSQL Paradigms (20)

SQLBits X Scaling out with SQL Azure Federations
SQLBits X Scaling out with SQL Azure FederationsSQLBits X Scaling out with SQL Azure Federations
SQLBits X Scaling out with SQL Azure Federations
 
A Practical Architecture Design for MMO Casual Game
A Practical Architecture Design for MMO Casual GameA Practical Architecture Design for MMO Casual Game
A Practical Architecture Design for MMO Casual Game
 
Take the spaghetti out of windows azure – an insight for it pro techies part 1
Take the spaghetti out of windows azure – an insight for it pro techies part 1Take the spaghetti out of windows azure – an insight for it pro techies part 1
Take the spaghetti out of windows azure – an insight for it pro techies part 1
 
Office 365 Identity Management options
Office 365 Identity Management options Office 365 Identity Management options
Office 365 Identity Management options
 
Windows Azure Uzerinden Alinabilen Hizmetler
Windows Azure Uzerinden Alinabilen HizmetlerWindows Azure Uzerinden Alinabilen Hizmetler
Windows Azure Uzerinden Alinabilen Hizmetler
 
Windows Azure Üzerinden Alınabilecek Hizmetler
Windows Azure Üzerinden Alınabilecek HizmetlerWindows Azure Üzerinden Alınabilecek Hizmetler
Windows Azure Üzerinden Alınabilecek Hizmetler
 
End-to-End Integrated Management with System Center 2012
End-to-End Integrated Management with System Center 2012End-to-End Integrated Management with System Center 2012
End-to-End Integrated Management with System Center 2012
 
Introducing SQL Server Data Services
Introducing SQL Server Data ServicesIntroducing SQL Server Data Services
Introducing SQL Server Data Services
 
Introducing SQL Server Data Services
Introducing SQL Server Data ServicesIntroducing SQL Server Data Services
Introducing SQL Server Data Services
 
線上遊戲與雲端運算
線上遊戲與雲端運算線上遊戲與雲端運算
線上遊戲與雲端運算
 
Introduction to AWS tools
Introduction to AWS toolsIntroduction to AWS tools
Introduction to AWS tools
 
OrientDB the graph database
OrientDB the graph databaseOrientDB the graph database
OrientDB the graph database
 
OrientDB the graph database
OrientDB the graph databaseOrientDB the graph database
OrientDB the graph database
 
SQL Server Developer 70-433
SQL Server Developer 70-433SQL Server Developer 70-433
SQL Server Developer 70-433
 
Office 365: Planning and Automating for Hybrid Identity Scenarios in the Clou...
Office 365: Planning and Automating for Hybrid Identity Scenarios in the Clou...Office 365: Planning and Automating for Hybrid Identity Scenarios in the Clou...
Office 365: Planning and Automating for Hybrid Identity Scenarios in the Clou...
 
6425 c 01
6425 c 016425 c 01
6425 c 01
 
Peering through the Clouds - Cloud Architectures You Need to Master
Peering through the Clouds - Cloud Architectures You Need to MasterPeering through the Clouds - Cloud Architectures You Need to Master
Peering through the Clouds - Cloud Architectures You Need to Master
 
Intro To Live Framework
Intro To Live FrameworkIntro To Live Framework
Intro To Live Framework
 
My cloud + Windows Phone app experience
My cloud + Windows Phone app experienceMy cloud + Windows Phone app experience
My cloud + Windows Phone app experience
 
Windows Azure Platform
Windows Azure PlatformWindows Azure Platform
Windows Azure Platform
 

Mais de Michael Rys

Big Data and Data Warehousing Together with Azure Synapse Analytics (SQLBits ...
Big Data and Data Warehousing Together with Azure Synapse Analytics (SQLBits ...Big Data and Data Warehousing Together with Azure Synapse Analytics (SQLBits ...
Big Data and Data Warehousing Together with Azure Synapse Analytics (SQLBits ...Michael Rys
 
Big Data Processing with .NET and Spark (SQLBits 2020)
Big Data Processing with .NET and Spark (SQLBits 2020)Big Data Processing with .NET and Spark (SQLBits 2020)
Big Data Processing with .NET and Spark (SQLBits 2020)Michael Rys
 
Running cost effective big data workloads with Azure Synapse and ADLS (MS Ign...
Running cost effective big data workloads with Azure Synapse and ADLS (MS Ign...Running cost effective big data workloads with Azure Synapse and ADLS (MS Ign...
Running cost effective big data workloads with Azure Synapse and ADLS (MS Ign...Michael Rys
 
Running cost effective big data workloads with Azure Synapse and Azure Data L...
Running cost effective big data workloads with Azure Synapse and Azure Data L...Running cost effective big data workloads with Azure Synapse and Azure Data L...
Running cost effective big data workloads with Azure Synapse and Azure Data L...Michael Rys
 
Big Data Processing with Spark and .NET - Microsoft Ignite 2019
Big Data Processing with Spark and .NET - Microsoft Ignite 2019Big Data Processing with Spark and .NET - Microsoft Ignite 2019
Big Data Processing with Spark and .NET - Microsoft Ignite 2019Michael Rys
 
Bringing the Power and Familiarity of .NET, C# and F# to Big Data Processing ...
Bringing the Power and Familiarity of .NET, C# and F# to Big Data Processing ...Bringing the Power and Familiarity of .NET, C# and F# to Big Data Processing ...
Bringing the Power and Familiarity of .NET, C# and F# to Big Data Processing ...Michael Rys
 
Building data pipelines for modern data warehouse with Apache® Spark™ and .NE...
Building data pipelines for modern data warehouse with Apache® Spark™ and .NE...Building data pipelines for modern data warehouse with Apache® Spark™ and .NE...
Building data pipelines for modern data warehouse with Apache® Spark™ and .NE...Michael Rys
 
Modernizing ETL with Azure Data Lake: Hyperscale, multi-format, multi-platfor...
Modernizing ETL with Azure Data Lake: Hyperscale, multi-format, multi-platfor...Modernizing ETL with Azure Data Lake: Hyperscale, multi-format, multi-platfor...
Modernizing ETL with Azure Data Lake: Hyperscale, multi-format, multi-platfor...Michael Rys
 
Best Practices and Performance Tuning of U-SQL in Azure Data Lake (SQL Konfer...
Best Practices and Performance Tuning of U-SQL in Azure Data Lake (SQL Konfer...Best Practices and Performance Tuning of U-SQL in Azure Data Lake (SQL Konfer...
Best Practices and Performance Tuning of U-SQL in Azure Data Lake (SQL Konfer...Michael Rys
 
Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...
Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...
Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...Michael Rys
 
Best practices on Building a Big Data Analytics Solution (SQLBits 2018 Traini...
Best practices on Building a Big Data Analytics Solution (SQLBits 2018 Traini...Best practices on Building a Big Data Analytics Solution (SQLBits 2018 Traini...
Best practices on Building a Big Data Analytics Solution (SQLBits 2018 Traini...Michael Rys
 
U-SQL Killer Scenarios: Custom Processing, Big Cognition, Image and JSON Proc...
U-SQL Killer Scenarios: Custom Processing, Big Cognition, Image and JSON Proc...U-SQL Killer Scenarios: Custom Processing, Big Cognition, Image and JSON Proc...
U-SQL Killer Scenarios: Custom Processing, Big Cognition, Image and JSON Proc...Michael Rys
 
Introduction to Azure Data Lake and U-SQL for SQL users (SQL Saturday 635)
Introduction to Azure Data Lake and U-SQL for SQL users (SQL Saturday 635)Introduction to Azure Data Lake and U-SQL for SQL users (SQL Saturday 635)
Introduction to Azure Data Lake and U-SQL for SQL users (SQL Saturday 635)Michael Rys
 
U-SQL Killer Scenarios: Taming the Data Science Monster with U-SQL and Big Co...
U-SQL Killer Scenarios: Taming the Data Science Monster with U-SQL and Big Co...U-SQL Killer Scenarios: Taming the Data Science Monster with U-SQL and Big Co...
U-SQL Killer Scenarios: Taming the Data Science Monster with U-SQL and Big Co...Michael Rys
 
The Road to U-SQL: Experiences in Language Design (SQL Konferenz 2017 Keynote)
The Road to U-SQL: Experiences in Language Design (SQL Konferenz 2017 Keynote)The Road to U-SQL: Experiences in Language Design (SQL Konferenz 2017 Keynote)
The Road to U-SQL: Experiences in Language Design (SQL Konferenz 2017 Keynote)Michael Rys
 
Introducing U-SQL (SQLPASS 2016)
Introducing U-SQL (SQLPASS 2016)Introducing U-SQL (SQLPASS 2016)
Introducing U-SQL (SQLPASS 2016)Michael Rys
 
Tuning and Optimizing U-SQL Queries (SQLPASS 2016)
Tuning and Optimizing U-SQL Queries (SQLPASS 2016)Tuning and Optimizing U-SQL Queries (SQLPASS 2016)
Tuning and Optimizing U-SQL Queries (SQLPASS 2016)Michael Rys
 
Taming the Data Science Monster with A New ‘Sword’ – U-SQL
Taming the Data Science Monster with A New ‘Sword’ – U-SQLTaming the Data Science Monster with A New ‘Sword’ – U-SQL
Taming the Data Science Monster with A New ‘Sword’ – U-SQLMichael Rys
 
Killer Scenarios with Data Lake in Azure with U-SQL
Killer Scenarios with Data Lake in Azure with U-SQLKiller Scenarios with Data Lake in Azure with U-SQL
Killer Scenarios with Data Lake in Azure with U-SQLMichael Rys
 
ADL/U-SQL Introduction (SQLBits 2016)
ADL/U-SQL Introduction (SQLBits 2016)ADL/U-SQL Introduction (SQLBits 2016)
ADL/U-SQL Introduction (SQLBits 2016)Michael Rys
 

Mais de Michael Rys (20)

Big Data and Data Warehousing Together with Azure Synapse Analytics (SQLBits ...
Big Data and Data Warehousing Together with Azure Synapse Analytics (SQLBits ...Big Data and Data Warehousing Together with Azure Synapse Analytics (SQLBits ...
Big Data and Data Warehousing Together with Azure Synapse Analytics (SQLBits ...
 
Big Data Processing with .NET and Spark (SQLBits 2020)
Big Data Processing with .NET and Spark (SQLBits 2020)Big Data Processing with .NET and Spark (SQLBits 2020)
Big Data Processing with .NET and Spark (SQLBits 2020)
 
Running cost effective big data workloads with Azure Synapse and ADLS (MS Ign...
Running cost effective big data workloads with Azure Synapse and ADLS (MS Ign...Running cost effective big data workloads with Azure Synapse and ADLS (MS Ign...
Running cost effective big data workloads with Azure Synapse and ADLS (MS Ign...
 
Running cost effective big data workloads with Azure Synapse and Azure Data L...
Running cost effective big data workloads with Azure Synapse and Azure Data L...Running cost effective big data workloads with Azure Synapse and Azure Data L...
Running cost effective big data workloads with Azure Synapse and Azure Data L...
 
Big Data Processing with Spark and .NET - Microsoft Ignite 2019
Big Data Processing with Spark and .NET - Microsoft Ignite 2019Big Data Processing with Spark and .NET - Microsoft Ignite 2019
Big Data Processing with Spark and .NET - Microsoft Ignite 2019
 
Bringing the Power and Familiarity of .NET, C# and F# to Big Data Processing ...
Bringing the Power and Familiarity of .NET, C# and F# to Big Data Processing ...Bringing the Power and Familiarity of .NET, C# and F# to Big Data Processing ...
Bringing the Power and Familiarity of .NET, C# and F# to Big Data Processing ...
 
Building data pipelines for modern data warehouse with Apache® Spark™ and .NE...
Building data pipelines for modern data warehouse with Apache® Spark™ and .NE...Building data pipelines for modern data warehouse with Apache® Spark™ and .NE...
Building data pipelines for modern data warehouse with Apache® Spark™ and .NE...
 
Modernizing ETL with Azure Data Lake: Hyperscale, multi-format, multi-platfor...
Modernizing ETL with Azure Data Lake: Hyperscale, multi-format, multi-platfor...Modernizing ETL with Azure Data Lake: Hyperscale, multi-format, multi-platfor...
Modernizing ETL with Azure Data Lake: Hyperscale, multi-format, multi-platfor...
 
Best Practices and Performance Tuning of U-SQL in Azure Data Lake (SQL Konfer...
Best Practices and Performance Tuning of U-SQL in Azure Data Lake (SQL Konfer...Best Practices and Performance Tuning of U-SQL in Azure Data Lake (SQL Konfer...
Best Practices and Performance Tuning of U-SQL in Azure Data Lake (SQL Konfer...
 
Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...
Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...
Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...
 
Best practices on Building a Big Data Analytics Solution (SQLBits 2018 Traini...
Best practices on Building a Big Data Analytics Solution (SQLBits 2018 Traini...Best practices on Building a Big Data Analytics Solution (SQLBits 2018 Traini...
Best practices on Building a Big Data Analytics Solution (SQLBits 2018 Traini...
 
U-SQL Killer Scenarios: Custom Processing, Big Cognition, Image and JSON Proc...
U-SQL Killer Scenarios: Custom Processing, Big Cognition, Image and JSON Proc...U-SQL Killer Scenarios: Custom Processing, Big Cognition, Image and JSON Proc...
U-SQL Killer Scenarios: Custom Processing, Big Cognition, Image and JSON Proc...
 
Introduction to Azure Data Lake and U-SQL for SQL users (SQL Saturday 635)
Introduction to Azure Data Lake and U-SQL for SQL users (SQL Saturday 635)Introduction to Azure Data Lake and U-SQL for SQL users (SQL Saturday 635)
Introduction to Azure Data Lake and U-SQL for SQL users (SQL Saturday 635)
 
U-SQL Killer Scenarios: Taming the Data Science Monster with U-SQL and Big Co...
U-SQL Killer Scenarios: Taming the Data Science Monster with U-SQL and Big Co...U-SQL Killer Scenarios: Taming the Data Science Monster with U-SQL and Big Co...
U-SQL Killer Scenarios: Taming the Data Science Monster with U-SQL and Big Co...
 
The Road to U-SQL: Experiences in Language Design (SQL Konferenz 2017 Keynote)
The Road to U-SQL: Experiences in Language Design (SQL Konferenz 2017 Keynote)The Road to U-SQL: Experiences in Language Design (SQL Konferenz 2017 Keynote)
The Road to U-SQL: Experiences in Language Design (SQL Konferenz 2017 Keynote)
 
Introducing U-SQL (SQLPASS 2016)
Introducing U-SQL (SQLPASS 2016)Introducing U-SQL (SQLPASS 2016)
Introducing U-SQL (SQLPASS 2016)
 
Tuning and Optimizing U-SQL Queries (SQLPASS 2016)
Tuning and Optimizing U-SQL Queries (SQLPASS 2016)Tuning and Optimizing U-SQL Queries (SQLPASS 2016)
Tuning and Optimizing U-SQL Queries (SQLPASS 2016)
 
Taming the Data Science Monster with A New ‘Sword’ – U-SQL
Taming the Data Science Monster with A New ‘Sword’ – U-SQLTaming the Data Science Monster with A New ‘Sword’ – U-SQL
Taming the Data Science Monster with A New ‘Sword’ – U-SQL
 
Killer Scenarios with Data Lake in Azure with U-SQL
Killer Scenarios with Data Lake in Azure with U-SQLKiller Scenarios with Data Lake in Azure with U-SQL
Killer Scenarios with Data Lake in Azure with U-SQL
 
ADL/U-SQL Introduction (SQLBits 2016)
ADL/U-SQL Introduction (SQLBits 2016)ADL/U-SQL Introduction (SQLBits 2016)
ADL/U-SQL Introduction (SQLBits 2016)
 

Último

Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhikauryashika82
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingTeacherCyreneCayanan
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docxPoojaSen20
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.christianmathematics
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin ClassesCeline George
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.pptRamjanShidvankar
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfAdmir Softic
 
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Shubhangi Sonawane
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 

Último (20)

Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 

Building Scalable SQL Applications Using NoSQL Paradigms

  • 3. MySpace: the Business Problem  223M users  900 Terabytes of data  450 SQL Servers  Required (eventual) data consistency across databases
  • 4. MySpace’s Data Consistency Problem 1-1000 1001-2000 2001-3000 3001-4000 4001-5000 5001-6000
  • 5. MySpace’s Solution  Propagate data changes from one DB to other DBs using reliable, async Message Service (Service Broker)  And also used for
  • 6. MySpace’s Service Dispatcher  Coordination point between all SQL Servers  Load-balanced across 30 SQL Servers  Enables multicast/broadcast functionality  18,000 ~2k msgs/sec per dispatcher SQL Server
  • 7. MySpace Architecture 1-1000 3001-4000 My DB I change gets updated my status Service Service TX3 Broker TX2 TX1 Dispatcher Service userId=1024 Broker 2001-3000 Service 1001-2000 Broker TX4 TX5 4001-5000 5001-6000 Web Tier Data Tier
  • 8. Many other customers using similar patterns  Online electronic stores (cannot give names )  Travel reservation systems (e.g. Choice International)
  • 9.
  • 11. Social Social Networks Network Management s Ops Services Data Backend Data Backend Services Data Backend Services Services MSN MSN Games Games l Web Portal Front Door GameBar Router WLM Services WLM Games Host Games Web Portal Bing Bing Auth Games STS STS Games l Web Portal Azure Data Centers
  • 13.
  • 15. Partitioned over 100 SQL Azure DBs Find Friends’ Profiles Social Get my Profile Social Services User … DB Service Publish feed, read feed Find Friends’ Profiles Get Friends highscores Gamer Last Played Gamer Services Favorites STS Services Game Preferences STS Leaderb … Social Leaderboards DB oard Partitioned over 298 SQL Azure DBs Game Game Disable/Enable Ingestion Games from Front Door Write user specific game infos Ingestion accessing services Router Services Game Game binaries User … DB Catalog Game metadata 250 instances Partitioned over 100 SQL Azure DBs 250 instances
  • 16. • Fanout: Parallel calls to multiple database partitions • Quorum: Able to tolerate a percentage of request failures during Fanout • Retry: Retry on database requests error
  • 24. Federation Azure DB with Federation Root Represents the data being sharded  Federation Root Federation Directories, Federation Users, Database that logically houses federations, contains federation meta data Federation Distributions, …  Federation Key Value that determines the routing of a piece of data (defines a Federation Distribution)  Federation Member (aka Shard) Federation “Orders_Fed” A physical container for a set of federated (Federation Key: CustomerID) tables for a specific key range and reference tables Member: PK [min, 100)  Federated Table Table that contains only atomic units for the AU AU AU member’s key range PK=5 PK=25 PK=35  Reference Table Non-sharded table  Atomic Unit Member: PK [100, 488) All rows with the same federation key value: always together! AU AU AU Connection PK=105 PK=235 PK=365 Gateway Member: PK [488, max) AU AU AU Sharded PK=555 PK=2545 PK=3565 Application 24
  • 26.
  • 27. http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?CaseSt udyID=4000008310  http://cacm.acm.org/magazines/2011/6/108663- scalable-sql http://download.microsoft.com/download/9/E/9/9E9F240D-0EB6-472E- B4DE- 6D9FCBB505DD/Windows%20Azure%20No%20SQL%20White%20Paper.p df http://blogs.msdn.com/b/cbiyikoglu/archive/2011/03/03/nosql-genes-in- sql-azure-federations.aspx  mrys@microsoft.com http://sqlblog.com/blogs/michael_rys/default.aspx
  • 28.
  • 29. Connection: Server=az1cl321.db.windows.net; Database=MyDB; User=AppUser; Passwd=****; Gateway CREATE FEDERATION Existing Database CREATE FEDERATION sales (customer_id bigint RANGE) 29
  • 30. Federation with a Single Shard Existing Database CREATE FEDERATION sales (customer_id bigint RANGE) Database root contains: sales • Federation root = DB level object containing federation scheme Gateway • Federation users • Federation metadata incl. federation Connection: map Server=az1cl321.db.windows.net; Range: Min...Max Database=MyDB; User=AppUser; Passwd=****; Federation Member 30
  • 31. Introducing Two Connection Modes • Filtered Connection – Guarantees that any queries or DML will produce the same results independent of changes to the physical layout of the federation members – Scoped to an “Atomic Unit” • Unfiltered Connection – Scoped to a Federation Member – Management Connection 31
  • 32. Create Schema on Member: Management Connection Existing Database sales Gateway USE FEDEDERATION sales (customer_id=0) Connection: WITH FILTERING=OFF, RESET; Server=az1cl321.db.windows.net; CREATE TABLE … Range: Min...Max Customer Order Product Database=MyDB; User=AppUser; Passwd=****; Federation Member © 2011 Microsoft Corporation. Microsoft Materials - Confidential. All rights reserved. CITA # 32 MSFT101120_A
  • 33. DDL CREATE TABLE customer ( c_id bigint PRIMARY KEY, … ) FEDERATED ON (customer_id=c_id); CREATE TABLE order ( item_num int, customer_id bigint, date_sold datetime2, …, CONSTRAINT PK_Order PRIMARY KEY (item_num, customer_id, date_sold), CONSTRAINT FK_Cust FOREIGN KEY customer_id REFERENCES customer (customer_id) ) FEDERATED ON (customer_id=customer_id); CREATE TABLE product ( product_name varchar(100) NOT NULL, unit_price money, item_num int PRIMARY KEY, … ); 33
  • 34. More Detail • Supported data types for federation key : bigint, int, GUID, and varbinary (900) – Only range partitioning • Federation key must be part of unique index • Foreign key constraints only allowed between federated tables and from federated table to reference table • Not all Azure programmability features supported – Sequence, timestamp • Additional surface area restrictions – Indexed views, drop database (members) • Schemas are allowed to diverge over time – Furthermore, in v1, schema updates to existing members must be done in each member (where the change is needed) • USE FEDERATION “rewires a connection” – Connection is reestablished – All existing settings and context of the connection is lost (sp_reset_connection) – Must be in a batch by itself 34
  • 35. Connect to Atomic Unit: Filtered Existing Database When using into a specific key value, SELECT will only return sales records from federated tables that match that value. It will still return Gateway all records from non-federated tables. USE FEDEDERATION sales (customer_id=3) Connection: Inserts and UPDATES operating WITH FILTERING=ON, RESET; outside of the value will fail. Server=az1cl321.db.windows.net; Range: Min...Max customer order product 3 Database=MyDB; SELECT * from customer 3 User=AppUser; Passwd=****; SELECT * from product SELECT * from order Federation Member 35
  • 36. More on Connection Filtering • Most operations behave differently in filtered vs unfiltered connections • Connection filtering is a property of the session – Filter injected dynamically at runtime – Cannot inspect source code to determine how it behaves • E.g., running stored proc written for filtered mode on unfiltered connection could lead to unintended results • There are several operations that will not work in filtered connection in v1 – DDL, DML on reference tables, … • Fan-out, bulk operations not efficient in filtered mode – For now, filter=off is our best offer 36
  • 37. Support Matrix Connection Type Filtered Unfiltered Named Operation (unfiltered) Dynamic SELECT P P P DML* (federated tables) P P P DML* (reference tables) X P P DDL X P P Views (not indexed) P P P UDF - activate P P P Stored Proc - activate P P P Trigger (all modes) - activate P P P CREATE/UPDATE Stats X P P Bulk Ops openrowset bulk, bcp, bulk insert X P P * not including SELECT & modules ^ autostats will work on all connections System stored procs, intrinsics will be unaffected (run unfiltered) 37
  • 38. Splitting a Member Existing Database ALTER FEDERATION sales sales SPLIT AT (customer_id=50) Gateway USE FEDERATION ROOT Connection: WITH RESET Using to the Server=az1cl321.db.windows.net; federation ROOT will pop you out of a member back Range: Min...Max into the database that hosts the customer order product federation 3 3 Database=MyDB; User=AppUser; Passwd=****; 40 58 58 58 Federation Member 38
  • 39. Two New Members Existing Database ALTER FEDERATION sales sales SPLIT AT (customer_id=50) Gateway USE FEDEDERATION ROOT WITH RESET Connection: Server=az1cl321.db.windows.net; Range: Min...50 Range: 51...Max customer order product customer order product 3 Database=MyDB; 3 User=AppUser; 58 Passwd=****; 40 58 58 Federation Member Federation Member 39
  • 40. Two New Members Existing Database sales Gateway USE FEDEDERATION sales (customer_id=40) Connection: WITH FILTERING=ON, RESET; Server=az1cl321.db.windows.net; Range: Min...50 Range: 51...Max customer order product customer order product Database=MyDB; SELECT * User=AppUser; 58 Passwd=****; from customer 40 40 58 58 SELECT * from order 40

Notas do Editor

  1. 3000 web servers WS2003 IISThere is an app tier between the data and the web tier (not shown to focus on the partitioning aspect).A component in the app tier uses the partitioning function to connect to the relevant database in the data tier
  2. For multicast/broadcast and feedback functionality: messages include a header (as part of the payload) that contains the target list and the initiator database
  3. MyDB sends a message with my status change and a target list specifying the DBs that store my friends data.The Service Dispatcher forwards the message these DBs.Each DB processes the message updating my status in a partitioned tableTalk about other MySpace scenarios: Clean state (e.g. on account close) Deploy business logic (stored procedures)
  4. 250 Router Services
  5. Note: Big-sized companies invest resources in building these platforms instead of using existing relational platforms!
  6. Note: Big-sized companies invest resources in building these platforms instead of using existing relational platforms!
  7. Performance and Scale:Map/Reduce PatternsEventual consistency (trade-off due to CAP)ShardingCachingAutomate management Lifecycle:Elastic Scale on demand (no need to pay for resources until needed)Automatic Fail-overScalable Schema version rolloutPerf troubleshootingAuto alertingAuto loadbalancingAuto resourcing (e.g., auto splits based on policies)Declarative policy-based management
  8. Code First and revise quicklyWorking software over comprehensive documentationResponding to change over following a planApplication-model first (before database) Dictates the data model and queriesFlexible data modelsNo a priori modeling: Data first, schema later/Open SchemaKey/Value storesReduced impedance mismatch: JSON, XML, YAMLYou don’t know exactly what you are looking forMap/Reduce for adhoc analysisProvide Search across all your data instead of just queryLower Pain of adoption and maintenance From code to deployment & “monetization” of data, services, apps and tenantsRich Services out of the BoxData and services mashupEasy troubleshooting of deployed appsNo DB or OS Admin telling me what to do
  9. Update syntax