SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
A Behind the Scenes Look at the
Force.com Platform
Walter Macklem, salesforce.com, CTO of Platform
Safe Harbor
 Safe harbor statement under the Private Securities Litigation Reform Act of 1995:

 This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties
 materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results
 expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be
 deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other
 financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any
 statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services.

 The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new
 functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our
 operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of
 intellectual property and other litigation, risks associated with possible mergers and acquisitions, the immature market in which we
 operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new
 releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization
 and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of
 salesforce.com, inc. is included in our annual report on Form 10-Q for the most recent fiscal quarter ended July 31, 2012. This
 documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of
 our Web site.

 Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently
 available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based
 upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-
 looking statements.
Key Takeaways

                Internal & External
                 Data Constructs


                Multitenancy

          Data Infrastructure
Key Takeaways
Data Infrastructure
   • Building blocks of the Force.com service. Relational database,
     Distributed File System, Search. High Availability, Backups, and
     Disaster Recovery.
Multitenant Data Management
   • Platformize the raw data infrastructure to make it work for the cloud.
     Enable multiple customers to utilize a shared resource pool.
Internal Development with Data
   • Dogfooding. How do internal Salesforce engineers build on top of this
     multitenant data platform?
Pod == Hardware Topology
Pod

• Self-contained set of hardware*
• Each customer is in one pod
• Each pod services many customers
• Data persistence and System of Record
• Data processing
• Hardware mirroring
* Exceptions being: Edge router and a few other services
Pod                    Salesforce
                         Users

  Pod #1


                    Application Servers




                        Relational
                        Database          Distributed
           Search
                                          File System
Pod



                 Horizontal Scalability


 POD #1   POD #2    POD #3   POD #4   POD #5   POD #N

  NA1      NA7       EU1      CS8      AP0
Data Infrastructure Building Blocks

• Relational Database
• Distributed File System
• Search
Relational Database

• Sharding / Partitioning
   • 32-way
   • Shard based on customer
• High availability
   • 8 machine database cluster
   • Automatic failover
Relational Database
• Backups
    • 3 lag databases
        •   Near Realtime
        •   2 Hour
        •   48 Hour
    • Tape / Disk
• Disaster Recovery
    • Hardware block-level replication
• 6 logical copies of all bits
    • >> 6 physical copies of all bits
Distributed File System

• Binary Object Store
• Homegrown Technology called FileForce
• Optimized for High Availability
Distributed File System
   • File Handles are stored in a HA relational database
   • Block stores:
       • High density cheap machines
       • Dumb
       • RAID10
       • Deployed in “buddy” pairs
   • Buddy
       • Leader election
       • Backup
       • DR
Distributed File System


                           File API
               Coordination Service

                                      Block Store 1
            File Handles
                                      Block Store 2
           Small File Block
                Store
                                      Block Store N
Distributed File System

• Small files are a problem
• Examples
    • #1. One 10MB file = 10MB
    • #2. 10 million one byte file = 10MB
• Stored initially in a HA database
• Bundled with other small files into a big file
• File handles reference an offset into the big file
Search

 • Full-text search capability
 • Wide variety of data to support:
    • Structured data: id, email, phone number
    • Unstructured data: long documents, short chatter posts
 • Real-time indexing and querying
    • 90% of events indexed in < 3 mins
 • Lucene & Solr
Next-gen Querying
Original architecture
                                            QUERY TIER


            ?        Java
                      Java
                       Java
                        Java
                         Java
                          Java
                  Application
                           Java
                  Application
                            Java
                   Application
                   Application
                                       Query
                                       Query
                                        Query
                                        Query
                                        Search
                                       Hosts
                                       Hosts
                                        Hosts
                                        Hosts
                                                           NFS
                                                           NFS
                    Application
                    Application
                   Servers
                     Application        Servers
                    Servers
                      Application
                    Servers
                     Servers
                      Servers
                       Servers
                        Servers
                         Servers




                                       Primary
                      DB               Indexer             SAN




                                      Secondary            Back-
                                       Indexer              ups



                                    INDEXING TIER        STORAGE
Next-gen Querying
Current architecture
                                           QUERY TIER


            ?       Java
                     Java
                      Java
                       Java
                        Java
                         Java
                 Application
                          Java
                 Application
                           Java
                  Application
                  Application
                                      Query
                                      Query
                                       Query
                                       Query
                                       Search
                                      Hosts
                                      Hosts
                                       Hosts
                                       Hosts
                                                          NFS
                                                          NFS
                   Application
                   Application
                  Servers
                    Application        Servers
                   Servers
                     Application
                   Servers
                    Servers
                     Servers
                      Servers
                       Servers
                        Servers




                                      Primary
                       DB             Indexer             SAN




                                     Secondary            Back-
                                      Indexer              ups



                                   INDEXING TIER        STORAGE
Query Performance




                    Enabled In-Memory
                        Querying
Solr
Next Generation Architecture

                          Production                 DR




                                       Replicati
           Java
            Java
             Java          Search
                            Query                  Search
                                                    Query
              Java
               Java         Query
                             Query                  Query
                                                     Query
                                                     Search




                                         on
                Java
        Application
                 Java
        Application
                  Java       Search
                           Hosts                   Hosts
         Application
         Application
          Application       Hosts
                            Hosts
                             Hosts                  Hosts
                                                    Hosts
                                                     Hosts
          Application
         Servers
           Application
          Servers
            Application      Servers                 Servers
          Servers
           Servers
            Servers
             Servers
              Servers
               Servers

                            Backup




            DB                 FFX
Concludes Data Infrastructure.

On to Multitenancy.
Multitenancy

 • Condominium Complex = Data Infrastructure
 • Tenant = Organization (aka Company)
 • Each Organization has many sub-tenants (aka Users)
How do we take a plain old relational database and
make it multitenant?
Multitenant Database

 Customize standard schema
   Create columns
 Add new schema
   Create new tables & columns
 Scale
   Create indexes and materialized views
   Statistics gathering
   Adhoc querying with optimized query plans
Multitenant Database

 Customers have created 2 million database tables
 Tens of millions of columns on those tables
 Ten of billions of rows in those tables
Sharing Relational Data Structures is Hard
   Your Definitions          Your Data   Your Optimizations
                                           Indexes
                                           Pivot table for non-unique
                                           indexes




                 Dell’s                    UniqueFields
                                           Pivot table for unique
              Product Data                 indexes



                                           Relationships
                                           Pivot table for foreign keys
 Burberry’s
  Clothing
                                           MRUIndex
    Data
                                          Pivot table for most-recently-
                                          used
              Your Payroll
                 Data
                                            …others…
Flex Schema on Steroids: Everyone’s Data

                                   Flex Column: Multiple Data Types
                  ID        Tenant      Data 1   Data 2    Data N
                  1000001   You                  $190
                  1000002   You                  $250
                  1000003   You                  $680
                  1000004   Burberry             True
                  1000005   Burberry             False
                  1000006   Burberry             True
                  1000007   Dell                 Monitor
                  1000008   Dell                 Laptop
                  1000009   Dell                 Server
Flex Schema: Everyone’s Optimizations
      Muti-Tenant Table                          Multi-tenant Index
                                                                            ID               Data 1               Data 2

                                                                            10002   unus erat         toto naturae

                                                                            10003   vultus            in orbe

                                                                            10004   quem dixere       chaeos

                                                                            10005   rudis             indigestaque

                                                                            10006   meis              perpetuum

                                                                            10007   deducite          temopra
     ID        Tenant     Data 2                Tenant     Text      Number 10008    Boolean
                                                                                    carmen            ante

                                                                            10009   mare              et terras

     1000001   You        $190                                              10010   tegit             et quod


                                                You                  $190   10011

                                                                            10012
                                                                                    omnia

                                                                                    unus erat
                                                                                                      caelum

                                                                                                      toto naturae
     1000002   You        $250                                              10013   vultus            in orbe

                                                You                  $250   10014   quem dixere       chaeos

     1000003   You        $680                                              10015   rudis             indigestaque

                                                                            10016   meis              perpetuum
                                                You                  $680   10017   deducite          temopra
     1000004   Burberry   True                                              10018   carmen            ante

                                                Burberry                    10019    True
                                                                                    mare              et terras

     1000005   Burberry   False     Redundant   Burberry
                                                                            10020

                                                                            10021
                                                                                    tegit

                                                                                    omnia
                                                                                     False
                                                                                                      et quod

                                                                                                      caelum

                                                                            10022   unus erat         toto naturae
     1000006   Burberry   True
                                     Storage    Burberry
                                                                            10023

                                                                            10024
                                                                                    vultus

                                                                                     True
                                                                                    quem dixere
                                                                                                      in orbe

                                                                                                      chaeos

     1000007   Dell       Monitor                                           10025   rudis             indigestaque

                                                                            10026   meis              perpetuum
                                                Dell       Monitor          10027   deducite          temopra
     1000008   Dell       Laptop                                            10028   carmen            ante


                                                Dell       Laptop           10029   mare              et terras

     1000009   Dell       Server                                            10030   tegit             et quod

                                                                            10031   omnia             caelum
                                                Dell       Server           10032   unus erat         toto naturae

                                                                            10033   vultus            in orbe
Multitenant Database
 • To support Custom Objects, we use:
    • Arbitrary Transaction Support
    • Locking
    • Row caching
 • To support Custom Objects, we don’t use:
    •   Native data typing
    •   Native indexing
    •   Foreign Key Constraints
    •   Query Optimization
    •   Stats Collection
A Real World Question

    Michael Dell wants to know if Servers are
             selling well in the West
               SELECT SUM(Amount)
                FROM Opportunities
              WHERE Product = ‘Servers’
                AND Region = ‘West’


    How will we answer this question quickly?
Multi-tenant Query Optimizer
                                Indexes
                                ID               Data 1             Data 2


                                10002   unus erat         toto naturae

                                10003   vultus            in orbe

                                10004   quem dixere       chaeos

                                10005   rudis             indigestaque

                                10006
                                     Servers
                                        meis              perpetuum

                                10007

                                10008
                                        deducite

                                        carmen
                                                          temopra

                                                          ante
                                                                             Visibility
        The fastest path to     10009

                                10010

                                10011
                                        mare

                                        tegit

                                        omnia
                                                          et terras

                                                          et quod

                                                          caelum
                                                                             ID


                                                                             10002   unus erat
                                                                                              Data 1             Data 2


                                                                                                       toto naturae




           the answer           10012

                                10013

                                10014
                                        unus erat

                                        vultus

                                        quem dixere
                                                          totonaturae

                                                          in orbe

                                                          chaeos
                                                                             10003

                                                                             10004

                                                                             10005
                                                                                     vultus

                                                                                     quem dixere

                                                                                     rudis
                                                                                                       in orbe

                                                                                                       chaeos

                                                                                                       indigestaque

                                10015   rudis             indigestaque       10006   meis              perpetuum

                                10016   meis              perpetuum          10007   deducite          temopra

                                10017   deducite          temopra            10008   carmen            ante

                                10018   carmen            ante               10009   mare              et terras

                                10019   mare              et terras          10010   tegit             et quod

                                10020   tegit             et quod            10011   omnia             caelum

                                10021

                                10022

                                10023
                                          West
                                        omnia

                                        unus erat

                                        vultus
                                                          caelum

                                                          toto naturae

                                                          in orbe
                                                                             10012

                                                                             10013

                                                                             10014
                                                                                     unus erat

                                                                                     vultus

                                                                                     quem dixere
                                                                                                       totonaturae

                                                                                                       in orbe

                                                                                                       chaeos

                                10024   quem dixere       chaeos             10015   rudis             indigestaque

                                10025   rudis             indigestaque       10016   meis              perpetuum

                                10026   meis              perpetuum          10017   deducite          temopra

                                10027   deducite          temopra            10018   carmen            ante



            Millions of Sales   10028

                                10029
                                        carmen

                                        mare
                                                          ante

                                                          et terras
                                                                             10019

                                                                             10020
                                                                                     mare

                                                                                     tegit
                                                                                                       et terras

                                                                                                       et quod

                                10030   tegit             et quod

                Line Items      10031   omnia             caelum
                                                                             10021

                                                                             10022
                                                                                     omnia

                                                                                     unus erat
                                                                                                       caelum

                                                                                                       toto naturae

                                10032

                                10033
                                        unus erat

                                        vultus
                                                          toto naturae

                                                          in orbe
                                                                             10023

                                                                             10024
                                                                                     M. Dell
                                                                                     vultus

                                                                                     quem dixere
                                                                                                       in orbe

                                                                                                       chaeos

                                                                             10025   rudis             indigestaque

                                                                             10026   meis              perpetuum

                                                                             10027   deducite          temopra

                                                                             10028   carmen            ante

                                                                             10029   mare              et terras

                                                                             10030   tegit             et quod

                                                                             10031   omnia             caelum

                                                                             10032   unus erat         toto naturae

                                                                             10033   vultus            in orbe
Multi-tenant Query Optimizer
                                                                                                                                                       Go


Shared                                                                           Shared                                                          Run pre-queries
Visibility                                                                       Indexes                                                           Check user       User              # of rows that
                                                                                                                                                                                  =
                                                                                                                                                    Visibility      Visibility        the user can
                                                            ID                         Data 1                  Data 2
ID                         Data 1                  Data 2




     10002




     10003




     10004
             unus erat




             vultus




             quem dixere
                                    toto naturae




                                    in orbe




                                    chaeos
                                                                 10002




                                                                 10003




                                                                 10004




                                                                 10005
                                                                         unus erat




                                                                         vultus




                                                                         quem dixere




                                                                         rudis
                                                                                                toto naturae




                                                                                                in orbe




                                                                                                chaeos




                                                                                                indigestaque
                                                                                                                                                   Check filter                       access
     10005   rudis                  indigestaque




                                                                                                                                                   selectivity      Filter
     10006   meis                   perpetuum                    10006   meis                   perpetuum




                                                                                                                                                                                  = How specific
     10007   deducite               temopra                      10007   deducite               temopra




     10008   carmen                 ante                         10008   carmen                 ante




     10009   mare                   et terras                    10009   mare                   et terras




                                                                                                                                                                    Selectivity
     10010   tegit                  et quod                      10010   tegit                  et quod




     10011




     10012
             omnia




             unus erat
                                    caelum




                                    totonaturae
                                                                 10011




                                                                 10012
                                                                         omnia




                                                                         unus erat
                                                                                                caelum




                                                                                                totonaturae

                                                                                                                                                                                    is this filter?
                                                                                                                           Multi-tenant
     10013   vultus                 in orbe                      10013   vultus                 in orbe




     10014   quem dixere            chaeos                       10014   quem dixere            chaeos




     10015   rudis                  indigestaque                 10015   rudis                  indigestaque




                                                                                                                                               Write query-based
     10016   meis                   perpetuum                    10016   meis                   perpetuum




     10017




     10018




     10019
             deducite




             carmen




             mare
                                    temopra




                                    ante




                                    et terras
                                                                 10017




                                                                 10018




                                                                 10019
                                                                         deducite




                                                                         carmen




                                                                         mare
                                                                                                temopra




                                                                                                ante




                                                                                                et terras
                                                                                                                        Optimizer Statistics
                                                                                                                                               on results of pre-
     10020   tegit                  et quod                      10020   tegit                  et quod




     10021   omnia                  caelum                       10021   omnia                  caelum




     10022   unus erat              toto naturae                 10022   unus erat              toto naturae




     10023   vultus                 in orbe                      10023   vultus                 in orbe




     10024




     10025




     10026




     10027
             quem dixere




             rudis




             meis




             deducite
                                    chaeos




                                    indigestaque




                                    perpetuum




                                    temopra
                                                                 10024




                                                                 10025




                                                                 10026




                                                                 10027
                                                                         quem dixere




                                                                         rudis




                                                                         meis




                                                                         deducite
                                                                                                chaeos




                                                                                                indigestaque




                                                                                                perpetuum




                                                                                                temopra
                                                                                                                                                    queries
                                                                 10028   carmen                 ante
     10028   carmen                 ante




                                                                 10029   mare                   et terras
     10029   mare                   et terras




     10030   tegit                  et quod                      10030   tegit                  et quod




                                                                 10031   omnia                  caelum
     10031   omnia                  caelum




                                                                 10032   unus erat              toto naturae
     10032   unus erat              toto naturae




                                                                 10033   vultus                 in orbe
     10033   vultus                 in orbe




                                                                                                                                                 Execute query




                                                                                                                                                     Stop
The Machine is Alive!!!!

 Automatic creation of indexes
    Watches queries, logs certain behaviors, selects potential candidates,
     tests and ranks best candidates, and then builds indexes for
     candidates
 Runtime predictor for long-running queries
    Factors in selectivity, cardinality, # of joins, presence of indexes,
     current server conditions
    Machine Learning via Decision Forest
How can we make internal salesforce developers
              more efficient?
We want to create the Quote standard object
•   DDL scripts
•   Hand-coded SQL
•   ORM
•   Sharing
•   Workflow
•   Apex
•   Visualforce
•   Validation Rules
•   API
Why can Force.com developers create a Custom
Object in about 30 secs, but it takes me 30 days?
Our Solution for the Quote Standard Object

Base Platform Objects (BPOs)


Exactly the same as Custom Objects, but exposed to internal
saleforce.com developers.


Schema defined in XML
Our Solution for the Quote Standard Object

Customer’s getting the benefit of it! Zero downtime for major
releases and the shrinkage of maintenance windows.
Conclusion - Key Takeaways
Data Infrastructure
   • Building blocks of the Force.com service. Relational database,
     Distributed File System, Search. High Availability, Backups, and
     Disaster Recovery.
Multitenant Data Management
   • Platformize the raw data infrastructure to make it work for the cloud.
     Enable multiple customers to utilize a shared resource pool.
Internal Development with Data
   • Dogfooding. How do internal Salesforce engineers build on top of this
     multitenant data platform?
A Behind the Scenes Look at the Force.com Platform

Contenu connexe

Tendances

Emerging technologies in computer science
Emerging technologies in computer scienceEmerging technologies in computer science
Emerging technologies in computer scienceSrinivas Narasegouda
 
Dataiku - From Big Data To Machine Learning
Dataiku - From Big Data To Machine LearningDataiku - From Big Data To Machine Learning
Dataiku - From Big Data To Machine LearningDataiku
 
Social Media Data Collection & Analysis
Social Media Data Collection & AnalysisSocial Media Data Collection & Analysis
Social Media Data Collection & AnalysisScott Sanders
 
Project on disease prediction
Project on disease predictionProject on disease prediction
Project on disease predictionKOYELMAJUMDAR1
 
Power BI measure and visualize project success
Power BI measure and visualize project successPower BI measure and visualize project success
Power BI measure and visualize project successFisnik Doko
 
Introduction To Data Science
Introduction To Data ScienceIntroduction To Data Science
Introduction To Data ScienceSpotle.ai
 
Data Streaming For Big Data
Data Streaming For Big DataData Streaming For Big Data
Data Streaming For Big DataSeval Çapraz
 
Introduction to Data Engineer and Data Pipeline at Credit OK
Introduction to Data Engineer and Data Pipeline at Credit OKIntroduction to Data Engineer and Data Pipeline at Credit OK
Introduction to Data Engineer and Data Pipeline at Credit OKKriangkrai Chaonithi
 
IT Asset Management (ITAM) - Hardware Asset Management (HAM)
IT Asset Management (ITAM) - Hardware Asset Management (HAM)IT Asset Management (ITAM) - Hardware Asset Management (HAM)
IT Asset Management (ITAM) - Hardware Asset Management (HAM)Laurence Tindall
 
Business Intelligence - Intro
Business Intelligence - IntroBusiness Intelligence - Intro
Business Intelligence - IntroDavid Hubbard
 
Page rank
Page rankPage rank
Page rankCarlos
 
Intro to Talend Open Studio for Data Integration
Intro to Talend Open Studio for Data IntegrationIntro to Talend Open Studio for Data Integration
Intro to Talend Open Studio for Data IntegrationPhilip Yurchuk
 
How to-build-a-service-catalog
How to-build-a-service-catalogHow to-build-a-service-catalog
How to-build-a-service-catalogspeak2kd11
 

Tendances (20)

Emerging technologies in computer science
Emerging technologies in computer scienceEmerging technologies in computer science
Emerging technologies in computer science
 
Dataiku - From Big Data To Machine Learning
Dataiku - From Big Data To Machine LearningDataiku - From Big Data To Machine Learning
Dataiku - From Big Data To Machine Learning
 
Social Media Data Collection & Analysis
Social Media Data Collection & AnalysisSocial Media Data Collection & Analysis
Social Media Data Collection & Analysis
 
R and Data Science
R and Data ScienceR and Data Science
R and Data Science
 
Project on disease prediction
Project on disease predictionProject on disease prediction
Project on disease prediction
 
Power BI measure and visualize project success
Power BI measure and visualize project successPower BI measure and visualize project success
Power BI measure and visualize project success
 
Introduction to Data Engineering
Introduction to Data EngineeringIntroduction to Data Engineering
Introduction to Data Engineering
 
Data science - An Introduction
Data science - An IntroductionData science - An Introduction
Data science - An Introduction
 
Introduction To Data Science
Introduction To Data ScienceIntroduction To Data Science
Introduction To Data Science
 
Business intelligence
Business intelligenceBusiness intelligence
Business intelligence
 
Data Streaming For Big Data
Data Streaming For Big DataData Streaming For Big Data
Data Streaming For Big Data
 
Introduction to Data Engineer and Data Pipeline at Credit OK
Introduction to Data Engineer and Data Pipeline at Credit OKIntroduction to Data Engineer and Data Pipeline at Credit OK
Introduction to Data Engineer and Data Pipeline at Credit OK
 
IT Asset Management (ITAM) - Hardware Asset Management (HAM)
IT Asset Management (ITAM) - Hardware Asset Management (HAM)IT Asset Management (ITAM) - Hardware Asset Management (HAM)
IT Asset Management (ITAM) - Hardware Asset Management (HAM)
 
ITIL PPT
ITIL PPTITIL PPT
ITIL PPT
 
Text mining
Text miningText mining
Text mining
 
Business Intelligence - Intro
Business Intelligence - IntroBusiness Intelligence - Intro
Business Intelligence - Intro
 
Data dictionary
Data dictionaryData dictionary
Data dictionary
 
Page rank
Page rankPage rank
Page rank
 
Intro to Talend Open Studio for Data Integration
Intro to Talend Open Studio for Data IntegrationIntro to Talend Open Studio for Data Integration
Intro to Talend Open Studio for Data Integration
 
How to-build-a-service-catalog
How to-build-a-service-catalogHow to-build-a-service-catalog
How to-build-a-service-catalog
 

Similaire à A Behind the Scenes Look at the Force.com Platform

Open Cloud Interop Public
Open Cloud Interop PublicOpen Cloud Interop Public
Open Cloud Interop Publicrvanhoe
 
A Service-Based Architecture for Multi-domain Search on the Web
A Service-Based Architecture for Multi-domain Search on the WebA Service-Based Architecture for Multi-domain Search on the Web
A Service-Based Architecture for Multi-domain Search on the WebAlessandro Bozzon
 
[.Net Juniors Academy] Introdução ao Cloud Computing e Windows Azure Platform
[.Net Juniors Academy] Introdução ao Cloud Computing e Windows Azure Platform[.Net Juniors Academy] Introdução ao Cloud Computing e Windows Azure Platform
[.Net Juniors Academy] Introdução ao Cloud Computing e Windows Azure PlatformVitor Tomaz
 
#VMUGMTL DELL Breakout
#VMUGMTL DELL Breakout#VMUGMTL DELL Breakout
#VMUGMTL DELL Breakout1CloudRoad.com
 
Virtualizing Latency Sensitive Workloads and vFabric GemFire
Virtualizing Latency Sensitive Workloads and vFabric GemFireVirtualizing Latency Sensitive Workloads and vFabric GemFire
Virtualizing Latency Sensitive Workloads and vFabric GemFireCarter Shanklin
 
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
 
13h00 p duff-building-applications-with-aws-final
13h00   p duff-building-applications-with-aws-final13h00   p duff-building-applications-with-aws-final
13h00 p duff-building-applications-with-aws-finalLuiz Gustavo Santos
 
14 Ace 2010 Replication Workshop
14 Ace 2010 Replication Workshop14 Ace 2010 Replication Workshop
14 Ace 2010 Replication WorkshopProdeos
 
Brief about Windows Azure Platform
Brief about Windows Azure Platform Brief about Windows Azure Platform
Brief about Windows Azure Platform K.Mohamed Faizal
 
Oracle Application Management Suite
Oracle Application Management SuiteOracle Application Management Suite
Oracle Application Management SuiteOracleVolutionSeries
 
Expanding dr with_zfssa_110810
Expanding dr with_zfssa_110810Expanding dr with_zfssa_110810
Expanding dr with_zfssa_110810rjmurphyslideshare
 
Windows Azure Platform
Windows Azure PlatformWindows Azure Platform
Windows Azure PlatformAsmTrash
 
Session 49 Practical Semantic Sticky Note
Session 49 Practical Semantic Sticky NoteSession 49 Practical Semantic Sticky Note
Session 49 Practical Semantic Sticky NoteISSGC Summer School
 
Chef - Evolving with Infrastructure Automation
Chef - Evolving with Infrastructure AutomationChef - Evolving with Infrastructure Automation
Chef - Evolving with Infrastructure AutomationNathaniel Brown
 
Patterns of Cloud Applications Using Microsoft Azure Services Platform
Patterns of Cloud Applications Using Microsoft Azure Services PlatformPatterns of Cloud Applications Using Microsoft Azure Services Platform
Patterns of Cloud Applications Using Microsoft Azure Services PlatformDavid Chou
 
Session 49 - Semantic metadata management practical
Session 49 - Semantic metadata management practical Session 49 - Semantic metadata management practical
Session 49 - Semantic metadata management practical ISSGC Summer School
 
Best Practices for Hosting Web Applications on AWS
Best Practices for Hosting Web Applications on AWSBest Practices for Hosting Web Applications on AWS
Best Practices for Hosting Web Applications on AWSAmazon Web Services
 

Similaire à A Behind the Scenes Look at the Force.com Platform (20)

Open Cloud Interop Public
Open Cloud Interop PublicOpen Cloud Interop Public
Open Cloud Interop Public
 
A Service-Based Architecture for Multi-domain Search on the Web
A Service-Based Architecture for Multi-domain Search on the WebA Service-Based Architecture for Multi-domain Search on the Web
A Service-Based Architecture for Multi-domain Search on the Web
 
[.Net Juniors Academy] Introdução ao Cloud Computing e Windows Azure Platform
[.Net Juniors Academy] Introdução ao Cloud Computing e Windows Azure Platform[.Net Juniors Academy] Introdução ao Cloud Computing e Windows Azure Platform
[.Net Juniors Academy] Introdução ao Cloud Computing e Windows Azure Platform
 
#VMUGMTL DELL Breakout
#VMUGMTL DELL Breakout#VMUGMTL DELL Breakout
#VMUGMTL DELL Breakout
 
Virtualizing Latency Sensitive Workloads and vFabric GemFire
Virtualizing Latency Sensitive Workloads and vFabric GemFireVirtualizing Latency Sensitive Workloads and vFabric GemFire
Virtualizing Latency Sensitive Workloads and vFabric GemFire
 
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
 
Building Applications with AWS
Building Applications with AWSBuilding Applications with AWS
Building Applications with AWS
 
13h00 p duff-building-applications-with-aws-final
13h00   p duff-building-applications-with-aws-final13h00   p duff-building-applications-with-aws-final
13h00 p duff-building-applications-with-aws-final
 
14 Ace 2010 Replication Workshop
14 Ace 2010 Replication Workshop14 Ace 2010 Replication Workshop
14 Ace 2010 Replication Workshop
 
Brief about Windows Azure Platform
Brief about Windows Azure Platform Brief about Windows Azure Platform
Brief about Windows Azure Platform
 
Oracle Application Management Suite
Oracle Application Management SuiteOracle Application Management Suite
Oracle Application Management Suite
 
Expanding dr with_zfssa_110810
Expanding dr with_zfssa_110810Expanding dr with_zfssa_110810
Expanding dr with_zfssa_110810
 
Windows Azure Platform
Windows Azure PlatformWindows Azure Platform
Windows Azure Platform
 
Session 49 Practical Semantic Sticky Note
Session 49 Practical Semantic Sticky NoteSession 49 Practical Semantic Sticky Note
Session 49 Practical Semantic Sticky Note
 
Chef - Evolving with Infrastructure Automation
Chef - Evolving with Infrastructure AutomationChef - Evolving with Infrastructure Automation
Chef - Evolving with Infrastructure Automation
 
Windows Azure Overview
Windows Azure OverviewWindows Azure Overview
Windows Azure Overview
 
Patterns of Cloud Applications Using Microsoft Azure Services Platform
Patterns of Cloud Applications Using Microsoft Azure Services PlatformPatterns of Cloud Applications Using Microsoft Azure Services Platform
Patterns of Cloud Applications Using Microsoft Azure Services Platform
 
Session 49 - Semantic metadata management practical
Session 49 - Semantic metadata management practical Session 49 - Semantic metadata management practical
Session 49 - Semantic metadata management practical
 
Best Practices for Hosting Web Applications on AWS
Best Practices for Hosting Web Applications on AWSBest Practices for Hosting Web Applications on AWS
Best Practices for Hosting Web Applications on AWS
 

Plus de Salesforce Developers

Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSalesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceSalesforce Developers
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base ComponentsSalesforce Developers
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsSalesforce Developers
 
Why developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaWhy developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaSalesforce Developers
 
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentCodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentSalesforce Developers
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsSalesforce Developers
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsSalesforce Developers
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsSalesforce Developers
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and TestingSalesforce Developers
 
LWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilityLWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilitySalesforce Developers
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce dataSalesforce Developers
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionSalesforce Developers
 
Migrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPMigrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPSalesforce Developers
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceSalesforce Developers
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureSalesforce Developers
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DXSalesforce Developers
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectSalesforce Developers
 

Plus de Salesforce Developers (20)

Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component Performance
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base Components
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer Highlights
 
Why developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaWhy developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX India
 
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentCodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local Development
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web Components
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web Components
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer Highlights
 
Live coding with LWC
Live coding with LWCLive coding with LWC
Live coding with LWC
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and Testing
 
LWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilityLWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura Interoperability
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce data
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An Introduction
 
Migrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPMigrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCP
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in Salesforce
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data Capture
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DX
 
Get Into Lightning Flow Development
Get Into Lightning Flow DevelopmentGet Into Lightning Flow Development
Get Into Lightning Flow Development
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS Connect
 

A Behind the Scenes Look at the Force.com Platform

  • 1. A Behind the Scenes Look at the Force.com Platform Walter Macklem, salesforce.com, CTO of Platform
  • 2. Safe Harbor Safe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services. The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of intellectual property and other litigation, risks associated with possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-Q for the most recent fiscal quarter ended July 31, 2012. This documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site. Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward- looking statements.
  • 3. Key Takeaways Internal & External Data Constructs Multitenancy Data Infrastructure
  • 4. Key Takeaways Data Infrastructure • Building blocks of the Force.com service. Relational database, Distributed File System, Search. High Availability, Backups, and Disaster Recovery. Multitenant Data Management • Platformize the raw data infrastructure to make it work for the cloud. Enable multiple customers to utilize a shared resource pool. Internal Development with Data • Dogfooding. How do internal Salesforce engineers build on top of this multitenant data platform?
  • 5. Pod == Hardware Topology
  • 6. Pod • Self-contained set of hardware* • Each customer is in one pod • Each pod services many customers • Data persistence and System of Record • Data processing • Hardware mirroring * Exceptions being: Edge router and a few other services
  • 7. Pod Salesforce Users Pod #1 Application Servers Relational Database Distributed Search File System
  • 8. Pod Horizontal Scalability POD #1 POD #2 POD #3 POD #4 POD #5 POD #N NA1 NA7 EU1 CS8 AP0
  • 9. Data Infrastructure Building Blocks • Relational Database • Distributed File System • Search
  • 10. Relational Database • Sharding / Partitioning • 32-way • Shard based on customer • High availability • 8 machine database cluster • Automatic failover
  • 11. Relational Database • Backups • 3 lag databases • Near Realtime • 2 Hour • 48 Hour • Tape / Disk • Disaster Recovery • Hardware block-level replication • 6 logical copies of all bits • >> 6 physical copies of all bits
  • 12. Distributed File System • Binary Object Store • Homegrown Technology called FileForce • Optimized for High Availability
  • 13. Distributed File System • File Handles are stored in a HA relational database • Block stores: • High density cheap machines • Dumb • RAID10 • Deployed in “buddy” pairs • Buddy • Leader election • Backup • DR
  • 14. Distributed File System File API Coordination Service Block Store 1 File Handles Block Store 2 Small File Block Store Block Store N
  • 15. Distributed File System • Small files are a problem • Examples • #1. One 10MB file = 10MB • #2. 10 million one byte file = 10MB • Stored initially in a HA database • Bundled with other small files into a big file • File handles reference an offset into the big file
  • 16. Search • Full-text search capability • Wide variety of data to support: • Structured data: id, email, phone number • Unstructured data: long documents, short chatter posts • Real-time indexing and querying • 90% of events indexed in < 3 mins • Lucene & Solr
  • 17. Next-gen Querying Original architecture QUERY TIER ? Java Java Java Java Java Java Application Java Application Java Application Application Query Query Query Query Search Hosts Hosts Hosts Hosts NFS NFS Application Application Servers Application Servers Servers Application Servers Servers Servers Servers Servers Servers Primary DB Indexer SAN Secondary Back- Indexer ups INDEXING TIER STORAGE
  • 18. Next-gen Querying Current architecture QUERY TIER ? Java Java Java Java Java Java Application Java Application Java Application Application Query Query Query Query Search Hosts Hosts Hosts Hosts NFS NFS Application Application Servers Application Servers Servers Application Servers Servers Servers Servers Servers Servers Primary DB Indexer SAN Secondary Back- Indexer ups INDEXING TIER STORAGE
  • 19. Query Performance Enabled In-Memory Querying
  • 20. Solr Next Generation Architecture Production DR Replicati Java Java Java Search Query Search Query Java Java Query Query Query Query Search on Java Application Java Application Java Search Hosts Hosts Application Application Application Hosts Hosts Hosts Hosts Hosts Hosts Application Servers Application Servers Application Servers Servers Servers Servers Servers Servers Servers Servers Backup DB FFX
  • 22. Multitenancy • Condominium Complex = Data Infrastructure • Tenant = Organization (aka Company) • Each Organization has many sub-tenants (aka Users)
  • 23. How do we take a plain old relational database and make it multitenant?
  • 24. Multitenant Database Customize standard schema  Create columns Add new schema  Create new tables & columns Scale  Create indexes and materialized views  Statistics gathering  Adhoc querying with optimized query plans
  • 25. Multitenant Database Customers have created 2 million database tables Tens of millions of columns on those tables Ten of billions of rows in those tables
  • 26. Sharing Relational Data Structures is Hard Your Definitions Your Data Your Optimizations Indexes Pivot table for non-unique indexes Dell’s UniqueFields Pivot table for unique Product Data indexes Relationships Pivot table for foreign keys Burberry’s Clothing MRUIndex Data Pivot table for most-recently- used Your Payroll Data …others…
  • 27. Flex Schema on Steroids: Everyone’s Data Flex Column: Multiple Data Types ID Tenant Data 1 Data 2 Data N 1000001 You $190 1000002 You $250 1000003 You $680 1000004 Burberry True 1000005 Burberry False 1000006 Burberry True 1000007 Dell Monitor 1000008 Dell Laptop 1000009 Dell Server
  • 28. Flex Schema: Everyone’s Optimizations Muti-Tenant Table Multi-tenant Index ID Data 1 Data 2 10002 unus erat toto naturae 10003 vultus in orbe 10004 quem dixere chaeos 10005 rudis indigestaque 10006 meis perpetuum 10007 deducite temopra ID Tenant Data 2 Tenant Text Number 10008 Boolean carmen ante 10009 mare et terras 1000001 You $190 10010 tegit et quod You $190 10011 10012 omnia unus erat caelum toto naturae 1000002 You $250 10013 vultus in orbe You $250 10014 quem dixere chaeos 1000003 You $680 10015 rudis indigestaque 10016 meis perpetuum You $680 10017 deducite temopra 1000004 Burberry True 10018 carmen ante Burberry 10019 True mare et terras 1000005 Burberry False Redundant Burberry 10020 10021 tegit omnia False et quod caelum 10022 unus erat toto naturae 1000006 Burberry True Storage Burberry 10023 10024 vultus True quem dixere in orbe chaeos 1000007 Dell Monitor 10025 rudis indigestaque 10026 meis perpetuum Dell Monitor 10027 deducite temopra 1000008 Dell Laptop 10028 carmen ante Dell Laptop 10029 mare et terras 1000009 Dell Server 10030 tegit et quod 10031 omnia caelum Dell Server 10032 unus erat toto naturae 10033 vultus in orbe
  • 29. Multitenant Database • To support Custom Objects, we use: • Arbitrary Transaction Support • Locking • Row caching • To support Custom Objects, we don’t use: • Native data typing • Native indexing • Foreign Key Constraints • Query Optimization • Stats Collection
  • 30. A Real World Question Michael Dell wants to know if Servers are selling well in the West SELECT SUM(Amount) FROM Opportunities WHERE Product = ‘Servers’ AND Region = ‘West’ How will we answer this question quickly?
  • 31. Multi-tenant Query Optimizer Indexes ID Data 1 Data 2 10002 unus erat toto naturae 10003 vultus in orbe 10004 quem dixere chaeos 10005 rudis indigestaque 10006 Servers meis perpetuum 10007 10008 deducite carmen temopra ante Visibility The fastest path to 10009 10010 10011 mare tegit omnia et terras et quod caelum ID 10002 unus erat Data 1 Data 2 toto naturae the answer 10012 10013 10014 unus erat vultus quem dixere totonaturae in orbe chaeos 10003 10004 10005 vultus quem dixere rudis in orbe chaeos indigestaque 10015 rudis indigestaque 10006 meis perpetuum 10016 meis perpetuum 10007 deducite temopra 10017 deducite temopra 10008 carmen ante 10018 carmen ante 10009 mare et terras 10019 mare et terras 10010 tegit et quod 10020 tegit et quod 10011 omnia caelum 10021 10022 10023 West omnia unus erat vultus caelum toto naturae in orbe 10012 10013 10014 unus erat vultus quem dixere totonaturae in orbe chaeos 10024 quem dixere chaeos 10015 rudis indigestaque 10025 rudis indigestaque 10016 meis perpetuum 10026 meis perpetuum 10017 deducite temopra 10027 deducite temopra 10018 carmen ante Millions of Sales 10028 10029 carmen mare ante et terras 10019 10020 mare tegit et terras et quod 10030 tegit et quod Line Items 10031 omnia caelum 10021 10022 omnia unus erat caelum toto naturae 10032 10033 unus erat vultus toto naturae in orbe 10023 10024 M. Dell vultus quem dixere in orbe chaeos 10025 rudis indigestaque 10026 meis perpetuum 10027 deducite temopra 10028 carmen ante 10029 mare et terras 10030 tegit et quod 10031 omnia caelum 10032 unus erat toto naturae 10033 vultus in orbe
  • 32. Multi-tenant Query Optimizer Go Shared Shared Run pre-queries Visibility Indexes Check user User # of rows that = Visibility Visibility the user can ID Data 1 Data 2 ID Data 1 Data 2 10002 10003 10004 unus erat vultus quem dixere toto naturae in orbe chaeos 10002 10003 10004 10005 unus erat vultus quem dixere rudis toto naturae in orbe chaeos indigestaque Check filter access 10005 rudis indigestaque selectivity Filter 10006 meis perpetuum 10006 meis perpetuum = How specific 10007 deducite temopra 10007 deducite temopra 10008 carmen ante 10008 carmen ante 10009 mare et terras 10009 mare et terras Selectivity 10010 tegit et quod 10010 tegit et quod 10011 10012 omnia unus erat caelum totonaturae 10011 10012 omnia unus erat caelum totonaturae is this filter? Multi-tenant 10013 vultus in orbe 10013 vultus in orbe 10014 quem dixere chaeos 10014 quem dixere chaeos 10015 rudis indigestaque 10015 rudis indigestaque Write query-based 10016 meis perpetuum 10016 meis perpetuum 10017 10018 10019 deducite carmen mare temopra ante et terras 10017 10018 10019 deducite carmen mare temopra ante et terras Optimizer Statistics on results of pre- 10020 tegit et quod 10020 tegit et quod 10021 omnia caelum 10021 omnia caelum 10022 unus erat toto naturae 10022 unus erat toto naturae 10023 vultus in orbe 10023 vultus in orbe 10024 10025 10026 10027 quem dixere rudis meis deducite chaeos indigestaque perpetuum temopra 10024 10025 10026 10027 quem dixere rudis meis deducite chaeos indigestaque perpetuum temopra queries 10028 carmen ante 10028 carmen ante 10029 mare et terras 10029 mare et terras 10030 tegit et quod 10030 tegit et quod 10031 omnia caelum 10031 omnia caelum 10032 unus erat toto naturae 10032 unus erat toto naturae 10033 vultus in orbe 10033 vultus in orbe Execute query Stop
  • 33. The Machine is Alive!!!! Automatic creation of indexes  Watches queries, logs certain behaviors, selects potential candidates, tests and ranks best candidates, and then builds indexes for candidates Runtime predictor for long-running queries  Factors in selectivity, cardinality, # of joins, presence of indexes, current server conditions  Machine Learning via Decision Forest
  • 34. How can we make internal salesforce developers more efficient?
  • 35. We want to create the Quote standard object • DDL scripts • Hand-coded SQL • ORM • Sharing • Workflow • Apex • Visualforce • Validation Rules • API
  • 36. Why can Force.com developers create a Custom Object in about 30 secs, but it takes me 30 days?
  • 37. Our Solution for the Quote Standard Object Base Platform Objects (BPOs) Exactly the same as Custom Objects, but exposed to internal saleforce.com developers. Schema defined in XML
  • 38. Our Solution for the Quote Standard Object Customer’s getting the benefit of it! Zero downtime for major releases and the shrinkage of maintenance windows.
  • 39. Conclusion - Key Takeaways Data Infrastructure • Building blocks of the Force.com service. Relational database, Distributed File System, Search. High Availability, Backups, and Disaster Recovery. Multitenant Data Management • Platformize the raw data infrastructure to make it work for the cloud. Enable multiple customers to utilize a shared resource pool. Internal Development with Data • Dogfooding. How do internal Salesforce engineers build on top of this multitenant data platform?