The document provides an overview of the key components of the Force.com data infrastructure including pods, the relational database, distributed file system, and search capabilities. It describes how the infrastructure is designed for multitenancy and high availability. Key aspects covered are data partitioning across pods, database sharding, redundancy of storage and backups, and real-time indexing for search.
Qlik Senseのビジュアライゼーション拡張機能について概要から詳細な実装方法まで解説いたします。Extension(エクステンション)と呼ばれる機能は、標準的なWeb技術を利用してQlik Senseの可視化機能を拡張することを可能にします。Extensionを用いれば、開発者はQlik Sense APIのパワーとWeb技術を組み合わせることができるプラグインを開発可能です。
Qlik Senseのビジュアライゼーション拡張機能について概要から詳細な実装方法まで解説いたします。Extension(エクステンション)と呼ばれる機能は、標準的なWeb技術を利用してQlik Senseの可視化機能を拡張することを可能にします。Extensionを用いれば、開発者はQlik Sense APIのパワーとWeb技術を組み合わせることができるプラグインを開発可能です。
As businesses grow, so does the complexity of their software. New features, new models, and new background processes all continue to be added. . .and developers struggle to make sense of it all. Yet the end user demands a swift and functional experience when interacting with your application. It is paramount to be open to alternative patterns that help tame complex, high-demand services. Two such patterns are command-query responsibility segregation (CQRS) and event sourcing (ES).
Command-query responsibility segregation is an architectural pattern for user-facing applications that extends from the now standard Model-View-Controller (MVC) pattern and is an alternative to the CRUD pattern. At its core, CQRS is about changing how we think of and work with our data by introducing two types of models: all user actions become commands, and a read-only query model powers our views. Commands and queries are logistically separated, providing additional decoupling of our application. CQRS also calls for changes in how we store and structure our data.
Enter event sourcing. Instead of persisting the current state of our domain objects or entities, we record historical events about our data. The key advantage is that we can examine our application data at any point in time, rather than just the current state. This pattern changes how we persist and process our data but is surprisingly efficient.
While each of the two patterns can be used exclusively, they complement each other beautifully and facilitate the construction of decoupled, scalable applications or individual services. Stephen Pember explores the fundamentals of each pattern and offers several examples and demonstration code to show how one might actually go about implementing CQRS and ES. Steve discusses task-based UIs and domain-driven design as he outlines some of the advantages—and challenges—that ThirdChannel has seen when developing systems using CQRS and ES over the past year.
Structured concurrency with Kotlin Coroutines
1. Theory
- Coroutines
- Suspending functions
- Asynchronous Flows
- Channels
2. Practice
- Business lookup feature implementation in TransferWise app for Android
Overview of EJB technology.
Enterprise Java Beans (EJB) is a server-side component technology for Java EE based systems (JEE).
Beans are business logic components that implement a standard interface through which the bean is hooked into the bean container (= runtime object for bean).
A Java class implementing one of the standard bean interfaces is an Enterprise Java Bean. Beans can be accessed remotely, usually from a client tier.
The EJB standard was developed to provide a common framework for solving recurring problems in business application development like persistence, transactions,
security and runtime and lifecycle management. The EJB standard evolved greatly over time. EJB version 1 and 2 were complex and required to implement many interfaces
and exception handling in EJBs. EJB version 3 brought great simplifications and did away with interfaces by replacing these with annotations which provide greater flexibility while keeping complexity low. EJBs come in 3 different flavors: Stateless and stateful session beans and message driven beans. Entity beans of EJB version 1 and 2 were replaced by the Java Persistence API in EJB version 3.
This presentation goes through what Inversion of Control is, which IOC patterns that exists, which of the patterns you should use and when you should use them.
A Service-Based Architecture for Multi-domain Search on the WebAlessandro Bozzon
Those slides were presented at the 8th International Conference on Service Computing (ICSOC 2010, San Francisco), and they relates to the research paper "A Service-Based Architecture for Multi-domain Search on the Web" authored by Alessandro Bozzon, Marco Brambilla, Francesco Corcoglioniti, and Salvatore Vadacca
As businesses grow, so does the complexity of their software. New features, new models, and new background processes all continue to be added. . .and developers struggle to make sense of it all. Yet the end user demands a swift and functional experience when interacting with your application. It is paramount to be open to alternative patterns that help tame complex, high-demand services. Two such patterns are command-query responsibility segregation (CQRS) and event sourcing (ES).
Command-query responsibility segregation is an architectural pattern for user-facing applications that extends from the now standard Model-View-Controller (MVC) pattern and is an alternative to the CRUD pattern. At its core, CQRS is about changing how we think of and work with our data by introducing two types of models: all user actions become commands, and a read-only query model powers our views. Commands and queries are logistically separated, providing additional decoupling of our application. CQRS also calls for changes in how we store and structure our data.
Enter event sourcing. Instead of persisting the current state of our domain objects or entities, we record historical events about our data. The key advantage is that we can examine our application data at any point in time, rather than just the current state. This pattern changes how we persist and process our data but is surprisingly efficient.
While each of the two patterns can be used exclusively, they complement each other beautifully and facilitate the construction of decoupled, scalable applications or individual services. Stephen Pember explores the fundamentals of each pattern and offers several examples and demonstration code to show how one might actually go about implementing CQRS and ES. Steve discusses task-based UIs and domain-driven design as he outlines some of the advantages—and challenges—that ThirdChannel has seen when developing systems using CQRS and ES over the past year.
Structured concurrency with Kotlin Coroutines
1. Theory
- Coroutines
- Suspending functions
- Asynchronous Flows
- Channels
2. Practice
- Business lookup feature implementation in TransferWise app for Android
Overview of EJB technology.
Enterprise Java Beans (EJB) is a server-side component technology for Java EE based systems (JEE).
Beans are business logic components that implement a standard interface through which the bean is hooked into the bean container (= runtime object for bean).
A Java class implementing one of the standard bean interfaces is an Enterprise Java Bean. Beans can be accessed remotely, usually from a client tier.
The EJB standard was developed to provide a common framework for solving recurring problems in business application development like persistence, transactions,
security and runtime and lifecycle management. The EJB standard evolved greatly over time. EJB version 1 and 2 were complex and required to implement many interfaces
and exception handling in EJBs. EJB version 3 brought great simplifications and did away with interfaces by replacing these with annotations which provide greater flexibility while keeping complexity low. EJBs come in 3 different flavors: Stateless and stateful session beans and message driven beans. Entity beans of EJB version 1 and 2 were replaced by the Java Persistence API in EJB version 3.
This presentation goes through what Inversion of Control is, which IOC patterns that exists, which of the patterns you should use and when you should use them.
A Service-Based Architecture for Multi-domain Search on the WebAlessandro Bozzon
Those slides were presented at the 8th International Conference on Service Computing (ICSOC 2010, San Francisco), and they relates to the research paper "A Service-Based Architecture for Multi-domain Search on the Web" authored by Alessandro Bozzon, Marco Brambilla, Francesco Corcoglioniti, and Salvatore Vadacca
Virtualizing Latency Sensitive Workloads and vFabric GemFireCarter Shanklin
This presentation was made by Emad Benjamin of VMware Technical Marketing. Normally I wouldn't upload someone else's preso but I really insisted this get posted and he asked me to help him out.
This deck covers tips and best practices for virtualizing latency sensitive apps on vSphere in general, and takes a deep dive into virtualizing vFabric GemFire, which is a high-performance distributed and memory-optimized key/value store.
Best practices include how to configure the virtual machines and how to tune them appropriately to the hardware the application runs on.
Oracles new Application Management Suite which includes the following products : Management Packs Siebel/eBusiness/JDEdwards/Peoplesoft - Configuration Mgmt for Applications & Real User Experience Insight ( Oracles End User Monitoring Tool )
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSalesforce Developers
Exploring the code within sample applications is a great way to learn new languages, frameworks, and platforms. That’s why we built the Sample Gallery (https://trailhead.salesforce.com/sample-gallery), a collection of Salesforce Customer 360 Platform reference applications that demonstrate examples of what you can create and how to build it. In this interactive webinar, we introduce you to a few Sample Apps and show you how to make the best use of them in your day-to-day development projects.
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceSalesforce Developers
We all want the Salesforce Lightning Experience to be fast- but how do we define fast, and how do we make it even faster? When you’re building a UI, everything you add to the page affects performance, and to make load times faster and perform the way users expect, we need to treat speed as an essential design feature. In this presentation, you’ll learn how to measure performance, learn a few tips on how to maximize performance, and take responsibility for your feature’s performance from design to production.
Last year was eventful for Salesforce Developers - we started with the launch of Lightning Web Components (LWC), open-sourced it, enabled local development, and ended the year by open-sourcing Base Lightning Components. In this webinar, we will explore exciting new developments within Base Components and we will show you how to use open-source Base Components to build engaging applications faster with local development.
In this session we will,
- Spin up a local development environment to build Lightning web components
- Use and customize the base components and recipes to build pages and apps quickly
- Explore the latest features of VS Code developer tooling while coding for a use case
Over the past two months, we’ve announced many new resources for developers at Dreamforce and TrailheaDX India. To learn all about them, watch this video, where we'll explore live demos showcasing the latest updates for Lightning Web Components (LWC), Einstein, Heroku, and a lot more on the Customer 360 Platform.
In this session we,
- Explore key highlights from TrailheaDX India
- Show live demos of generally available features
- Explain how you can benefit from these features
TrailheaDX (TDX) is coming to ‘namma’ Bengaluru in India on Dec 19th and 20th! TrailheaDX India is the conference for everyone who builds on and customises Salesforce — including admins, developers, architects, and partners. This event will have sessions, demos and fun for those just getting started with the platform, as well as for advanced admins, architects and developers.
You might have questions about the event - and to answer your questions Kavindra Patel, known as the father of the Indian Salesforce Community, joins Shashank Srivatsavaya, Head of APAC Developer Relations. Register for our exclusive webinar to:
- Get a sneak peek into exclusive sessions and activities
- Find out who you shouldn’t miss at TrailheaDX India
- Understand what comes with your #TDX19 registration
CodeLive: Build Lightning Web Components faster with Local DevelopmentSalesforce Developers
GitHub repo: https://github.com/satyasekharcvb/lwc-local-dev.git
With the release of a new beta version of Local Development, you can now build Lightning web components faster than ever before! You can now render changes, iterate rapidly, troubleshoot errors, and even connect with data from your org by spinning up a local development server on your machine.
In this session, we build Lightning web components in real time. The exciting new capabilities we showcase will enable you to be an even more productive developer.
In this CodeLive session we:
- Spin up a local development server from the CLI to rapidly edit and view components
- Observe how a rich error handling experience simplifies testing and debugging
- Learn how to proxy data from an org for more context and fine-tuned development
CodeLive: Converting Aura Components to Lightning Web ComponentsSalesforce Developers
GitHub repo: https://github.com/adityanaag3/aura2lwc
Lightning Web Components (LWC) give any JavaScript developer a modern, web standards-based path to building apps and experiences on the Salesforce Platform.
In this live coding session, you’ll learn how to first evaluate if an existing Aura Component needs to be converted, then convert it to LWC using the latest features of Salesforce Extensions for VS Code. We demonstrate conversion to LWC by walking through various components of a real world Aura Component - including input and output, Tables, Forms, and more.
In this live coding session we:
- Convert Aura Components to LWC
- Leverage the latest IDE features
- Share implementation best practices
Earlier this year, we released Lightning Web Components (LWC), a new UI framework based on web standards and optimized for performance and developer productivity. We have now open sourced the Lightning Web Components framework so that anyone can build applications on any platform.
Join our webinar where we'll explore how this framework, based on standard HTML, modern JavaScript (ES6+), and the best of native Web Components, helps you create web components and apps using the stack and tools you prefer.
We recently announced over 300 new features and enhancements at TrailheaDX '19 and for the Summer '19 release. In our Developer Highlights webinar we explore the top features with in-depth demos, including the latest updates for Lightning Web Components (LWC), LWC Open Source, CLI updates, Change Data Capture for external objects, Asynchronous Apex Triggers, Notification Builder and more.
Watch the recording here: https://youtu.be/kmOkk74QiCo
You can watch a recording of the live coding session at https://sforce.co/2IbU3yJ
In the fifth and final webinar of our five part series, we learn how to build Lightning web components for different use cases. We explore how to leverage all of the concepts you’ve learned in this webinar series to create modern apps with Lightning Web Components. We also demonstrate various ways to migrate Aura components to Lightning web components for a seamless transition.
In the fourth episode of our five part series on Lightning Web Components, we show you how static resources and custom JavaScript are used with Lightning Web Components. You’ll learn how to use external APIs in conjunction with Lightning Locker to secure your JavaScript code. And finally, we’ll demonstrate how you can test your Lightning Web Components using Jest.
LWC Episode 3- Component Communication and Aura InteroperabilitySalesforce Developers
Lightning Web Components gives JavaScript developers a web standards-based path to building apps on the Salesforce Lightning Platform.
In the third episode of our five part series on Lightning Web Components, we cover design considerations and compositions of Lightning Web Components.
Lightning Web Components give any JavaScript developer a modern, web standards-based path to building apps and experiences on the Lightning Platform.
In the second episode of our five part webinar series on Lightning Web Components, we will show you how to access data from the Salesforce org, get record data, create records and handle errors using Lightning Web Components. In this webinar you’ll learn all about Lightning Data Service, reactive wire service and Lightning App Builder.
Lightning Web Components are a JavaScript programming model for building web applications and interfaces that is built on the best of web standards.
Any front-end web developer can get started with LWC and leverage custom elements, and JavaScript APIs to create modern apps and experiences that are fully aware of Salesforce data and processes.
Migrate legacy Salesforce CPQ to Advanced Calculator with the help of JSQCP. With Advanced Calculator, you can boost the runtime of quote creation. Join this webinar to learn what is required for migration - we’ll also walk through JSQCP.
Replicate Salesforce Data in Real Time with Change Data CaptureSalesforce Developers
Migrate your batch processing, scheduled ETL, and nightly workloads to event-driven, real-time integrations using Change Data Capture. CDC means data change events are published to an event stream, allowing businesses to have up-to-date information across systems and applications. Join us to learn how to configure Change Data Capture and subscribe to the stream of change events, streamlining your architectures and processes.
Using Salesforce DX and its suite of offerings can significantly increase your development productivity.
Join this webinar to learn more about source control, scratch orgs, CLI, Metadata Coverage, VS Code, and Unlocked Packages. We will even do a live demo on continuous delivery using Salesforce DX.
Lightning Flow makes it easier for developers to build dynamic process-driven apps with Process Builder and the new Flow Builder. Join us and learn more about how you can get in the Flow!
Integrate CMS Content Into Lightning Communities with CMS ConnectSalesforce Developers
In this webinar we will show you how to display content from external Content Management Systems into Lightning Communities. This lets you take advantage of the Communities framework and help you centralize content in whatever CMS system you have chosen.
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?
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
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
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?