Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SalesforceArchitectGroupOsaka#14_platform-multi...
Search
atomica7sei
May 29, 2023
Technology
0
110
SalesforceArchitectGroupOsaka#14_platform-multitenant-architecture
atomica7sei
May 29, 2023
Tweet
Share
More Decks by atomica7sei
See All by atomica7sei
SalesforceArchitectGroupOsaka#20_CNX'25_Report
atomica7sei
0
100
SalesforceArchitectGroupOsaka#17_Well-Architected_Reliable
atomica7sei
0
340
SalesforceArchitectGroupOsaka#16_Well-Architected_ALM
atomica7sei
0
350
Salesforce World Tour Tokyo 2023秋 振り返り会 for Arch
atomica7sei
0
160
SalesforceArchitectGroup#15_Integration
atomica7sei
0
370
SalesforceArchitectGroupOsaka#13_Sharing_and_Visibility
atomica7sei
0
710
SalesforceArchitectGroupDF22GG
atomica7sei
0
210
SalesforceArchitectGroup#11_Development Lifecycle and Deployment
atomica7sei
0
690
SalesforceArchitecsMeetupOsaka#08Quiz
atomica7sei
0
200
Other Decks in Technology
See All in Technology
成立するElixirの再束縛(再代入)可という選択
kubell_hr
0
970
本当に使える?AutoUpgrade の新機能を実践検証してみた
oracle4engineer
PRO
1
130
Amazon S3標準/ S3 Tables/S3 Express One Zoneを使ったログ分析
shigeruoda
3
410
実践! AIエージェント導入記
1mono2prod
0
150
OAuth/OpenID Connectで実現するMCPのセキュアなアクセス管理
kuralab
5
910
PHPでWebブラウザのレンダリングエンジンを実装する
dip_tech
PRO
0
180
Witchcraft for Memory
pocke
1
150
Snowflake Summit 2025 データエンジニアリング関連新機能紹介 / Snowflake Summit 2025 What's New about Data Engineering
tiltmax3
0
270
TechLION vol.41~MySQLユーザ会のほうから来ました / techlion41_mysql
sakaik
0
160
菸酒生在 LINE Taiwan 的後端雙刀流
line_developers_tw
PRO
0
1.1k
監視のこれまでとこれから/sakura monitoring seminar 2025
fujiwara3
10
3.2k
Абьюзим random_bytes(). Фёдор Кулаков, разработчик Lamoda Tech
lamodatech
0
300
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
41
7.3k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Code Review Best Practice
trishagee
68
18k
The Cult of Friendly URLs
andyhume
79
6.4k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
53k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
124
52k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Navigating Team Friction
lara
187
15k
The World Runs on Bad Software
bkeepers
PRO
69
11k
Building an army of robots
kneath
306
45k
Stop Working from a Prison Cell
hatefulcrawdad
270
20k
Transcript
内部プラットフォーム処理
要約 2 • Salesforceプラットフォームの独自の処理アーキテクチャについて述べられている • クエリ ◦ コストベースのクエリオプティマイザーで、マルチテナント仕様および独自テーブル 仕様(MT_DATA等)により、様々な統計情報を駆使 ◦
内部セキュリティ関連テーブル(グループやメンバー、カスタム共有)等も考慮して いる • 検索 ◦ 最適なキャッシュ機構やインデックスでパフォーマンスを上げている • 一括操作 ◦ 一括処理エンジンが効率的なアプローチを取っている [出典]
要約 3 • スキーマの変更 ◦ メタデータ設計が活きている ◦ 全体的なパフォーマンスへの影響を軽減する仕組みがある(積み上げ集計項目を 設定→バックグラウンド処理で反映される) •
マルチテナントの分離と保護 ◦ ガバナ制限による保護 ◦ テストカバレッジを設けることで潜在的なシステム問題を回避する ◦ デプロイのプロセスもメタデータ設計による恩恵を受けている(エラー時のロール バックが容易) ◦ パフォーマンスの分析を行ってフィードバック • 削除、削除取消、ごみ箱 ◦ 15日間は復元可能 ◦ 子レコードも復元、参照関係も復元 [出典]
クエリ 4 [出典] APIやストアドプロシー ジャなどから呼び出され る。 事前クエリを実行。 統計情報を活用。 最適なクエリを構築。 結果を返す。
事前クエリを実行し、その結果に基づき、クエリオプティマイザ-でマルチテナント環境を 想定した最適なデータベースクエリを作成して実行する
クエリ 5 [出典] 事前クエリにおける実行基準 作成されるデータベースアクセスクエリの内容 ユーザのアクセス 権限レベル 絞り込み条件水準 低 低
ネストされたループ結合 ユーザが参照権限を持つ行のビューを使用 低 高 フィルタに関連付けられたインデックスを使用 高 低 順序を指定したハッシュ結合 MT_DATAテーブルを使用 高 高 フィルタに関連付けられたインデックスを使用 事前クエリで現在のユーザのアクセス権限とクエリの絞り込み条件の水準を評価し、その 結果に基づき、データアクセスを要求するデータベースクエリを作成
感想 6 • マーティン・ファウラー氏(アジャイルソフトウェア開発宣言やUML等で知られるソフト ウェア開発者)曰く、アーキテクチャとは「変更するのが難しいもの」 • 初期の段階で行った微妙な選択が今も影響している • Salesforceを利用する顧客はそのアーキテクチャを実際に知る必要はない(車を運 転する人が、車がどうして動いているのか知る必要がないのと同じ)
• ただ、背後にはこうしたアーキテクチャが歴然として存在し、24時間365日、問題の 解決に日々を費やしている素晴らしいSaleforceのエンジニアのチームがいるという こと • あらためてアーキテクチャの重要性に気づく内容だった [出典] https://engineering.salesforce.com/the-architecture-files-f1dfa7a97e77/