Upgrade to Pro — share decks privately, control downloads, hide ads and more …

sfdcNihonKajinStudyEvent-2-Multi-tenant architecture

sfdcNihonKajinStudyEvent-2-Multi-tenant architecture

Salesforce multi-tenant architecture
•Basic concept
• How to build
• Problem, solution
• Reference materials list
• Next time information

SfdcNihonKajinStudy

March 16, 2019
Tweet

More Decks by SfdcNihonKajinStudy

Other Decks in Technology

Transcript

  1. LV 方法 メリット デメリット 1 全利用者が同一デー タベース、同一ス キーマを共有 1つのインフラを共有する 運用が共通化できる

    効率が良い アプリケーションの実装は複雑です (セキュリティ、カスタマイズ) 2 全利用者が同一デー タベースを共有。ス キーマは個別 利用者からの個別のリクエスト に柔軟に対応しやすくなる スキーマ管理や運用管理は個別に行う ことになり、運用に手間がかかる 3 利用者ごとに個別の データベース、個別 のスキーマ 利用者からの個別のリクエスト に柔軟に対応しやすくなる データベースの種類が増えて管理が面 倒になり、運用の手間がかかる。共有 部分も減り、インフラの利用効率も悪い マルチテナントアーキテクチャ:構築種別 SalesforceはLV1を採用しています
  2. 拡張性、実用性の解決方法 • 組織ID、パーティション機能(分割)、パラレル機能(並列) • 分割:1つのDBを複数に分割する • 並列:複数のプロセスで分散処理する • すべてのデータに「組織ID」をつける •

    組織IDごとにデータベースをパーティショニング機能で分割します。 • パーティションに分割したデータベースごとにDBMSのプロセス(インスタンス)を割り当てることで、巨大なデータ ベースを複数のプロセスで分散処理させることができます
  3. 備考:データ • MT_Data : ⇒ 一意な識別子 (GUID)、組織の ID (OrgID)、オブジェクトの ID

    (ObjID) などが格納されます。 ⇒ 可変列が汎用データ型 (可変⾧ string 型) です ⇒ 文字、数字、日付などデータ型を持つデータを 1 つの列に格納することができます。 • MT_Clobs: ⇒ CLOB (Character Large OBjects)項目を格納する。 • 必要に応じて MT_Data と MT_Clobs のデータを結合する処理を行います。
  4. 備考:インデックス • Force.com の場合、MT_Data の可変列に対してインデックスを作成するのはできません。 インデックス化を行う項目のデータを MT_Indexes というピボットテーブルの適切な列に同期的にコピーすること で、MT_Data のインデックスを管理しています。

    • MT_Indexes :一意でない値を格納する。 • MT_Unique_Indexes :一意の値のみを格納する • MT_Fallback_Indexes:複数のテーブルにまたがるグローバルなオブジェクト検索する • MT_Relationships:リレーションの結合処理を最適化する • MT_Name_Denorm :MT_Data の各レコードの ObjID 項目と Name 項目を格納する :(親子関係のリレーションが設定されているレコードの一覧を提供する必要がある場合)