MultiTenant Magic Under the Covers of the Force

  • Slides: 35
Download presentation
Multi-Tenant Magic: Under the Covers of the Force. com data Architecture Craig Weissman Chief

Multi-Tenant Magic: Under the Covers of the Force. com data Architecture Craig Weissman Chief Software Architect salesforce. com

Safe Harbor Statement “Safe harbor” statement under the Private Securities Litigation Reform Act of

Safe Harbor Statement “Safe harbor” statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forwardlooking statements including but not limited to statements concerning the potential market for our existing service offerings and future offerings. All of our forward looking statements involve risks, uncertainties and assumptions. If any such risks or uncertainties materialize or if any of the assumptions proves incorrect, our results could differ materially from the results expressed or implied by the forward-looking statements we make. The risks and uncertainties referred to above include - but are not limited to - risks associated with possible fluctuations in our operating results and cash flows, rate of growth and anticipated revenue run rate, errors, interruptions or delays in our service or our Web hosting, our new business model, our history of operating losses, the possibility that we will not remain profitable, breach of our security measures, the emerging market in which we operate, our relatively limited operating history, our ability to hire, retain and motivate our employees and manage our growth, competition, our ability to continue to release and gain customer acceptance of new and improved versions of our service, customer and partner acceptance of the App. Exchange, successful customer deployment and utilization of our services, unanticipated changes in our effective tax rate, fluctuations in the number of shares outstanding, the price of such shares, foreign currency exchange rates and interest rates. Further information on these and other factors that could affect our financial results is included in the reports on Forms 10 K, 10 -Q and 8 -K and in other filings we make with the Securities and Exchange Commission from time to time. These documents are available on the SEC Filings section of the Investor Information section of our website at www. salesforce. com/investor. Salesforce. com, inc. assumes no obligation and does not intend to update these forwardlooking statements, except as required by law.

True Multi-Tenancy is our Religion Technology Advances Time Major Architectural Shift Agenda Business Model

True Multi-Tenancy is our Religion Technology Advances Time Major Architectural Shift Agenda Business Model Changes § Our Religion § Virtual Database § App Model

Single tenant applications: lots of waste App Db App Db

Single tenant applications: lots of waste App Db App Db

Multi-tenancy benefits are self-evident But isolation is much easier said than done… App Db

Multi-tenancy benefits are self-evident But isolation is much easier said than done… App Db

Our religion: Not all “multi-tenant” designs are created equal “Can’t we create a App

Our religion: Not all “multi-tenant” designs are created equal “Can’t we create a App separate stack for just this App Db Db one customer? I promise it’s just this one…”

Introducing the Force. com metadata-driven, multi-tenant, Internet application platform Poly. Morphic Application

Introducing the Force. com metadata-driven, multi-tenant, Internet application platform Poly. Morphic Application

Key Architectural Principles § Stateless App. Servers § Database system of record § No

Key Architectural Principles § Stateless App. Servers § Database system of record § No DDL § All tables partitioned by Org. Id § Smart PKs, Polymorphic FKs § Creative de-normalization and pivoting § Use every RDBMS feature/trick

Metadata, and pivot table structures store data corresponding to virtual data structures

Metadata, and pivot table structures store data corresponding to virtual data structures

The Objects table stores metadata about custom objects (tables)

The Objects table stores metadata about custom objects (tables)

The Fields table stores metadata about custom fields (columns)

The Fields table stores metadata about custom fields (columns)

The Data heap table stores all structured data corresponding to custom objects

The Data heap table stores all structured data corresponding to custom objects

A single slot can store various types of data that originate from different objects

A single slot can store various types of data that originate from different objects

The Indexes pivot table manages tenantspecific selective indexes

The Indexes pivot table manages tenantspecific selective indexes

The Unique. Fields pivot table facilitates uniqueness for custom fields

The Unique. Fields pivot table facilitates uniqueness for custom fields

The Relationships pivot table facilitates referential integrity and optimizes joins

The Relationships pivot table facilitates referential integrity and optimizes joins

All data & metadata structures are partitioned to improve performance and manageability § Tables

All data & metadata structures are partitioned to improve performance and manageability § Tables hash partitioned by Org. Id § Separate conn pools point to physical hosts § App tier is also dynamically partitioned by Org. Id § Distributed metadata cache w/transactional invalidation

Application Framework: a whole lot for free § Native Declarative features § Bulk Processing

Application Framework: a whole lot for free § Native Declarative features § Bulk Processing § The Recycle Bin § Full Text Search § Smart Bulk DML § Web Services APIs

Force. com’s native Application Framework provides declarative development, no coding

Force. com’s native Application Framework provides declarative development, no coding

Validation rules and simple formulas: Business analysts can “code” these

Validation rules and simple formulas: Business analysts can “code” these

Not so simple: Rollup-summary fields provide for easy cross-object summaries

Not so simple: Rollup-summary fields provide for easy cross-object summaries

Force. com’s bulk processing optimizations reduce overhead for data loads

Force. com’s bulk processing optimizations reduce overhead for data loads

Data definition processing is optimized to avoid performance hits or concurrency limits Examples: §

Data definition processing is optimized to avoid performance hits or concurrency limits Examples: § Sort all records by primary key before attempting DML § Operate on tables in deterministic order § Slot reallocation for field datatype change § Deferred calculation for new rollup-summary field § Background processing of mass changes

The Recycle Bin: Smart Undeletes Restore § Individual object instances (records) § Related object

The Recycle Bin: Smart Undeletes Restore § Individual object instances (records) § Related object instances (parent/child records) § Entire fields and objects (dropped columns and tables)

Force. com’s full-text search engine § Asynchronously maintains indexes for all text fields §

Force. com’s full-text search engine § Asynchronously maintains indexes for all text fields § MRU caches contain recently updated objects § Optimizes ranking of search result records based on current user, modification history, and weighting preferences

Multi-tenant Query Optimization Principles § Consistent SQL generation across the application § Deep awareness

Multi-tenant Query Optimization Principles § Consistent SQL generation across the application § Deep awareness of pivot table structure – Flex schema does impose a cost § Tenant, user, object, fields statistics are crucial § No runaway queries allowed § Deep integration with the sharing model

Force. com’s query optimizer writes optimal queries for internal data access operations Multi-tenant optimizer

Force. com’s query optimizer writes optimal queries for internal data access operations Multi-tenant optimizer statistics

The optimizer considers pre-query selectivity measurements when writing a query Pre-Query Selectivity Measurements Write

The optimizer considers pre-query selectivity measurements when writing a query Pre-Query Selectivity Measurements Write final database access query, forcing … User Filter Low … nested loops join; drive using view of rows that the user can see. Low High … use of index related to filter. High Low … ordered hash join; drive using Data table. High … use of index related to filter.

Apex: Force. com’s procedural frontier

Apex: Force. com’s procedural frontier

Apex code is stored as metadata, interpreted at runtime, and cached for scalability

Apex code is stored as metadata, interpreted at runtime, and cached for scalability

Apex is deeply integrated with platform features § Bulk DML § Email and messaging

Apex is deeply integrated with platform features § Bulk DML § Email and messaging § Asynchronous processing (Futures) § Xml. Stream / HTTP (RESTful) services classes § Declarative exposure as new Web Services

Force. com governs Apex code execution Limits on: § CPU § Memory § #

Force. com governs Apex code execution Limits on: § CPU § Memory § # of DML statements § # calculations § # web service calls § … and more

Unit tests must accompany Apex code § Required 75% code coverage § Profiling is

Unit tests must accompany Apex code § Required 75% code coverage § Profiling is built into the platform § Run during application install § All tests are run before each platform release by us

Force. com is a proven multi-tenant application platform that performs and scales Quarterly Transactions

Force. com is a proven multi-tenant application platform that performs and scales Quarterly Transactions (billions) Page Response Time (ms) 2005 2006 Fiscal Year 2007

Concluding Remarks § Paa. S is a major architectural shifts § Paa. S is

Concluding Remarks § Paa. S is a major architectural shifts § Paa. S is Application focused, high level of abstraction § Force. com is the most mature, proven Paa. S offering available today § Optimized for fast, secure, and reliable multi-tenant application development and deployment