JP7390356B2 - クローニング後のテナント識別子変換のためのレコードの識別 - Google Patents

クローニング後のテナント識別子変換のためのレコードの識別 Download PDF

Info

Publication number
JP7390356B2
JP7390356B2 JP2021505390A JP2021505390A JP7390356B2 JP 7390356 B2 JP7390356 B2 JP 7390356B2 JP 2021505390 A JP2021505390 A JP 2021505390A JP 2021505390 A JP2021505390 A JP 2021505390A JP 7390356 B2 JP7390356 B2 JP 7390356B2
Authority
JP
Japan
Prior art keywords
records
database
tenant identifier
tenant
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021505390A
Other languages
English (en)
Other versions
JP2022501693A (ja
Inventor
ファンハエネル,トーマス
ゲニックス,ステファン
Original Assignee
セールスフォース インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by セールスフォース インコーポレイテッド filed Critical セールスフォース インコーポレイテッド
Publication of JP2022501693A publication Critical patent/JP2022501693A/ja
Application granted granted Critical
Publication of JP7390356B2 publication Critical patent/JP7390356B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/221Column-oriented storage; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

マルチテナントデータベースのレコードは、レコードを所有するテナントを示すテナント識別子を含み得る。
状況によっては、テナントに属するレコードは、そこに含まれるテナント識別子を新たなテナント識別子で置き換える必要があり得る。変換されるべきレコードを識別することは、計算量が集中し得る。
開示された主題のさらなる理解を提供するために含まれる添付の図面は、本明細書に組み込まれ、本明細書の一部を構成する。図面はまた、開示された主題の実施形態を説明し、詳細な説明と共に、開示された主題の実施形態の原理を説明するのに役立つ。開示された主題の基本的理解及びそれが実施され得る種々の方法のために必要である以上に詳細な構造的詳細を示す意図は無い。
図1は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するための例示的システムを示す図である。 図2Aは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するための例示的なアレンジメントを示す図である。 図2Bは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するための例示的なアレンジメントを示す図である。 図3は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するための例示的なアレンジメントを示す図である。 図4は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するための例示的なアレンジメントを示す図である。 図5Aは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するための例示的なアレンジメントを示す図である。 図5Bは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するのに適した例示的なアレンジメントを示す図である。 図6は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的なアレンジメントを示す図である。 図7は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的な手順を示す図である。 図8は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的なアレンジメントを示す図である。 図9は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的なアレンジメントを示す図である。 図10は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的なアレンジメントを示す図である。 図11Aは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的なアレンジメントを示す図である。 図11Bは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的なアレンジメントを示す図である。 図11Cは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的なアレンジメントを示す図である。 図12は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的な手順を示す図である。 図13は、開示された主題の実施形態にしたがった、コンピュータを示す図である。 図14は、開示された主題の実施形態にしたがった、ネットワークコンフィギュレーションを示す図である。
本明細書に開示される技術は、クローニング後のテナント識別子変換(post-cloning tenant identifier translation)のためにレコードを識別することを可能にし、クローニング後のテナント識別子変換のためにより効率的にレコードを識別すること及びより効率的なクローニング後のテナント識別子変換を可能にし得る。レコードの列の中のレコードに対する(for the record)テナント識別子の値のコピーを含むレコードは、そのレコードヘッダに設定されたレコードタイプビットを有し得る。テーブル内のレコードに対するレコードヘッダ内のビットの値は、テーブルに追加された列内でさらされ(exposed)得る。レコードヘッダ内のレコードタイプビットが1又は真に設定されているレコードを含み得る部分インデックスが生成され得る。部分インデックスは、クローニング後のテナント識別子変換のために、レコードを識別し、レコードにアクセスするために使用され得る。
テナント識別子は、データベースシステムに格納されたレコードの所有者を識別するために使用され得る。テナントに割り当てられたテナント識別子の値は、データベースシステムに格納され得るテナントに属するすべてのレコードのキーの一部として使用することができる。テナント識別子の値は、例えば英数字列として、表され得る。
データベースシステムがマルチテナントデータベースシステムである場合、固有のテナント識別子がテナントの各々に割り当てられ得る。マルチテナンシーは、例えば、ユーザ、ユーザのグループ、又は組織であり得る種々のテナントが、種々のテナント間で共有され得るデータベースシステム上のソフトウェアツール又はインスタンスを介して、データベースシステム内のそれら自身のレコードにアクセスすることを可能にし得る。各テナントのレコードは、そのテナントのデータベースの一部となり得る。データベースは、例えば、関係型データベース、階層型データベース、又は任意の他の適切なデータベースタイプであり得る。データベースシステムに格納される全てのレコードは、例えば、ログ構造化マージ(LSM)ツリーを含む、任意の適切な構造に格納され得る。
データベースシステムに格納されたレコードは、キーを含み得る。キーは、レコードに対する識別子、例えば、一次キーであり得、例えば、英数字シーケンスなどの、任意の適切な形式であり得る。キーの一部は、レコードに関する情報を提供し得る。例えば、キーの一部は、レコードが属するテナントのテナント識別子の値である。キーの他の部分は、例えば、レコードの値が行の内容である場合、例えば、テーブル番号及び行のID(identification)を識別し得る。
レコードは値を含み得る。レコードの値は、例えば、列ごとに1つの値を持つタプルとして格納された、関係型データベースのテーブルの行内の列の内容であり得る。タプルとして格納される値は、例えば、バイナリ符号化を使用して符号化され得る。一部のレコードは、タプル内で符号化されたレコードを所有するテナントに対するテナント識別子の値を、テナント識別子のエンコードされた値として格納し得る。テナント識別子の符号化された値は、例えば、レコードのテナント識別子列に格納され得る。テナント識別子の符号化された値はまた、テナント識別子列ではない可能性があるレコードの他の列に格納され得る。
状況によっては、レコードのテナント識別子を変換する必要があり得る。テナント識別子変換は、レコード中のテナント識別子の値を新たな値に、すなわち新たなテナント識別子に置き換え得る。例えばサンドボックス化のために、例えば、テナントレコードセット(tenant’s record set)内のレコードがコピーされて、テナントレコードセットの全部又は一部のクローン(clone)を作成する場合、テナント識別子変換は、コピーされたレコードに新たなテナント識別子を割り当てるために使用され得る。このようにして、クローニングされた(cloned)テナントレコードセット内のレコードとは無関係に、サンドボックスデータベース内のレコードをテナントが使用できるようになり得る。
より効率的なテナント識別子変換を可能にするために、データベースシステムに格納されたレコードは変更され得る。レコードヘッダにレコードタイプインジケータを設定し得る。レコードタイプインジケータは、レコードがテナント識別子列以外の列にテナント識別子の符号化された値を格納することを示すために、1又は真に設定されるビットであり得る。
テナント識別子列以外の列内にテナント識別子の符号化された値を格納しているとして、レコードヘッダ内のレコードタイプインジケータによって識別されるレコードについては、テナント識別子変換を適用するかどうかをデータベースアプリケーションが決定し得る。データベースアプリケーションは、データベースシステムとインタラクトするために使用されるアプリケーションであり得る。例えば、データベースアプリケーションを実行するコンピューティングデバイスは、テナントによってデータベースシステム内のそのデータベースにアクセスするために使用され得る。
データベースアプリケーションによるクローニング後のテナント識別子変換のための、レコードのより効率的な識別を可能にするために、列がレコードに追加され得、レコードヘッダ内のレコードタイプインジケータの値をさらし得、レコードヘッダは、設定される場合に、テナント識別子列以外のレコードの列内におけるテナント識別子の符号化された値の存在を示す。列は、レコードタイプインジケータ列であり得る。テナント識別子列以外の列に格納されたテナント識別子の符号化値を持つレコードは、そのレコードタイプインジケータビットが1又は真に設定され得、その結果、そのレコードタイプインジケータ列は1又は真の値になり得る。テナント識別子列以外の列に格納されたテナント識別子の符号化値を持たないレコードは、そのレコードタイプインジケータビットが0又は偽に設定され得、その結果、レコードタイプインジケータ列の値は0又は偽になり得る。
データベースアプリケーション又はデータベースシステムの別の適切な構成要素、データベースアプリケーションを実行するコンピューティングデバイス、又は、別のコンピューティングデバイスは、データベースシステムの持続的ストレージ又は作業メモリに格納されたレコードのレコードタイプインジケータ列内の値に基づいて、部分インデックスを作成し得る。部分インデックスは、レコードタイプインジケータ列が1又は真の値を有するレコードにのみインデックスを付け得る。部分インデックスは、部分インデックスによってインデックス付けされたレコードにアクセスするためにデータベースアプリケーションによって使用され得る。次いで、データベースアプリケーションは、これらのレコード上でテナント識別子変換を選択的に行い得る。テナント識別子変換は、アップデートコマンドによって実行され得、これは、テナント識別子の符号化された値を格納する列に格納されたテナント識別子の元の値の符号化を、例えばデータベースアプリケーションによって提供され得るテナント識別子の新たな値の符号化に置き換え得る。
アップデートコマンドは、部分インデックスによってインデックス付けされたレコードの全ての列をウォーキングし、任意の列において、テナント識別子の符号化された値に一致する任意の値を、テナント識別子の符号化された新たな値に選択的に置換することによって、置換を選択的に実行し得る。部分インデックスによってインデックス付けされたレコードの列をウォーキングすることは、それらのレコードのすべての列に格納された値を読み込むことを含み得る。
完全なインデックスは、レコードの、作成、アップデート、及び削除動作を含む、全ての変更にかなりの計算コストがかかり得るため、部分的デックスは完全なインデックスの代わりに使用され得る。部分インデックスは、テナント識別子列以外の列にテナント識別子の符号化された値を含まない全てのレコードに対する計算コストを削減することを可能にし得るとともに、テナント識別子列以外の列にテナント識別子の符号化された値を含むレコードは、完全なインデックスで生じたであろうものと同様の計算コストを負担し得る。テナント識別子列以外の列にテナント識別子の符号化された値を格納するレコードの数は、データベース又はテーブル内の全てのレコードのうちのわずかな部分であり得るので、これは計算リソースの節約となり得る。
図1は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するための例示的システムを示す。データベースシステム100は、クローニング後のテナント識別子変換のためのレコードを識別するために、例えば、図13に示されるコンピュータ20又はその構成要素などの任意の適切なコンピューティングデバイスを含み得る。データベースシステム100は、ラップトップ、デスクトップ、個別サーバ、サーバクラスタ、サーバファーム、又は分散サーバシステム上で実施され得、又は、仮想的コンピューティングデバイス若しくはシステム、或いは物理的システムと仮想システムの任意の適切な組み合わせとして実施され得る。データベースシステム100は、コンピューティングシステム及びネットワークインフラストラクチャの一部であることができ、或いは、他のサーバシステムを含むことができるより大きなサーバネットワークを含む、コンピューティングシステム及びネットワークインフラストラクチャに接続することができる。データベースシステム100は、例えば、互いに通信可能であり、任意の適切な方法で通信し得る、任意の数のサーバシステムを含み得る。例えば、データベースシステム100のサーバシステムは、任意の適切なネットワークを介して接続され得、ネットワークは、プライベートネットワークとインターネットとの任意の組み合わせを含む、LANとWANとの任意の適切な組み合わせであり得る。データベースシステム100は、データベースエクゼキュータ110及びストレージ140を含み得る。ストレージ140は、持続的ストレージ142及び作業ストレージ144を含み得る。レコード150及びシステムカタログ160は、持続的ストレージ142内に格納され得る。
データベースエクゼキュータ110は、データベースシステム100上に格納されたデータベースと相互作用し、これを管理するための、データベースシステム100のハードウェア及びソフトウェアの任意の適切な組み合わせであり得る。データベースシステム100は、例えば、複数のテナントのためのデータベースを格納し得るマルチテナントデータベースシステムであり得る。レコード150は、データベースシステム100の複数のテナントのためのデータベースに対するレコードを含み得る。データベースエクゼキュータ110は、スキャン記述子を有する受信されたクエリに基づいてテナントに対するレコード150からレコードを検索することが可能であり得る。例えば、データベースエクゼキュータ110は、例えばサンドボックスデータベースの作成中にテナントレコードセットをクローニングする場合、持続的ストレージ142から作業ストレージ150にレコードをコピーし、レコードを新たな値でアップデートし、作業ストレージ150から持続的ストレージ142へ戻すようにレコードをマージし、レコード150内にレコードの新たなコピーを作成することが可能であり得る。
持続的ストレージ142は、レコード150及びシステムカタログ160などの、データを持続的にストレージするためのハードウェア及びソフトウェアの任意の適切な組み合わせであり得る。例えば、持続的ストレージ142は、ハードドライブ、ソリッドステートドライブ、又は他の形態の持続的データストレージを含み得る。持続的ストレージ142は、任意の数のコンピューティングデバイスにわたって分散され得る。作業ストレージ144は、持続的又は非持続的なデータストレージのためのハードウェア及びソフトウェアの任意の適切な組み合わせであり得、レコード150からのレコードが持続的ストレージ142の外部で操作されることを可能にするために使用され得る。例えば、作業ストレージ144は、ハードドライブ、ソリッドステートドライブ、ランダムアクセスメモリ、又は持続的又は非持続的であり得る他の形態のデータストレージを含み得る。
レコード150は、データベースシステム100の種々のテナントのデータベースに対するレコードを含み得る。レコード150内のレコードは、レコードの所有者を識別するためのテナント識別子を含み得る。テナントに割り当てられたテナント識別子は、データベースシステムに格納され得るテナントに属するすべてのレコードに対するキーの一部として使用され得る。テナント識別子の値は、例えば英数字列として、表され得る。固有のテナント識別子は、データベースシステム100のテナントの各々に割り当てられ得る。マルチテナンシーは、例えば、ユーザ、ユーザのグループ、又は組織であり得る種々のテナントが、種々のテナント間で共有され得るデータベースシステム100上のソフトウェアツール又はインスタンスを介して、データベースシステム100内のそれら自身のレコードにアクセスすることを可能にし得る。レコード150に格納されたレコードを含む、各テナントに対するデータベースは、例えば、関係型データベース、階層型データベース、又は任意の他の適切なデータベースタイプであり得る。レコード150は、データベースシステム100の持続的ストレージ142内に、例えばログ構造化マージ(LSM)ツリーを含む任意の適切な構造で格納され得る。レコードは不変に保存され得るので、レコードが作成された後にレコードをアップデートすることは、レコードの格納されている以前のバージョンに変更を加えることなく、レコードの新たなバージョンが作成されるという結果をもたらす。
データベースシステム100に格納されたレコード150からのレコードは、キーを含み得る。キーは、レコードに対する識別子、例えば、一次キーであり得、例えば、英数字シーケンスなどの、任意の適切な形式であり得る。キーの一部は、レコードに関する情報を提供し得る。例えば、キーの一部は、レコードが属するテナントに対するテナント識別子であり得る。キーの他の部分は、例えば、レコードの値が行の内容である場合、例えば、テーブル番号及び行のIDを識別し得る。
レコードは値を含み得る。レコード内の値は、例えば、列ごとに1つの値を持つタプルとして格納された、関係型データベースのテーブルの行内の列の内容であり得る。タプルとして格納される値は、例えば、バイナリ符号化を使用して符号化され得る。一部のレコードは、タプル内でレコードを所有するテナントに対するテナント識別子の符号化された値を格納し得る。テナント識別子の符号化された値は、例えば、レコードのテナント識別子列に格納され得る。テナント識別子の符号化された値はまた、テナント識別子列ではない可能性があるレコードの他の列に格納され得る。
システムカタログ160は、データベースシステム100に格納されたテナントレコードセットのためのメタデータを含み得る。例えば、システムカタログ160は、テナントレコードセットに対するレコード150のレコードで使用される様々な列タイプのプロパティを記述するメタデータを含み得る。
図2Aは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するための例示的なアレンジメントを示す。レコード150からのレコード200は、例えばデータベースシステム100へのクエリに応答して、データベースエクゼキュータ110によって、作業メモリ144にコピーされ得る。データベースエクゼキュータ110は、例えば、レコード200のタプルを列に展開する(expanding)などして、レコード200を解凍(unpack)し得る。レコード200は、キー210、レコードヘッダ220、及び値230を含み得る。キー210は、テナントレコードセット内のレコード200を識別するために使用されるキーであり得、テナント識別子211及びキーデータ212を含み得る。テナント識別子211は、レコード200を所有するテナントに対するテナント識別子211の値であり得る。キーデータ212は、例えば、レコード200に対するテーブルの行のID及びテーブル番号などの、キー210に含まれる他のデータであり得る。キー211は、テナント識別子211とキーデータ212との連結であり得る英数字列の形態で格納され得る。
レコードヘッダ220は、値230の外部にあるレコード200に対するメタデータ及び他の追加データを格納し得るレコード200の一部であり得る。例えば、レコードヘッダ200は、例えば、レコード200のプロパティを示すために、1若しくは真、又は、0若しくは偽に設定され得るビットとして、インジケータを含み得る。
レコード200の値230は、レコード200の列に格納された値を含み得る。値230は、タプルを形成し得る。レコード200の列は、例えば、キーデータ212において識別されるように、レコード200が属するテナントレコードセットのテーブルの列に基づき得る。例えば、列は、テナント識別子列231及びデータ列232、233、234、及び235であり得る。テナント識別子列231は、テナント識別子211の値の符号化であり得る符号化されたテナント識別子241を格納する列であり得る。符号化は、例えば、バイナリ符号化であり得る。データ列232、233、234、及び235は、例えば、長さが設定され又は変化する文字列又は数などの、レコードに対する様々なタイプのデータを格納する列であり得る。例えば、データ列232は、文字列又は数などの値の符号化であり得る列値242を格納し得る。データ列235は、文字列又は数などの値の符号化であり得る列値245を格納し得る。テナントに対するレコード150の一部のレコードにおいて、テナント識別子の符号化された値は、テナント識別子列ではないレコードの列に格納され得る。例えば、レコード200は、テナント識別子列241に加えて、データ列233及び234内の符号化されたテナント識別子231を格納し得る。
図2Bは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するための例示的なアレンジメントを示す。データエクゼキュータ110は、レコードが圧縮(packed)されて持続的ストレージ142に格納される前に、クローニング後のテナント識別子を変換するために、作業ストレージ144内にあるレコード、例えばレコード200を、レコードのより効率的な識別を可能にするフォーマットにコンバートし得る。データベースエクゼキュータ110は、データ列232、233、234、及び235のいずれかが符号化されたテナント識別子241を格納するかどうかを特定し得る。レコードタイプインジケータ222は、レコード200が符号化されたテナント識別子241をテナント識別子列231以外の列に、いつ格納するか又は格納する場合、を示すために使用され得るビットなどのインジケータであり得る。レコード200が符号化されたテナント識別子241を、データ列232、233、234、235のいずれかなどの値230内の他の列のいずれかに格納する場合、データベースエクゼキュータ110は、レコード200のレコードヘッダ220内のレコードタイプインジケータ222を、1又は真に設定し得る。そうでない場合は、データベースエクゼキュータ110は、レコードタイプインジケータ222を0又は偽に設定し得る。
図3は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するための例示的な配置を示す。データベースエクゼキュータ110は、レコード200のフォーマットを変更した後、レコード200を圧縮し得、それをレコード150によってデータベースシステム100の持続的ストレージ142に格納し得る。レコード200は、作業ストレージ144から取り除かれ得る。
図4は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するための例示的な配置を示す。データベースシステム100内のテナントレコードセットは、例えば、サンドボックスデータベースを作成するためにクローニングされ得る。データベースエクゼキュータ110は、持続的ストレージ142内のレコード150から作業ストレージ144へテナントレコードセットのレコードをコピーし得る。例えば、データベースエクゼキュータ110は、レコード200をレコード400として作業ストレージにコピーし得る。レコード200内の圧縮されたデータ、例えば、値230に対する値を含むタプルは、レコード200がレコード400として作業ストレージにコピーされる場合に展開され得る。
図5Aは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するための例示的な配置を示す。レコード400は、レコード200のクローニングされたコピーであり得、キー410、レコードヘッダ420、及び値430を含み得る。キー410は、テナント識別子211及びキーデータ212を含むキー210のコピーであり得る。レコードヘッダ420は、レコードタイプインジケータ222を含むレコードヘッダ220のコピーであり得る。値430は、符号化されたテナント識別子241を格納するテナント識別子列231、列値242を格納するデータ列232、符号化されたテナント識別子241を格納するデータ列233、符号化されたテナント識別子241を格納するデータ列234、及び列値245を格納するデータ列235を含む、値230のコピーであり得る。
図5Bは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的なアレンジメントを示す。データベースエクゼキュータ110は、レコード200を含むテナントレコードセットからのレコードからクローニングされたサンドボックスデータベースで使用されるレコード400を準備するために、レコード400のテナント識別子変換を行い得る。テナント識別子変換は、サンドボックスデータベース内のレコードと、サンドボックスデータベースを作成するためにクローニングされたテナントレコードセット内のレコードとの間の不一致を防ぐために必要とされる場合がある。
データベースエクゼキュータ110は、レコード400がコピーであるレコード200を所有するテナントに対するテナント識別子の値を、キー410から、又はデータベースシステム100によって受信され、レコード200が応答したクエリ内のスキャンディスクリプタから特定し得る。例えば、スキャンディスクリプタは、サンドボックスデータを作成するためにクローニングするレコードを見つける(locate)ために使用される。その後、データベースエクゼキュータ110は、新たな値を、テナント識別子、例えば新たなテナント識別子411に使用し得、テナント識別子の値、例えば、キー410内のテナント識別子を置き換え得る。新たなテナント識別子411は、テナント識別子211の値とは異なる、新たなテナントがレコード400を所有することを示す、テナント識別子に対する値であり得る。新たなテナント識別子411によって表される新たなテナントは、テナント識別子211によって表されるテナントと同一のエンティティ、例えば、同一のユーザ、ユーザグループ又は組織であり得るか又は異なるエンティティであり得る。例えば、組織全体がテナント識別子211によって表され得る一方で、その組織の1つのサブセットのみがテナント識別子411によって表され得る。これにより、既存のテナントレコードセットのクローンであるサンドボックスデータベースにアクセスし、サンドボックスデータベース及びテナントレコードセットへのアクセスを分離する、人及び組織を含む複数のエンティティにわたる制御が可能となり得る。データベースエクゼキュータ110はまた、テナント識別子列231内の符号化されたテナント識別子241を符号化された新たなテナント識別子441で置き換え得る。
図6は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的なアレンジメントを示す。データベースエクゼキュータ110は、レコード400のクローニングを完了した後、レコード400を圧縮し得、それをレコード150によってデータベースシステム100の持続的ストレージ142に格納し得る。レコード400は、作業ストレージ144から取り除かれ得る。
図7は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的な手順を示す。702において、レコードの列は、テナント識別子列の外部のテナント識別子の符号化された値についてチェックされ得る。例えば、データベースエクゼキュータ110は、符号化されたテナント識別子241についてレコード200のデータ列232、233、234、及び235をチェックし得る。
704において、テナント識別子の符号化された値が、テナント識別子列の外部のレコードの任意の追加の列に格納されている場合、フローは、706に進み得る。そうでない場合は、フローは708に進み得、そこで、レコードのレコードタイプインジケータが偽に設定され得る。
706において、レコードヘッダ内のレコードタイプインジケータが真に設定され得る。例えば、データベースエクゼキュータ110は、レコードヘッダ220内のレコードタイプインジケータ222を1又は真に設定し得、符号化されたテナント識別子241が、テナント識別子列231の外部のレコード200の列に格納されていると認められた(was found to be stored)ことを示し得る。
708において、レコードヘッダ内のレコードタイプインジケータが偽に設定され得る。例えば、データベースエクゼキュータ110は、レコードタイプインジケータ222を0又は偽に設定し得、レコード200が、テナント識別子列231の外部の任意の列のいずれにも、符号化されたテナント識別子241を格納しないことを示し得る。
図8は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的な配置を示す。データベースシステム100内のテナントレコードセットは、例えば、サンドボックスデータベースを作成するためにクローニング(cloned)され得る。データベースクライアントデバイス900上で実行されるデータベースアプリケーション910は、サンドボックスデータベースのテーブルのためのレコードであり得るテーブルレコード950にアクセスし得る。データベースクライアントデバイス900は、データベースシステム100と相互作用するための任意の適切なコンピューティングデバイスであり得る。データベースアプリケーション910は、データベースシステム100及びデータベースエクゼキュータ110との相互作用を可能にし得る、データベースクライアントデバイス900上で実行される任意の適切なアプリケーションであり得る。例えば、データベースアプリケーション910は、データベースシステム100の持続的ストレージ142に格納されたテナントレコードセットを所有するエンティティによって使用されるアプリケーションであり得る。
データベースエクゼキュータ110は、テーブルレコード950をコピーし得、任意の適切な通信リンク上でそれらをデータベースアプリケーション910に送信し得る。データベースアプリケーション910は、テーブルレコード950を、データベースクライアントデバイス900の作業ストレージ944内のテーブル960内に展開し得る。
図9は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的な配置を示す。テーブル960は、テーブル960内の各レコードに対して複数の行を含み得る。テーブル960は、レコード400、1010、1020、1030、及び1040を含み得る。テーブル960の列は、キー列1001、テナント識別子列231、データ列232、233、234、及び235、及びレコードタイプインジケータ列1005であり得る。レコードタイプインジケータ列1005は、レコード400、1010、1020、1030、及び1040の各々においてレコードタイプインジケータの値をさらし得る。レコード400は、キー列1001内のキー410、テナント識別子列231内の符号化されたテナント識別子241、データ列232内の列値242、データ列233内の符号化されたテナント識別子241、データ列234内の符号化されたテナント識別子241、データ列235内の列値245、及びレコードタイプインジケータ列1005内の1又は真の値を含み得る。
レコード1010は、キー列1001の中のキー1011、テナント識別子列231内の符号化された新たなテナント識別子441、データ列232内の列値1012、データ列233内の列値1013、データ列234内の列値1014、データ列235内の列値1015、及びレコードタイプインジケータ列1005内の0又は偽の値を含み得る。
レコード1020は、キー列1001内のキー1021、テナント識別子列231内の符号化された新たなテナント識別子441、データ列232内の列値1022、データ列233内の列値1023、データ列234内の列値1024、データ列235内の列値1025、及びレコードタイプインジケータ列1005内の値0又は偽を含み得る。
レコード1030は、キー列1001内のキー1031、テナント識別子列231内の符号化された新たなテナント識別子441、データ列232内の符号化されたテナント識別子241、データ列233内の列値1032、データ列234内の符号化されたテナント識別子241、データ列235内の列値1035、及びレコードタイプインジケータ列1005内の値1又は真を含み得る。
レコード1040は、キー列1001内のキー1041、テナント識別子列231内の符号化された新たなテナント識別子441、データ列232内の列値1042、データ列233内の符号化されたテナント識別子241、データ列234内の列値1045、データ列235内の符号化されたテナント識別子241、及びレコードタイプインジケータ列1005内の値1、又は真を含み得る。
図10は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的な配置を示す。データベースアプリケーション910は、レコードタイプインジケータ列1005内に1又は真の値を含むテーブル960の行を識別し得る。データベースアプリケーション910は、識別された行から部分インデックス1160を生成し得る。部分インデックス1160は、キー列231及びレコードタイプインジケータ列1005を含み得る。部分インデックス1160内の各行は、レコードタイプインジケータ列1005内の1の値、又は真の値を有するテーブル960の行に対応し得る。部分インデックス1160のキー列231内のキーは、レコードヘッダ内で、そのレコードタイプインジケータが1又は真に設定されたレコードを識別し得、960内のレコードにアクセスするために使用され得る。
図11Aは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のためにレコードを識別するための例示的な配置を示す。データベースアプリケーション910は、部分インデックス1160からのキー410を使用し得、テーブル960内のレコード400からの値を格納する行にアクセスし得る。データベースアプリケーション910は、レコード400がデータ列233及び234内に符号化されたテナント識別子241を含むことを特定し得る。その後、データベースアプリケーション910は、レコード400のデータ列233及び234上でテナント識別子変換を行うかどうかを特定し得る。データベースアプリケーション910がテナント識別子変換を行う場合、符号化されたテナント識別子241は除去され得、符号化された新たなテナント識別子441と置き換えられ得る。
図11Bは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的な配置を示す。データベースアプリケーション910は、部分インデックス1160からのキー1031を使用しえ、テーブル960内のレコード1030からの値を格納する行にアクセスし得る。データベースアプリケーション910は、レコード1030がデータ列232及び234内に符号化テナント識別子241を含むことを特定し得る。次いで、データベースアプリケーション910は、レコード1030のデータ列232及び234上でテナント識別子変換を行うかどうかを特定することができる。データベースアプリケーション910がテナント識別子変換を行う場合、符号化されたテナント識別子241は除去され得、符号化された新しいテナント識別子441と置き換えられ得る。
図11Cは、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的な配置を示す。データベースアプリケーション910は、部分インデックス1160からのキー1041を使用し得、テーブル960内のレコード1040からの値を格納する行にアクセスし得る。データベースアプリケーション910は、レコード1040がデータ列233及び235内に符号化されたテナント識別子241を含むことを特定し得る。その後、データベースアプリケーション910は、レコード1040のデータ列233及び235上でテナント識別子変換を行うかどうかを特定し得る。データベースアプリケーション910がテナント識別子変換を行う場合、符号化されたテナント識別子241は除去され得、符号化された新たなテナント識別子441と置き換えられ得る。
図12は、開示された主題の実施形態にしたがった、クローニング後のテナント識別子変換のための、レコードの識別に適した例示的な手順を示す。1202において、レコードタイプインジケータが真に設定されたレコードが識別され得る。例えば、データベースアプリケーション910は、テーブル960の行内に表されるレコードを検査し得、レコードタイプインジケータ列1005内の、1又は真の値を有する行、及び対応するレコードを識別し得る。テーブル960は、データベースシステム100の持続的ストレージ142から受け取られたサンドボックスデータベースの一部であり得るレコードを含み得る。
1204において、識別されたレコードから部分的なインデックスが生成され得る。例えば、データベースアプリケーション910は、レコードタイプインジケータ列1005内の、1又は真の値を有するテーブル960の行に対応するレコードから部分インデックス1160を生成し得る。部分インデックス1160は、識別されたレコードのキー、例えば、レコード400、1030、及び1040のキー410、1031、及び1041を含み得る。
1206において、部分インデックスを使用してアクセスされたレコード内のテナント識別子は、変換され得る。例えば、データベースアプリケーション910は、部分インデックス1160からのキー410、1031、及び1041を使用し得、テーブル960内のレコード400、1030、及び1040にアクセスし得る。データベースアプリケーション910は、レコード400、1030、及び1040の値を、符号化されれたテナント識別子241の出現(occurrences)についてスキャンし得、符号化されたテナント識別子241の各出現についてテナント識別子変換を行うかどうかを特定し得る。データベースアプリケーション910は、発見されたテナント識別子241の出現を符号化された新たなテナント識別子441で置き換えることによって、テナント識別子変換を行い得る。これは、テーブル960内のレコードに対するテナント識別子変換を完了し得、その後、新たなテナント識別子411に関連するテナントによって所有されるサンドボックスデータベースの一部として使用可能にし得る。
本開示の主題の実施形態は、種々の構成要素及びネットワークアーキテクチャにおいて実施され、それらと共に使用され得る。図13は、本開示による主題の実施形態を実施するのに適した例示的なコンピュータ20である。本明細書でさらに詳細に説明するように、コンピュータ20は、複数のコンピュータのネットワーク内の単一のコンピュータであり得る。図13に示すように、コンピュータは、中央コンポーネント30(例えば、サーバ、クラウドサーバ、データベースなど)と通信し得る。中央コンポーネント30は、第2コンピュータ31などの1つ以上の他のコンピュータと通信し得る。この実施形態によれば、中央コンポーネント30に与えられた及び/又は中央コンポーネント30から得られた情報は、コンピュータ20がコンピュータ31と情報を共有しないように、各コンピュータに対して分離することができる。代替的又は付加的に、コンピュータ20は、第2コンピュータ31と直接通信し得る。
コンピュータ(例えば、ユーザコンピュータ、エンタープライズコンピュータなど)20は、コンピュータ20の主要構成要素間を相互接続するバス21を含み、主要構成要素間は例えば、中央プロセッサ24、メモリ27(典型的には、RAM、しかしながらROM、フラッシュRAMなども含み得る)、入力/出力コントローラ28、ディスプレイアダプタを介したタッチスクリーン若しくはディスプレイなどのユーザディスプレイ22、1つ以上のコントローラ及び関連するユーザ入力又はキーボード、マウス、WiFi/携帯無線、タッチスクリーン、マイク/スピーカなどのデバイスを含み得るユーザ入力インタフェース26、などであり、ハードドライブ、フラッシュストレージ、ファイバチャネルネットワーク、SANデバイス、SCSIデバイスなどの固定ストレージ23、光学ディスク、フラッシュドライブなどを制御し受け容れるリムーバブル媒体構成要素25、及び、I/Oコントローラ28に密接に結合され得る。
バス21は、前述したように、読出専用メモリ(ROM)又はフラッシュメモリ(どちらも図示せず)、及びランダムアクセスメモリ(RAM)(図示せず)を含み得る、メモリ27と中央プロセッサ24との間のデータ通信を可能にする。RAMは、オペレーティングシステム及びアプリケーションプログラムがロードされるメインメモリを含むことができる。ROM又はフラッシュメモリは、他のコードの中でもとりわけ、周辺構成要素との相互作用などの基本的なハードウェア動作を制御する基本入出力システム(BIOS)を含むことができる。コンピュータ20に常駐するアプリケーションは、ハードディスクドライブ(例えば、固定ストレージ23)、光学式ドライブ、フロッピーディスク、又は他のストレージ媒体25などのコンピュータ読取可能媒体上に格納され、これを介してアクセスされることができる。
固定ストレージ23は、コンピュータ20と一体化され得るか、又は、分離されて他のインタフェースを介してアクセスされ得る。ネットワークインターフェース29は、電話リンクを介した遠隔サーバへの直接接続、インターネットサービスプロバイダ(ISP)を介したインターネットへの直接接続、又は、POP(存在点)又は他の技術を介したインターネットへの直接ネットワークリンクを介した遠隔サーバへの直接接続を提供し得る。ネットワークインターフェース29は、デジタルセルラ電話接続、セルラデジタルパケットデータ(CDPC)接続、デジタル衛星データ接続などを含む無線技術を使用して、かかる接続を提供し得る。例えば、ネットワークインターフェース29は、図14に示すように、1つ以上の局所的ネットワーク、広域的ネットワーク、又は他のネットワークを介して、コンピュータを他のコンピュータと通信させることができる。
多くの他のデバイス又は構成要素(図示せず)は、同様の方法で接続することができる(例えば、ドキュメントスキャナ、デジタルカメラなど)。反対に、本開示を実施するために、図13に示された全ての構成要素が存在する必要はない。これらの構成要素は、示されたものとは異なる方法で相互接続することができる。図13に示すようなコンピュータの動作は、当技術分野では直ちに知られており、本出願では詳細に説明しない。本開示を実施するためのコードは、メモリ27、固定ストレージ23、リムーバブル媒体25のうちの1つ以上、又は遠隔ストレージロケーションなどのコンピュータ読取可能ストレージ媒体に格納することができる。
図14は、開示された主題の実施形態にしたがった、ネットワーク配置を示す。コンピュータ、マイクロコンピュータ、ローカルコンピュータ、スマートフォン、タブレットコンピューティングデバイス、エンタープライズデバイスなどの、1つ以上のクライアント10、11は、1つ以上のネットワーク7(例えば、電力分配ネットワーク)を介して他のデバイスに接続し得る。ネットワークは、局所的ネットワーク、広域的ネットワーク、インターネット、又は任意の他の適切な通信ネットワーク又は複数のネットワークであり得、有線及び/又は無線ネットワークを含む任意の適切なプラットフォーム上に実施され得る。クライアントは、1つ以上のサーバ13及び/又はデータベース15と通信し得る。デバイスは、クライアント10、11によって直接アクセス可能であり得、又はサーバ13がデータベース15に格納されたリソースへのアクセスを提供する場合のように、1つ以上の他のデバイスが中間アクセスを提供し得る。クライアント10、11はまた、例えばクラウドコンピューティング配置及びサービスなどの遠隔プラットフォーム17によって提供されるサービス又は遠隔プラットフォーム17にアクセスし得る。遠隔プラットフォーム17は、1つ以上のサーバ13及び/又はデータベース15を含み得る。第1クライアントからの、又は第1クライアントに関する情報、例えば、クライアント10に関する情報は、クライアント11と共有され得ないように、そのクライアントに分離され得る。或いは、第1クライアントからの、又は第1クライアントに関する情報は、他のクライアントと共有する前に匿名化され得る。例えば、クライアント10に関する任意のクライアント識別情報は、クライアント10に関連するクライアント11に提供される情報から除去され得る。
より一般的には、本開示による主題の種々の実施形態は、これらのプロセスを実施するためのコンピュータ実施プロセス及び装置の形態を含むか又はそれらの形態で実施形態され得る。また、実施形態は、フロッピーディスク、CD-ROM、ハードドライブ、USB(ユニバーサルシリアルバス)ドライブ、又は他の任意の機械読取可能ストレージ媒体などの、非一時的及び/又は有形の媒体に実施される命令を含むコンピュータプログラムコードを有するコンピュータプログラムプロダクトの形態で実施形態され得、コンピュータプログラムコードがコンピュータにロードされ、コンピュータによって実行される場合、コンピュータは開示された主題の実施形態を実施するための装置となる。実施形態はまた、コンピュータプログラムコードの形態で実施され得、例えば、ストレージ媒体に格納され、コンピュータにロードされ及び/又はコンピュータによって実行されるか、又は、電気配線若しくはケーブルにわたって、ファイバ光学系を介して、又は、電磁放射を経由してなどの、いくつかの伝送媒体にわたって伝送されるかにかかわらず、コンピュータプログラムコードがコンピュータにロードされ、コンピュータによって実行される場合、コンピュータは開示された主題の実施形態を実施するための装置となる。汎用マイクロプロセッサで実施されるとき、コンピュータプログラムコードのセグメントが、特定の論理回路を作り出すようにマイクロプロセッサを構成する。いくつかの構成では、コンピュータ読取可能ストレージ媒体上に格納された一組のコンピュータ読取可能命令は、汎用プロセッサによって実施され得、汎用プロセッサ又は汎用プロセッサを含むデバイスを、命令を実施又は実行するように構成された特別用途デバイスに変形(transform)し得る。実施形態は、ハードウェア及び/又はファームウェアにおいて開示された主題の実施形態にしたがった技術の全部又は一部を実施形態する特定用途向け集積回路(ASIC)、及び/又は、汎用マイクロプロセッサなどのプロセッサを含み得るハードウェアを使用して実施形態され得る。プロセッサは、RAM、ROM、フラッシュメモリ、ハードディスク、又は電子情報を格納することができる他の任意のデバイスなどのメモリに結合し得る。メモリは、開示された主題の実施形態に従って技術を行うために、プロセッサによって実行されるように適合された命令を格納することができる。
上記の記述は、説明の目的のために、特定の実施形態を参照して述べられている。しかしながら、上記の例示的な考察は、網羅的であること、又は開示された主題の実施形態を開示された正確な形態に限定することを意図したものではない。上記の教示の観点から多くの変更及び変形が可能である。実施形態は、開示された主題の実施形態の原理及びそれらの実際の用途を説明するために選択され、説明され、それにより、当業者がそれらの実施形態、並びに意図された特定の使用に適し得る様々な変更を伴う様々な実施形態を利用することが可能になる。

Claims (21)

  1. コンピュータで実施される方法であって、
    データベースアプリケーションを実行するコンピューティングデバイスにおいて、データベースエクゼキュータを実行するデータベースシステムから、レコードを受信するステップと、
    前記データベースアプリケーションによって、前記レコードの中から、符号化されたテナント識別子の値が、テナント識別子列ではないレコードの列に格納されていることを示すビットを含むレコードヘッダを含む1つ以上のレコードを識別するステップと、
    前記データベースアプリケーションによって、前記データベースアプリケーションによって識別された前記1つ以上のレコードに基づいて、部分インデックスを生成するステップと、
    前記データベースアプリケーションによって、前記部分インデックスを使用して前記1つ以上のレコードにアクセスし、前記データベースアプリケーションによって、前記1つ以上のレコードの列に格納された前記符号化された前記テナント識別子の値を、符号化されたテナント識別子の新たな値に置き換えるステップと、
    を含む、コンピュータ実施方法。
  2. 前記部分インデックスを使用して前記1つ以上のレコードにアクセスし、前記1つ以上のレコードの列に格納された前記符号化された前記テナント識別子の値を、符号化されたテナント識別子の新たな値に置き換えるステップは、前記1つ以上のレコードの列をウォーキングするステップをさらに含む、
    請求項1記載のコンピュータ実施方法。
  3. 前記データベースシステムはマルチテナントデータベースシステムである、
    請求項1記載のコンピュータ実施方法。
  4. 前記1つ以上のレコードは、前記データベースシステムの持続的なストレージから受信される、
    請求項1記載のコンピュータ実施方法。
  5. 前記1つ以上のレコードは、前記コンピューティングデバイスの作業メモリに解凍される、
    請求項1記載のコンピュータ実施方法。
  6. 前記1つ以上のレコードは、前記テナント識別子の値によって識別されるテナントによって所有されるデータベースからクローニングされるサンドボックスデータベースの一部であり、
    前記サンドボックスデータベースは、前記テナント識別子の前記新たな値によって識別されるテナントによって所有される、
    請求項1記載のコンピュータ実施方法。
  7. 前記部分インデックスを使用して前記1つ以上のレコードにアクセスし、前記1つ以上のレコードの列に格納された前記符号化された前記テナント識別子の値を、符号化されたテナント識別子の新たな値に置き換えるステップの後、前記テナント識別子の前記新たな値によって識別されたテナントに対するデータベースの一部として使用することができる前記1つ以上のレコードを作成するステップをさらに含む、
    請求項1記載のコンピュータ実施方法。
  8. クローニング後のテナント識別子変換のために、レコードを識別するためのコンピュータで実施されるシステムであって、
    作業ストレージを有する1つ以上のストレージデバイスと、
    コンピューティングデバイスのプロセッサであって、
    データベースエクゼキュータを実行するデータベースシステムからレコードを受信し、
    前記レコードの中から、符号化されたテナント識別子の値が、テナント識別子列ではない前記レコードの列に格納されていることを示すビットを含むレコードヘッダを含む1つ以上のレコードを識別し、
    識別された前記1つ以上のレコードに基づいて部分インデックスを生成し、
    前記部分インデックスを使用して前記1つ以上のレコードにアクセスし、前記1つ以上のレコードの列に格納された前記符号化された前記テナント識別子の値を、符号化されたテナント識別子の新たな値に置き換える、
    プロセッサと、
    を備える、コンピュータ実施システム。
  9. 前記プロセッサはさらに、
    前記1つ以上のレコードの列をウォーキングすることによって、前記1つ以上のレコードに前記部分インデックスを使用してアクセスし、前記1つ以上のレコードの列に格納された前記符号化された前記テナント識別子の値を、符号化されたテナント識別子の新たな値に置き換える、
    請求項8記載のコンピュータ実施システム。
  10. 前記データベースシステムはマルチテナントデータベースシステムである、
    請求項8記載のコンピュータ実施システム。
  11. 前記プロセッサが受信する前記1つ以上のレコードは、前記データベースシステムの持続的なストレージから受信される、
    請求項8記載のコンピュータ実施システム。
  12. 前記1つ以上のレコードは、作業メモリに解凍される、
    請求項8記載のコンピュータ実施システム。
  13. 前記1つ以上のレコードは、前記テナント識別子の値によって識別されるテナントによって所有されるデータベースからクローニングされるサンドボックスデータベースの一部であり、
    前記サンドボックスデータベースは、前記テナント識別子の前記新たな値によって識別されるテナントによって所有される、
    請求項8記載のコンピュータ実施システム。
  14. 前記部分インデックスを使用して前記1つ以上のレコードにアクセスし、前記1つ以上のレコードの列に格納された前記符号化された前記テナント識別子の値を、符号化されたテナント識別子の新たな値に置き換えた後、
    前記テナント識別子の前記新たな値によって識別されたテナントに対するデータベースの一部として使用することができる前記1つ以上のレコードを作成する、
    請求項8記載のコンピュータ実施システム。
  15. システムであって、
    1つ以上のコンピュータと、
    前記1つ以上のコンピュータによって実行される場合、
    データベースアプリケーションを実行するコンピューティングデバイスにおいて、データベースエクゼキュータを実行するデータベースシステムから、レコードを受信するステップと、
    前記データベースアプリケーションによって、前記レコードの中から、符号化されたテナント識別子の値が、テナント識別子列ではない前記レコードの列に格納されていることを示すビットを含むレコードヘッダを含む1つ以上のレコードを識別するステップと、
    前記データベースアプリケーションによって、前記データベースアプリケーションによって識別された前記1つ以上のレコードに基づいて、部分インデックスを生成するステップと、
    前記データベースアプリケーションによって、前記部分インデックスを使用して前記1つ以上のレコードにアクセスし、前記データベースアプリケーションによって、前記1つ以上のレコードの列に格納された前記符号化された前記テナント識別子の値を、符号化されたテナント識別子の新たな値に置き換えるステップと、
    を含む動作を前記1つ以上のコンピュータに行わせるように動作可能な命令を格納する1つ以上のストレージデバイスと、
    を備える、システム。
  16. 前記1つ以上のコンピュータによって実行される場合、前記1つ以上のコンピュータに、前記部分インデックスを使用して前記1つ以上のレコードにアクセスし、前記1つ以上のレコードの列に格納された前記符号化された前記テナント識別子の値を、符号化されたテナント識別子の新たな値に置き換えるステップ、を含む動作を行わせる前記命令は、
    前記1つ以上のレコードの列をウォーキングするステップを含む動作をさらに、前記1つ以上のコンピュータに行わせる、
    請求項15記載のシステム。
  17. 前記データベースシステムはマルチテナントデータベースシステムである、
    請求項15記載のシステム。
  18. 前記1つ以上のレコードは、前記データベースシステムの持続的なストレージから受信される、
    請求項15記載のシステム。
  19. 前記1つ以上のレコードは、前記コンピューティングデバイスの作業メモリに解凍される、
    請求項15記載のシステム。
  20. 前記1つ以上のレコードは、前記テナント識別子の値によって識別されるテナントによって所有されるデータベースからクローニングされるサンドボックスデータベースの一部であり、
    前記サンドボックスデータベースは、前記テナント識別子の前記新たな値によって識別されるテナントによって所有される、
    請求項15記載のシステム。
  21. 前記命令は、前記1つ以上のコンピュータによって実行される場合、
    前記部分インデックスを使用して前記1つ以上のレコードにアクセスし、前記1つ以上のレコードの列に格納された前記符号化された前記テナント識別子の値を、符号化されたテナント識別子の新たな値に置き換えるステップの後、
    前記テナント識別子の前記新たな値によって識別されたテナントに対するデータベースの一部として使用することができる前記1つ以上のレコードを作成するステップを含む
    動作をさらに、前記1つ以上のコンピュータに行わせる、
    請求項15記載のシステム。
JP2021505390A 2018-09-24 2019-09-23 クローニング後のテナント識別子変換のためのレコードの識別 Active JP7390356B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/139,594 US11151110B2 (en) 2018-09-24 2018-09-24 Identification of records for post-cloning tenant identifier translation
US16/139,594 2018-09-24
PCT/US2019/052453 WO2020068680A1 (en) 2018-09-24 2019-09-23 Identification of records for post-cloning tenant identifier translation

Publications (2)

Publication Number Publication Date
JP2022501693A JP2022501693A (ja) 2022-01-06
JP7390356B2 true JP7390356B2 (ja) 2023-12-01

Family

ID=68165728

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021505390A Active JP7390356B2 (ja) 2018-09-24 2019-09-23 クローニング後のテナント識別子変換のためのレコードの識別

Country Status (6)

Country Link
US (1) US11151110B2 (ja)
EP (1) EP3814927A1 (ja)
JP (1) JP7390356B2 (ja)
CN (1) CN112889039A (ja)
AU (1) AU2019350694A1 (ja)
WO (1) WO2020068680A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11321294B2 (en) 2019-09-09 2022-05-03 Salesforce.Com, Inc. Database index repair
US12013831B2 (en) 2021-01-29 2024-06-18 Salesforce, Inc. Index for multi-level data structures

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005266913A (ja) 2004-03-16 2005-09-29 Nec Corp ソフトウェアパッケージ製品のパッチ情報提供方法、システム、及びプログラム
JP2010266996A (ja) 2009-05-13 2010-11-25 Hitachi Ltd データベース処理方法、データベース処理システム及びデータベースサーバ
JP2011154602A (ja) 2010-01-28 2011-08-11 Fujitsu Frontech Ltd 文字列管理装置、文字列登録方法、文字列検索方法および文字列管理プログラム
WO2014128759A1 (ja) 2013-02-21 2014-08-28 公益財団法人先端医療振興財団 情報システムおよびその更新方法
US20150302035A1 (en) 2014-04-17 2015-10-22 Oracle International Corporation Partial indexes for partitioned tables
US20170300712A1 (en) 2016-04-14 2017-10-19 Salesforce.Com, Inc. Fine grain security for analytic data sets
US20180129585A1 (en) 2016-11-08 2018-05-10 Salesforce.Com, Inc. Formation and manipulation of test data in a database system

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002019127A1 (en) 2000-08-25 2002-03-07 Integrated Business Systems And Services, Inc. Transaction-based enterprise application integration (eai) and development system
US7779039B2 (en) * 2004-04-02 2010-08-17 Salesforce.Com, Inc. Custom entities and fields in a multi-tenant database system
US7933869B2 (en) * 2006-12-29 2011-04-26 Sap Ag Method and system for cloning a tenant database in a multi-tenant system
US20100299664A1 (en) * 2009-05-21 2010-11-25 Salesforce.Com, Inc. System, method and computer program product for pushing an application update between tenants of a multi-tenant on-demand database service
US10417611B2 (en) * 2010-05-18 2019-09-17 Salesforce.Com, Inc. Methods and systems for providing multiple column custom indexes in a multi-tenant database environment
US10108648B2 (en) 2011-07-13 2018-10-23 Salesforce.Com, Inc. Creating a custom index in a multi-tenant database environment
US9244951B2 (en) * 2012-03-08 2016-01-26 International Business Machines Corporation Managing tenant-specific data sets in a multi-tenant environment
US10394848B2 (en) * 2013-07-29 2019-08-27 Amazon Technologies, Inc. Generating a multi-column index for relational databases by interleaving data bits for selectivity
US10366247B2 (en) * 2015-06-02 2019-07-30 ALTR Solutions, Inc. Replacing distinct data in a relational database with a distinct reference to that data and distinct de-referencing of database data
US10346386B2 (en) 2016-11-04 2019-07-09 Salesforce.Com, Inc. Multiversion concurrency control of database records with uncommitted transactions
US10776336B2 (en) * 2016-11-04 2020-09-15 Salesforce.Com, Inc. Dynamic creation and maintenance of multi-column custom indexes for efficient data management in an on-demand services environment
US10437799B2 (en) * 2016-12-02 2019-10-08 International Business Machines Corporation Data migration using a migration data placement tool between storage systems based on data access

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005266913A (ja) 2004-03-16 2005-09-29 Nec Corp ソフトウェアパッケージ製品のパッチ情報提供方法、システム、及びプログラム
JP2010266996A (ja) 2009-05-13 2010-11-25 Hitachi Ltd データベース処理方法、データベース処理システム及びデータベースサーバ
JP2011154602A (ja) 2010-01-28 2011-08-11 Fujitsu Frontech Ltd 文字列管理装置、文字列登録方法、文字列検索方法および文字列管理プログラム
WO2014128759A1 (ja) 2013-02-21 2014-08-28 公益財団法人先端医療振興財団 情報システムおよびその更新方法
US20150302035A1 (en) 2014-04-17 2015-10-22 Oracle International Corporation Partial indexes for partitioned tables
US20170300712A1 (en) 2016-04-14 2017-10-19 Salesforce.Com, Inc. Fine grain security for analytic data sets
US20180129585A1 (en) 2016-11-08 2018-05-10 Salesforce.Com, Inc. Formation and manipulation of test data in a database system

Also Published As

Publication number Publication date
AU2019350694A1 (en) 2021-02-25
EP3814927A1 (en) 2021-05-05
JP2022501693A (ja) 2022-01-06
US20200097573A1 (en) 2020-03-26
US11151110B2 (en) 2021-10-19
WO2020068680A1 (en) 2020-04-02
CN112889039A (zh) 2021-06-01

Similar Documents

Publication Publication Date Title
US11163739B2 (en) Database table format conversion based on user data access patterns in a networked computing environment
JP7408626B2 (ja) テナント識別子の置換
EP3646133B1 (en) Systems and methods of creation and deletion of tenants within a database
US20190057133A1 (en) Systems and methods of bounded scans on multi-column keys of a database
JP7390356B2 (ja) クローニング後のテナント識別子変換のためのレコードの識別
US20220284005A1 (en) Relational method for transforming unsorted sparse dictionary encodings into unsorted-dense or sorted -dense dictionary encodings
CN113434506B (zh) 数据管理及检索方法、装置、计算机设备及可读存储介质
CN115918110A (zh) 使用键值存储库的空间搜索
US10083121B2 (en) Storage system and storage method
CN112100168A (zh) 一种确定数据关联关系的方法和装置
US10162934B2 (en) Data de-duplication system using genome formats conversion
US11177824B2 (en) Dictionary embedded expansion procedure
JP2023544024A (ja) 複合データ・セットの中に突き合わせるためのシステム及び方法
CN117424890A (zh) 数据处理方法、装置、设备及介质
KR20230030281A (ko) 온톨로지 기반 표준정보모델 변환 장치 및 방법
CN111695124A (zh) 权限控制方法和装置、存储介质和电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220912

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231026

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231120

R150 Certificate of patent or registration of utility model

Ref document number: 7390356

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150