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
120
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
390
SalesforceArchitectGroupOsaka#17_Well-Architected_Reliable
atomica7sei
0
370
SalesforceArchitectGroupOsaka#16_Well-Architected_ALM
atomica7sei
0
370
Salesforce World Tour Tokyo 2023秋 振り返り会 for Arch
atomica7sei
0
180
SalesforceArchitectGroup#15_Integration
atomica7sei
0
510
SalesforceArchitectGroupOsaka#13_Sharing_and_Visibility
atomica7sei
0
720
SalesforceArchitectGroupDF22GG
atomica7sei
0
220
SalesforceArchitectGroup#11_Development Lifecycle and Deployment
atomica7sei
0
760
SalesforceArchitecsMeetupOsaka#08Quiz
atomica7sei
0
200
Other Decks in Technology
See All in Technology
.NET 10のBlazorの期待の新機能
htkym
0
170
AIがコードを書いてくれるなら、新米エンジニアは何をする? / komekaigi2025
nkzn
23
15k
マルチエージェントのチームビルディング_2025-10-25
shinoyamada
0
230
OTEPsで知るOpenTelemetryの未来 / Observability Conference Tokyo 2025
arthur1
0
360
AI機能プロジェクト炎上の 3つのしくじりと学び
nakawai
0
180
Kotlinで型安全にバイテンポラルデータを扱いたい! ReladomoラッパーをAIと実装してみた話
itohiro73
3
130
入院医療費算定業務をAIで支援する:包括医療費支払い制度とDPCコーディング (公開版)
hagino3000
0
130
AWSが好きすぎて、41歳でエンジニアになり、AAIを経由してAWSパートナー企業に入った話
yama3133
2
220
【SORACOM UG Explorer 2025】さらなる10年へ ~ SORACOM MVC 発表
soracom
PRO
0
190
AIでデータ活用を加速させる取り組み / Leveraging AI to accelerate data utilization
okiyuki99
6
1.6k
ソースを読む時の思考プロセスの例-MkDocs
sat
PRO
1
350
パフォーマンスチューニングのために普段からできること/Performance Tuning: Daily Practices
fujiwara3
2
180
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
49
14k
Mobile First: as difficult as doing things right
swwweet
225
10k
Facilitating Awesome Meetings
lara
57
6.6k
How to Ace a Technical Interview
jacobian
280
24k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Documentation Writing (for coders)
carmenintech
76
5.1k
Faster Mobile Websites
deanohume
310
31k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
22k
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/