JP2021515294A - マルチマスタ分散データ管理システムにおけるトランザクション処理 - Google Patents

マルチマスタ分散データ管理システムにおけるトランザクション処理 Download PDF

Info

Publication number
JP2021515294A
JP2021515294A JP2020542134A JP2020542134A JP2021515294A JP 2021515294 A JP2021515294 A JP 2021515294A JP 2020542134 A JP2020542134 A JP 2020542134A JP 2020542134 A JP2020542134 A JP 2020542134A JP 2021515294 A JP2021515294 A JP 2021515294A
Authority
JP
Japan
Prior art keywords
log
grooming
record
transaction
data
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.)
Granted
Application number
JP2020542134A
Other languages
English (en)
Other versions
JP7221975B2 (ja
Inventor
バーバー、ロナルド
ガルシア−アレラーノ、クリスチャン
グロスマン、ローネン
フラス、マシュー、アルバート
ハミド ピラヘシュ、ミール
ハミド ピラヘシュ、ミール
ラマン、ビジャイシャンカー
シドル、リチャード、セフトン
ストーム、アダム
トズン、ピナール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2021515294A publication Critical patent/JP2021515294A/ja
Application granted granted Critical
Publication of JP7221975B2 publication Critical patent/JP7221975B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/134Distributed indices
    • 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
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • G06F16/2322Optimistic concurrency control using timestamps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

ログ中の各レコードに対するレコード識別子を含むテーブルに対しテーブル・ログ・スキャンが行われる。これらの識別子に基づいて、テーブル中の各コラムにコラム値がロードされる。これらコラム値に基づくレコードが、テーブル・ベースのグルームされたトランザクション・ブロックに書き込まれ、グルーム済みブロック上の各レコードに対するタプル・シーケンス番号が生成される。このテーブルは、トランザクション処理の処理取扱いを増加させるために、マルチマスタ分散データ管理システム中でトランザクション処理を取り扱う複数のノードに亘って共有/シェアされる。

Description

本発明の諸実施形態は、マルチマスタ分散データ管理システムにおけるトランザクション処理に関する。
高可用性を狙いとする従来式のデータ管理システムは、何らかのデータのレプリカを得るために、更新、削除、および挿入(UDI:update,delete,and insert)などのトランザクション処理を可能にする必要がある。また、これらのトランザクション処理は、ビッグ・データ・エコシステムとの互換性を目指しており、これらシステムは、その効率的な読み取り、書込みオペレーションおよびスペース消費における優位性のゆえに、追加専用(しかして、変更にはなじまない)ストレージ・ストリームを用いる。
マルチマスタ分散データ管理システムにおけるトランザクション処理をグルーミング(grooming)する方法を提供する。
諸実施形態は、マルチマスタ分散データ管理システムにおけるトランザクション処理に関する。一実施形態は、少なくとも1つのトランザクション・ローカル側ログでのトランザクション処理の維持を含め、マルチマスタ分散データ管理システムにおけるトランザクション処理をグルーミングする方法を提供する。ログ中の各レコードに対するレコード識別子を含むテーブルに対しテーブル・ログ・スキャンが行われる。これらの識別子に基づいて、テーブル中の各コラムにコラム値がロードされる。これらコラム値に基づくレコードが、テーブル・ベースのグルーム済みトランザクション・ブロックに書き込まれ、グルームされたブロック上の各レコードに対するタプル・シーケンス番号が生成される。このテーブルは、トランザクション処理の処理取扱いを増加させるために、マルチマスタ分散データ管理システム中でトランザクション処理を取扱う諸ノードに亘って共有/シェアされる。
本発明のこれらのおよび他の特徴、態様、および利点は、以下の説明、添付の特許請求の範囲、および別添の図面を参照することによって理解することができよう。
本発明の諸実施形態を、単なる例示として、付加の図面を参照しながら以降に説明することとする。
或る実施形態による、クラウド・コンピューティング環境を表す。 或る実施形態による、抽象化モデル層のセットを表す。 或る実施形態による、マルチマスタ分散データ管理システムのためのネットワーク・アーキテクチャである。 或る実施形態による、図1のサーバもしくはクライアントまたはその両方に関連付けることが可能な典型的なハードウェア環境を示す。 一実施形態による、トランザクション処理に対しグルーミング処理を行うためのマルチマスタ分散データ管理システムを表すブロック図である。 一実施形態による、マルチマスタ分散データ管理システムにおいてグルーミング処理を行うための例示のアーキテクチャを表す。 一実施形態による、マルチマスタ分散データ管理システム中のデータのライフ・サイクルの例を表す。 一実施形態による、マルチマスタ分散データ管理システムにおいてデータをグルーミングする一例を表す。 一実施形態による、グルーミング評価プロセスに対する例示のブロック図を表す。 一実施形態による、図9のグルーミング評価プロセスのための、例示の書込み処理を表す。 一実施形態による、マルチマスタ分散データ管理システムにおけるトランザクション処理をグルーミングするためのプロセスに対するブロック図を表す。
本様々な実施形態の説明は、例示目的で提示されているのであって、網羅的であることもまたは本発明を開示した形態に限定することも意図されていない。当業者には、本発明の範囲および趣旨から逸脱しない多くの修改および別形が明白であろう。本明細書で用いられた用語は、諸実施形態の原理、実際上の応用、または市販の技術の技術的な改良を最善に説明し、または他の当業者が本明細書に開示された諸実施形態を理解できるように選択されたものである。
前もって当然のことながら、本開示はクラウド・コンピューティングの詳細な説明を含むが、本明細書中に記載の教示の実装は、クラウド・コンピューティング環境に限定はされない。それどころか、本発明の諸実施形態は、現在知られた、または将来開発される任意の他の種類のコンピューティング環境に合わせて実装することができる。
諸実施形態は、マルチマスタ分散データ管理システムにおけるトランザクション処理(例えば、更新、削除、挿入など)に関する。一実施形態は、少なくとも1つのトランザクション・ローカル側ログでのトランザクション処理の維持を含め、マルチマスタ分散データ管理システムにおけるトランザクション処理をグルーミングする方法を提供する。ログ中の各レコードに対するレコード識別子を含むテーブルに対してテーブル・ログ・スキャンが行われる。これらの識別子に基づいて、テーブル中の各コラムにコラム値がロードされる。これらコラム値に基づくレコード/タプルが、テーブル・ベースのグルーム済みトランザクション・ブロックに書き込まれ、グルームされたブロック上の各レコードに対するタプル・シーケンス番号(TSN:tuple sequence number)が生成される。このテーブルは、トランザクション処理の処理取扱いを増加させるために、システム中でトランザクション処理を取扱う諸ノードに亘って共有/シェアされる。
クラウド・コンピューティングは、最小の管理作業またはサービスのプロバイダとのやり取りで、迅速にプロビジョンしてリリースすることができる、構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン(VM:virtual machine)およびサービス)の共有のプールへの、便利でオンデマンドのネットワーク・アクセスを可能にするためのサービス・デリバリの一モデルである。このクラウド・モデルは、少なくとも5つの特徴と、少なくとも3つのサービス・モデルと、少なくとも4つの展開モデルとを含むことができる。
特徴は次の通りである。
オンデマンド・セルフサービス:クラウド・コンシューマは、サービスのプロバイダとの人間のやり取りなしに、必要な場合は自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング能力を一方的にプロビジョンすることができる。
広範なネットワーク・アクセス:ネットワークを介して諸能力が利用可能で、異種から成るシンまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を推進する標準的なメカニズムを通してアクセスされる。
リソースのプール化:プロバイダのコンピューティング・リソースは、マルチテナント・モデルを用いる複数のコンシューマにサービスするために、デマンドに従って動的に割り当ておよび再割り当てされる各種の物理的および仮想のリソースとしてプール化される。一般にコンシューマは提供されたリソースの正確な場所の制御または知識を持たない、という点で、場所無異存性の感覚があるが、抽象化のより高位レベルでは場所(例えば、国、州、またはデータ・センタ)を特定することを可能にできる。
敏速な伸縮性:諸能力は、迅速にスケール・アウトするため、場合によっては自動的に、敏速且つ伸縮自在にプロビジョンでき、且つ、迅速にスケール・インするために敏速にリリースされる。コンシューマには、プロビジョンのため利用可能な諸能力が多くの場合無制限に見え、いつでもどのような量でも購入が可能である。
計量されるサービス:クラウド・システムは、サービスの種類(例えば、ストレージ、処理、帯域幅、および有効なコンシューマ・アカウント)に適した抽象化のいずれかのレベルで、計量機能を利用することによって、リソース使用を自動的に管理し、最適化する。リソース利用は、モニタし、管理し、報告することが可能で、これにより、利用されるサービスのプロバイダとコンシューマとの双方に透明性を提供する。
サービス・モデルは次のとおりである。
サービスとしてのソフトウェア(SaaS:Software as a Service):コンシューマに提供される能力は、クラウド・インフラストラクチャ上で実行されているプロバイダのアプリケーションを使う能力である。これらのアプリケーションは、様々なクライアント・デバイスから、ウェブ・ブラウザ(例えば、ウェブベースのeメール)などのシン・クライアント・インターフェースを介してアクセス可能である。コンシューマは、限られたコンシューマ固有のアプリケーション構成設定のあり得る例外を除いて、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個別のアプリケーション機能でさえも含め、根底にあるクラウド・インフラストラクチャを管理または制御はしない。
サービスとしてのプラットフォーム(PaaS:Platform as a Service):コンシューマに提供される能力は、クラウド・インフラストラクチャ上に、プロバイダによってサポートされるプログラミング言語およびツールを使って生成された、コンシューマ生成の、またはコンシューマ取得のアプリケーションを展開する能力である。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含め、根底にあるクラウド・インフラストラクチャを管理または制御することはないが、これら展開されるアプリケーション、および、おそらくはアプリケーションのホスティング環境設定に対する制御を有する。
サービスとしてのインフラストラクチャ(IaaS:Infrastructure as a Service):コンシューマに提供される能力は、コンシューマが、処理、ストレージ、ネットワーク、およびオペレーティング・システムおよびアプリケーションを含み得る、任意のソフトウェアを展開し実行することが可能な他の基本的コンピューティング・リソースをプロビジョンする能力である。コンシューマは、根底にあるクラウド・インフラストラクチャを管理または制御することはないが、オペレーティング・システム、ストレージ、展開されるアプリケーションに対する制御、およびおそらくは選択ネットワーク・コンポーネント(例えば、ホストのファイヤウォール)への限定された制御を有する。
展開モデルは次のとおりである。
プライベート・クラウド:このクラウド・インフラストラクチャは、一組織のためだけに運営される。これは、当該組織または第三者によって管理されてよく、自組織構内に所在しても自組織構外に所在してもよい。
コミュニティ・クラウド:このクラウド・インフラストラクチャは、いくつかの組織によって共有され、共有の利害関係(例えば、任務、安全要件、指針、およびコンプライアンス配慮事項)を有する特定のコミュニティをサポートする。これは、これらの組織または第三者によって管理されてよく、これらの組織の構内に所在してもこれらの組織の構外に所在してもよい。
パブリック・クラウド:このクラウド・インフラストラクチャは、一般公衆または大きな産業グループに利用可能にされており、クラウド・サービスを販売する組織によって所有されている。
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、固有のエンティティに留まりながら、データおよびアプリケーションの可搬性(例えば、クラウド間の負荷バランスのためのクラウド・バースティング)を可能にする標準化されたまたは独自の技術によって一緒に結ばれた2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の合成体である。
クラウド・コンピューティング環境は、ステートレスネス、弱連結、モジュール性、および意味相互運用性に焦点を合わせて方向付けられたサービスである。クラウド・コンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャが在る。
ここで図1を参照すると、例示的なクラウド・コンピューティング環境50が表されている。図示のように、クラウド・コンピューティング環境50は、例えば、携帯情報端末(PDA:personal digital assistant)またはセルラ電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、もしくは車載コンピュータ・システム54Nまたはこれらの組み合わせなど、クラウド・コンシューマによって使用されるローカルのコンピューティング・デバイスが通信可能な1つ以上のクラウド・コンピューティング・ノード10を含む。ノード10は、相互に通信することができる。これらは、前述したプライベート、コミュニティ、パブリック、またはハイブリッド・クラウド、またはこれらの組み合わせなど、1つ以上のネットワークに物理的にまたは仮想的にグループ化する(図示せず)ことが可能である。これは、クラウド・コンピューティング環境50が、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを維持する必要のない、サービスとしてのインフラストラクチャ、プラットフォーム、もしくはソフトウェア、またはこれらの組み合わせを提供することを可能にする。当然のことながら、図1中に示されたコンピューティング・デバイス54A〜54Nの種類は、例示することだけを意図されたものであり、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意の種類のネットワークもしくはネットワークアドレス指定可能接続またはその両方を介して(例えば、ウェブ・ブラウザを使って)任意の種類のコンピュータ化デバイスと通信することができる。
ここで図2を参照すると、クラウド・コンピューティング環境50(図1)によって設けられる機能的抽象化層のセットが示されている。前もって当然のことながら、図2に示されたコンポーネント、層、および機能は例示だけを意図されたものであり、本発明の実施形態はこれらに限定されない。図示のように、以下の諸層および対応する機能が設けられている。
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例には、メインフレーム61、RISC(Reduced Instruction Set Computer(縮小命令セットコンピュータ))アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびに、ネットワークおよびネットワーキング・コンポーネント66が含まれる。いくつかの実施形態において、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
仮想化層70は、例として、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、および仮想クライアント75の仮想エンティティを設けることが可能な抽象化層を提供する。
一例において、管理層80は以下に記載の機能を備えることが可能である。リソース・プロビジョン81は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を提供する。計量および価格設定82は、クラウド・コンピューティング環境内でリソースが利用されるのに応じコストの追跡と、これらリソースの消費に対する課金または請求とを提供する。一例において、これらのリソースには、アプリケーション・ソフトウェア・ライセンスを含めてよい。セキュリティは、クラウド・コンシューマおよびタスクに対する身元検証、ならびにデータおよび他のリソースに対する保護を提供する。ユーザ・ポータル83は、コンシューマおよびシステム管理者に対し、クラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84は、要求されるサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス・レベル合意(SLA:Service Level Agreement)計画および達成85は、SLAに沿って将来の必要性が予期されるクラウド・コンピューティング・リソースに対する事前配置およびそれらリソースの調達を提供する。
作業負荷層90は、クラウド・コンピューティング環境で利用できる機能の例を提示している。この層から提供できる作業負荷および機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフ・サイクル管理92、仮想教室教育配信93、データ解析処理94、トランザクション処理95、およびマルチマスタ分散データ管理システムのプロセスにおけるトランザクション処理のグルーミング96が含まれる。前述のように、図2に関連して述べた上記の例は、全て単なる例示であり、本発明はこれらの例に限定されない。
当然のことながら、本明細書で説明される1つ以上の実施形態の全ての機能は、通常、クラウド環境300(図3)または処理システム400(図4)によって実行することが可能で、プログラム・コードのモジュールとともにハードウェア処理装置として有形に具現化することができる。但し、非リアルタイム処理の場合、必ずしも上記である必要ではない。むしろ、非リアルタイム処理に対しては、本明細書に記載の機能性は、図2に示された層60、70、80、および90のいずれかによって、実行/実装するもしくは可能化するまたはその両方を行うことができよう。
本開示はクラウド・コンピューティングの詳細な説明を含んでいるが、本明細書で述べる教示の実装はクラウド・コンピューティング環境に限定されないことを再言しておく。それどころか、本発明の実施形態は、現在既知のまたは今後開発される、任意の種類のクラスタ化コンピューティング環境で実装することが可能である。
図3は、一実施形態による、ネットワーク・アーキテクチャ300を表す。図3に示されるように、第一遠隔ネットワーク304および第二遠隔ネットワーク306を含む、複数の遠隔ネットワーク302が備えられている。ゲートウエイ301は、遠隔ネットワーク302と近接のネットワーク308との間を連結することができる。本ネットワーク・アーキテクチャ300の状況において、ネットワーク304、306は、以下に限らないが、LAN、インターネットなどのWAN、公衆電話交換ネットワーク(PSTN:public switched telephone network)、インターネット電話ネットワークなどを含め、それぞれ任意の形を取ることができる。
作動中、ゲートウエイ301は、遠隔ネットワーク302から近接のネットワーク308への入口点の役割を果たす。しかして、ゲートウエイ301は、ゲートウエイ301に到着した所与のデータのパケットを配信することが可能なルータとして、また、所与のパケットに対して、ゲートウエイ301を出入りする実際の通路を備えたスイッチとして、機能することができる。
さらに、近接のネットワーク308に連結された少なくとも1つのデータ・サーバ314が含まれており、これには、ゲートウエイ301を介して遠隔ネットワーク302からのアクセスが可能である。なお、データ・サーバ(単数または複数)314は、任意の種類のコンピューティング・デバイス/グループウェアを含んでよい。各データ・サーバ314には複数のユーザ・デバイス316が連結されている。かかるユーザ・デバイス316は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、ハンドヘルド・コンピュータ、プリンタ、もしくは任意の他の種類のロジック包含デバイス、またはこれらの組み合わせを含んでよい。なお、いくつかの実施形態では、ユーザ・デバイス311が任意のネットワークに直接に連結することも可能である。
周辺機器320または一連の周辺機器320、例えば、ファクシミリ・マシン、プリンタ、スキャナ、ハード・ディスク・ドライブ、ネットワーク接続のもしくはローカルのまたはその両方のストレージ・ユニットまたはシステムなどが、ネットワーク304、306、308の1つ以上に連結されてよい。なお、諸データベースもしくは追加のコンポーネントまたはその両方が、ネットワーク304、306、308に連結された任意の種類のネットワーク・エレメントとともに使用され、またはその中に組み込まれてよい。本説明の文脈において、ネットワーク・エレメントは、ネットワークの任意のコンポーネントを指すとしてよい。
いくつかのアプローチによれば、本明細書に記載の方法およびシステムは、仮想システムもしくはシステムまたはその両方とともに、もしくはそれらシステム上に、またはこれらの両方によって実装することが可能で、これらシステムは、IBM z/OS(IBM社の登録商標)環境をエミュレートするUNIX(R)システム、MICROSOFT WINDOWS(R)環境を実質的にホストするUNIX(R)システム、IBM z/OS(IBM社の登録商標)環境をエミュレートするMICROSOFT WINDOWS(R)システムなど、1つ以上の他のシステムをエミュレートする。いくつかの実施形態において、この仮想化もしくはエミュレーションまたはその両方は、VMWARE(R)ソフトウェアの使用を介して実装することが可能である。
図4は、一実施形態による、図3のユーザ・デバイス316もしくはサーバ314またはその両方に関連付けられた典型的なハードウェア・システム400の環境を示す。一例において、ハードウェア構成は、マイクロプロセッサなどの中央処理ユニット410を有するワークステーション、およびシステム・バス412を介して相互接続されたいくつかの他のユニットを含む。図4に示されたワークステーションは、ランダム・アクセス・メモリ(RAM:Random Access Memory)414、読取り専用メモリ(ROM:Read Only Memory)416、ディスク・ストレージ・ユニット420をバス412に接続するなど、周辺デバイスを接続するためのI/Oアダプタ418、キーボード424、マウス426、スピーカ428、マイクロフォン432、もしくは、タッチスクリーン、デジタル・カメラ(図示せず)などの他のユーザ・インターフェース・デバイスまたはこれらの組み合わせをバス412に接続するためのユーザ・インターフェース・アダプタ422、ワークステーションと通信ネットワーク435(例えば、データ処理ネットワーク)に接続するための通信アダプタ434、およびバス412をディスプレイ・デバイス438に接続するためのディスプレイ・アダプタ436を含むことが可能である。
一例において、ワークステーションは、MICROSOFT WINDOWS(R)オペレーティング・システム(OS:Operating System)、MAC(R)OS、UNIX(R)OSなど、それに常駐するオペレーティング・システムを有してよい。一実施形態において、システム400は、POSIX(R)ベースのファイル・システムを用いる。当然のことながら、他の例では、前述とは異なるプラットフォームおよびオペレーティング・システムに実装することが可能である。かかる他の諸例は、オブジェクト指向プログラミング手法に加えて、JAVA、XML、C、もしくはC++言語またはこれらの組み合わせで書かれたオペレーティング・システムを含んでよい。複雑なアプリケーションを開発するため用いられることが多くなってきている、オブジェクト指向プログラミング(OOP:object oriented programming)が使用されてもよい。
図5は、一実施形態による、トランザクション処理をグルーミングするために用いることが可能なシステム500を表すブロック図である。一実施形態において、システム500は、クライアント・デバイス510(例えば、携帯デバイス、スマート・デバイス、コンピューティング・システムなど)と、クラウドまたはリソース共有環境520(例えば、パブリック・クラウド・コンピューティング環境、プライベート・クラウド・コンピューティング環境、データセンタなど)と、サーバ530とを含む。一実施形態では、クライアント・デバイスには、クラウドまたはリソース共有環境520を介して、サーバ530からクラウド・サービスが提供される。
一実施形態において、システム500では、グルーミングと言われる周期的バックグラウンド処理が、マルチマスタ・システム上で実行されている複数設定(multi-statement)トランザクションからのトランザクション処理(例えば、更新、削除、挿入(UDI))を解析し、当該データのモノトニックなトランザクション読み取り一貫性を可能にする仕方で、追加専用ストレージ・ストリーム上にUDIを発行する。一実施形態では、グルーミング処理のため、マルチマスタ・システムは、現行の複数設定トランザクションのUDIをトランザクション・ローカル側ログ中に維持/保管する。トランザクションのコミットが成就された場合にだけ、トランザクション・ローカル側ログが、ログ・ストリームに追加される。グルーミング処理は、ログ・ストリームだけを読み取り、したがって、グルーミング処理は、コミットされていないトランザクションの変更を知るのを避ける。グルーミング処理を実行するスレッド(「グルーマ」とも言われる)は、前のグルーミング・サイクルがどこで終了したかを記憶するためにログ・ストリーム上にカーソルまたは表示を設ける。ログ・ストリームの、グルーマのカーソルまたは表示がポイントしている箇所の前に削除のためのマークがされる。一実施形態において、枝刈り処理とも言われる処理が、ログ・ストリーム上に進行中の読み取りオペレーションがなければ当該ストリームのその部分を削除する。前回のグルーム・サイクルの後のグルーマおよび読み取りオペレーションの両方は、したがって、まだグルームされていないログ・ストリームの読み取りを開始する。これは、データのモノリシックな読み取りをさらに確実にする。さらに、グルーミング処理は、そのグルーミング処理の開始時間より以前のタイムスタンプ(例えば、当該ログ・アイテムに対するコミット時間)を持つログ・ストリームだけを読み取り、これは、グルーミング・サイクルに対し制限のある実行時間を確実にする。
図6は、一実施形態による、マルチマスタ分散データ管理システムにおいてグルーミング処理を行うための例示のアーキテクチャ600を表す。一実施形態において、アーキテクチャ600は、アプリケーション610、タスク・コーディネータ620、解析ノード650のための実行エンジン630、トランザクション・ノード655のための実行エンジン640、およびストレージ660とを含む。一実施形態において、アプリケーション610は、わずかに旧いデータに耐性があり、最新のデータを必要とする解析アプリケーション611、および高容量トランザクション・アプリケーション612を含むことができる。一実施形態で、解析ノード650は、読取り専用オペレーションだけを取扱う。トランザクション・ノード655は、トランザクション・オペレーションをグルーミング(例えば、UDI)する役割を担う。実行エンジン640は、メモリ・デバイス646(例えば、ソリッド・ステート・ドライブ(SSD:solid state drive)、および、読み取り専用メモリ、フラッシュ・メモリ、強誘電性RAM、磁気コンピュータ・ストレージ・デバイス(例えば、ハード・ディスク・ドライブ、フレキシブル・ディスク、および磁気テープ)、光ディスク等などの不揮発性メモリ(NVM:non−volatile memory)に接続された、複数の実行エンジン645を含む。ストレージ660は、共有ファイル・システム、オブジェクト・ストアまたはその両方を含んでよい。
一実施形態において、並列処理を使ってUDIオペレーションをスピード・アップするために、アーキテクチャ600を含むマルチマスタ・システム中のテーブルが、主(単一コラムまたは混成の)キーのサブセットに基づいて、トランザクションを取扱う諸ノードに亘ってシェアまたは区分けされる。また、シェアされたテーブルは、可用性を高めるために、(構成可能な数の)複数のノード(トランザクション・ノード655)に割り当てられる。UDIオペレーションおよびデータ探索の役割を担うトランザクション・ノード655に加え、解析ノード650は解析読み取り要求に対する役割だけを担う。分散連携システムは、シェアおよび複製に関するメタ情報を管理するタスク・コーディネータ620を含み、カタログは、各テーブルに対するスキーマ情報を維持する。また、1つ以上の実施形態は、ローカル・システムのコンポーネントを関与させずに、外部の読み取り装置がマルチマスタ・システムを介して取り込まれたデータを読み取ることを可能にするが、但し、それらの読み取り装置は、UDIオペレーションを取扱うトランザクション・ノード655上に格納された最新のトランザクション・データを見ることはできないことになる。
一実施形態において、アーキテクチャ600によって取扱われる各トランザクションは、1つ以上のログ・ブロックから成るトランザクション・ローカル側ログ811(図8)中の、そのコミットされていない変更を維持する。各ログ・ブロックは、1つのテーブルだけに対するトランザクションを包含することができる。コミット時に、トランザクションは、そのトランザクション・ローカル側ログ811をログ812(図8)に追加し、該ログは、その両方がストレージ660(図8のメモリ810)に保管され、ディスク(SSD/NVM646((図8の)830))上に存続される。さらに、トランザクション・ローカル側ログ811は、可用性のため、シェアされたデータの複製を維持する役割を果たす他のトランザクション・ノード655の各々にコピーされる。シェアされたデータのどの複製も、当該シェアされたデータ(マルチマスタ)に対するいかなるトランザクション要求も処理可能であるが、これら複製の1つが、周期的にグルーミング・オペレーションまたは処理を呼び出す。このグルーミング処理は、ログ812をスキャンし、同じテーブルに対する複数の(コミットされた)トランザクションからのログ・ブロックを一緒にグループ化して、単一のテーブルからだけのデータを包含するより大きなグルーム済ブロックを生成する(例えば、図8のグルームされたデータ855を参照)。ログ・ブロックを併合するのに加え、このグルーミング・オペレーションは、データ・アイテムに対する衝突解決930(図9)をさらに行うことが可能である。グルームされたデータ・ブロック850は、次いで、追加専用ストレージ・ストリーム上にフラッシュされ、これもまた、他のノードが同様にアクセスできるように共有分散ファイル・システムである。グルーミング過程の後、グルーマは、自分が成功裏にグルームしたログレコードを、それがこれ以上リソースを占拠しないように、またグルーミングの次の過程を終了した箇所から開始できるように枝刈りする。
図7は、一実施形態による、アーキテクチャ600(図6)を含むマルチマスタ分散データ管理システム中のデータのライフ・サイクルの例700を表す。一実施形態において、データのライフは、最新データ701と旧データ702とで表される。最新データ701は、活性(最新)ゾーン710に属し、旧データはグルーム済みゾーン711に属する(例えば約1秒旧い)。トランザクション・ノード655は活性ゾーン710に属し、挿入、更新および削除のトランザクション処理720、ならびに、最新のデータを必要とする読み取り専用オペレーション721を受信する。解析ノード650はグルーム・ゾーンに711に属し、ポイント探索731、ビジネス・インテリジェント・オペレーション732、およびマシン学習(読み取り専用)オペレーション733を含む入力730を受信する。図示のように、活性ゾーン710中のデータは、それがより旧いデータになるのに応じてグルーム済みゾーン711に移動する。
図8は、一実施形態による、マルチマスタ分散データ管理システムにおいてデータをグルーミングする一例800を表す。図示のように、コミットされていない変更は、1つ以上のログ・ブロックから成るトランザクション・ローカル側ログ811の中にレコード/格納される。テーブルのログレコード815は、ログ812(持続的)に対するログ・ブロックを含む。このトランザクションは、トランザクション・ローカル側ログ811をログ812に追加し、これは、メモリ810およびディスクSSD/NVM830の両方に、保管および持続される。SSD/NVM830において、ログ812は、レコード835中で処理され、キャッシュ化データ840としてキャッシュ保管される。グルーミング処理によりもたらされたグルーム済みデータ855は、共有ファイル・システム850(または、図6のストレージ660)中に格納される。
図9は、一実施形態による、グルーミング評価プロセスに対する例示のブロック図900を表す。ハイレベルの例示ブロック図900において、このプロセスは、ログ中の各レコードに対するレコード識別子(ID)を含むテーブルに対し、テーブル・ログ・スキャン910を行うステップを含む。テーブル・ログ・スキャン910への入力は、テーブル名、および(制限のあるスキャンに対する)ログ終了タイムスタンプを含む。テーブル・ログ・スキャン910の出力は、制限のあるTSN(BTSN)群(すなわち、ログ中の各レコードに対するレコードID)を含む。ブロック920で、コラムへのロード処理が行われる。コラムのロードは、入力としてブロック910からのBSTNを取り、コラム値を出力する。一実施形態において、ブロック930で、随意的な衝突解決(例えば、データ衝突など)が行われる。ブロック940で、テーブル書込みプロセスが行われる。このテーブル書込みプロセスは、入力としてコラム値を取り、TSN(グルーム済みブロック上のレコードID)を出力する。このテーブル書込みプロセスについては、図10を参照しながら後記でさらに説明する。一実施形態において、テーブルの各インデックスに対し、書込み/更新のインデックスに対する随意的な処理が行われる。一実施形態では、ブロック950に対する入力はインデックスのコラムおよびTSNであり、出力はハッシュ値である。
図10は、一実施形態による、図9のグルーミング評価プロセス900のブロック940のための例示のテーブル書込みプロセスを表す。ブロック1010で、テーブル書込みプロセスは、テーブル・ログのスキャニングから、レコードの次の入力ストライド/バッチ/群を取得または受信する。ブロック1020で、テーブル書込みプロセスは、一意的なコミット・タイムスタンプを生成する。ブロック1030で、テーブル書込みプロセスは、諸レコードのコラムをインメモリ・バッファに追加し、グルーム済みトランザクション・ブロックに対するTSNを生成する。ブロック1040で、さらなる入力が存在するかどうか、且つバッファが満杯でないかどうかが判断される。さらなる入力が存在し、且つバッファが満杯でない場合、テーブル書込みプロセスは、ブロック1010に戻って続行する。それ以外の場合は、テーブル書込みプロセスはブロック1050に進み、インメモリ・バッファを、共有ファイル・システム、オブジェクト・ストア、またはローカル・キャッシュにフラッシュする。ブロック1060で、さらなる入力が利用可能かどうかが判断される。さらなる入力が利用可能な場合、テーブル書込みプロセスは、ブロック1010に戻って続行する。それ以外の場合は、テーブル書込みプロセスはブロック1070に進み、テーブル書込みプロセスは、分散コーディネータにグルームの終了点情報(すなわち、ログの終了点および最後のグルーム済みブロックのID)を通知する。ブロック1080で、テーブル書込みプロセスは、グルーム終了点を越えてログ・ヘッドを移動し、読み取り処理が残らなくなるまでログを枝刈りする。
図11は、一実施形態による、マルチマスタ分散データ管理システムにおけるトランザクション処理をグルーミングするためのプロセス1100に対するブロック図を表す。一実施形態において、ブロック1110で、プロセス1100は、少なくとも1つのトランザクション・ローカル側ログにおいてトランザクション処理を維持する。ブロック1120で、ログ中の各レコードに対するレコード識別子を含むテーブルに対し、テーブル・ログ・スキャンが行われる。ブロック1130で、テーブル中の各コラムに、識別子に基づいてコラム値がロードされる。ブロック1140で、これらレコードに対しTSNが生成され、コラム値に基づいて、グルーム済みトランザクション・ブロックについてのレコードがテーブル中に書込まれる。トランザクション処理の処理取扱いを増加させるために、マルチマスタ分散データ管理システム中でトランザクション処理を取り扱う諸ノードに亘って、このテーブルは共有/シェアされる。
一実施形態において、ブロック1140は、テーブルのスキャニングからの次のレコードの入力群を受信するステップと、一意的なコミット・タイムスタンプを生成するステップと、それらレコードのコラムをインメモリ・バッファに追加するステップと、グルーム済みトランザクション・ブロックに書込まれたレコードに対するTSNを生成するステップとをさらに含んでよい。ブロック1140は、さらなるレコードの入力群がなく、且つインメモリ・バッファが満杯でないと判断されると、インメモリ・バッファを、共有ファイル・システム、オブジェクト・ストア、またはローカル・キャッシュのうちの少なくとも1つに向けフラッシュするステップをさらに含む。上記以外の場合、プロセス1100は、テーブルのスキャニングからの次のレコードの入力群の受信に戻って続行する。
一実施形態において、プロセス1100は、さらなるレコードの入力群が利用できない場合、分散コーディネータにグルームの終了点情報を通知し、グルーム終了点を越えてログ・ヘッドを移動し、読み取り処理が残らなくなるまでログを枝刈りするステップをさらに含むことができる。
一実施形態で、プロセス1100に対するトランザクション処理は、更新、削除、および挿入オペレーションを含む。トランザクション・コミットが成就されると、トランザクション・ローカル側ログがログ・ストリームに追加される。グルーミング処理は、このログだけを読み取り、コミットされていないトランザクション変更は回避する。グルーミング処理を実行するスレッドは、前のグルーミング・サイクルのしるしとして、ログ上にカーソルを維持する。
一実施形態において、プロセス1100に対し、ログ・ストリーム中で、カーソルがポイントしている位置の前のポイントに削除のためのマークがされる。枝刈り処理は、ログ・ストリームの或る部分に進行中の読み取りオペレーションがないと判断すると、ログ・ストリームのその部分を削除する。グルーミング処理および読み取りオペレーションの両方は、データの読み取りオペレーションがモノトニックであるように前のグルーミング・サイクルに後続する。グルーミング処理は、グルーミング・サイクルが制限のある実行時間を有するように、グルーミング処理の開始時間より前のコミット・タイムスタンプを持つログ・ストリームだけを読み取る。
一実施形態において、プロセス1100は、周期的なバックグラウンド処理によるグルーミング処理の後、更新されたレコードが、最新のデータを必要とする読み取り処理によってまたは特定の期間からのデータを読み取る読み取り処理によって無視されるように、これら更新されたレコードが終了タイムスタンプでフラグされるように設けることができる。
一実施形態において、プロセス1100は、マルチマスタ分散データ管理システムが、ノードにローカルな第一ストレージ・ティアと、分散共有ファイル・システムまたはオブジェクト・ストアを含む第二ストレージ・ティアとを含むストレージの2つのティア上で動作することを含んでよい。第一ストレージ・ティアは、前回のサイクルでグルーミング処理を終了した箇所からグルーミングを開始するため、リカバリ過程でグルーミング処理によって使われることになるログの持続的バージョンを維持し、データへの迅速なアクセスを可能にするため、第二ストレージ・ティアの頻繁にアクセスされる部分をキャッシュ保管する。第二ストレージ・ティアは、データ・ストリームを維持し、そのデータ・ストリームを、マルチマスタ分散データ管理システム中のノードの全てに対し利用可能にする。
当業者には当然のことながら、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具現化することができる。したがって、本発明の態様は、全体がハードウェアの実施形態、全体がソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、あるいは、ソフトウェア態様およびハードウェア態様を組み合わせた実施形態の形を取ることができ、これらは一般に本明細書では全て「回路」、「モジュール」、または「システム」と称することがある。さらに、本発明の態様は、コンピュータ可読プログラム・コードが具現化されている一つ以上のコンピュータ可読媒体(単数または複数)中に具現化されたコンピュータ・プログラム製品の形を取ることも可能である。
一つ以上のコンピュータ可読媒体の任意の組み合わせを用いることが可能である。このコンピュータ可読媒体は、コンピュータ可読信号媒体であっても、コンピュータ可読ストレージ媒体であってもよい。コンピュータ可読ストレージ媒体は、例えば、以下に限らないが、電子的、磁気的、光学的、電磁気的、赤外的、または半導体の、システム、装置、またはデバイス、あるいは前述の任意の適切な組み合わせであってよい。コンピュータ可読ストレージ媒体のさらに具体的な例(非包括的リスト)には、一つ以上の配線を有する電気接続、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去およびプログラマブル読み取り専用メモリ(EPROM:erasable programmable read−only memoryまたはフラッシュ・メモリ)、光ファイバ、携帯型コンパクトディスク読み取り専用メモリ(CD−ROM:compact disc read−only memory)、光ストレージ・デバイス、磁気ストレージ・デバイス、または前述の任意の適切な組み合わせが含まれよう。本明細書の文脈において、コンピュータ可読ストレージ媒体は、命令実行システム、装置、もしくはデバイスによって、またはこれらに関連させて使用するためのプログラムを、包含または格納できる任意の有形媒体であってよい。
コンピュータ可読信号媒体には、例えばベースバンド中にまたは搬送波の一部として具現化されたコンピュータ可読プログラム・コードを有する、伝播データ信号を含めることができる。かかる伝播信号は、以下に限らないが、電磁気的、光学的、またはこれらの任意の適切な組み合わせを含め、さまざまな形態の任意の形を取ることが可能である。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではないが、命令実行システム、装置、もしくはデバイスによって、またはこれらに関連させて使用するためのプログラムの通信、伝播、または伝送が可能な任意のコンピュータ可読媒体であってよい。
コンピュータ可読媒体上に具現化されたプログラム・コードは、以下に限らないが、無線、有線、光ファイバケーブル、RFなど、または前述の任意の適切な組み合わせを含め、任意の適切な媒体を用いて送信することができる。
本発明の態様のオペレーションを実行するためのコンピュータ・プログラム・コードは、Java(R)、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および、“C”プログラミング言語または類似のプログラミング言語などの従来式手続き型プログラミング言語を含め、一つ以上のプログラミング言語の任意の組み合わせで記述することができる。このプログラム・コードは、スタンドアロン・ソフトウェア・パッケージとしてユーザのコンピュータで専ら実行することも、ユーザのコンピュータで部分的に実行することもでき、一部をユーザのコンピュータで一部を遠隔コンピュータで実行することもでき、あるいは遠隔のコンピュータまたはサーバで専ら実行することもできる。後者の場合は、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介して、遠隔コンピュータをユーザのコンピュータに接続することもでき、あるいは(例えばインターネット・サービス・プロバイダを使いインターネットを介し)外部のコンピュータへの接続を行うことも可能である。
本発明の実施形態による方法、装置(システム)およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照しながら、本発明の態様が上記で説明されている。当然のことながら、フローチャート図もしくはブロック図またはその両方の各ブロック、および、フローチャート図もしくはブロック図またはその両方中のブロックの組み合わせは、コンピュータ・プログラム命令によって実装することが可能である。これらのコンピュータ・プログラム命令を、汎用コンピュータ、特殊用途コンピュータ、またはマシンを形成する他のプログラマブル・データ処理装置のプロセッサに提供し、そのコンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックもしくはブロック群中に特定されている機能群/動作群を実装するための手段を生成するようにすることができる。
また、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに対し特定の仕方で機能するよう命令することが可能なこれらのコンピュータ・プログラム命令を、コンピュータ可読媒体に格納し、そのコンピュータ可読媒体に格納された命令が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に特定されている機能/動作を実装する命令群を包含する製造品を作り出すようにすることができる。
さらに、コンピュータ・プログラム命令を、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードし、そのコンピュータ上、他のプログラマブル装置上、または他のデバイス上で一連のオペレーション・ステップを実施させて、コンピュータ実装のプロセスを作り出し、当該コンピュータ上もしくは他のプログラマブル装置上で実行される命令が、フローチャートもしくはブロック図またはその両方のブロックもしくはブロック群中に特定されている機能群/動作群を実装するためのプロセスを提供するようにすることも可能である。
図面のフローチャートおよびブロック図は、本発明の様々な実施形態による、システム、方法、およびコンピュータ・プログラム製品から可能となる実装のアーキテクチャ、機能性、およびオペレーションを示している。この点に関し、フローチャートまたはブロック図中の各ブロックは、特定の論理機能(単数または複数)を実装するための一つ以上の実行可能命令を含む、モジュール、セグメント、または命令の部分を表し得る。また、一部の別の実装においては、ブロック中に記載された機能が、図面に記載された順序から外れて行われ得る。例えば、連続して示された2つのブロックが、関与する機能性に応じ、実際にはほぼ同時に実行されることがあり、時にはこれらのブロックが逆の順序で実行されることもあり得る。さらに、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方中のブロック群の組み合わせは、特定の機能または動作を実施する特殊用途ハードウェア・ベースのシステム、または特殊用途ハードウェアとコンピュータ命令との組み合わせによって実装可能なことにも留意すべきである。
特許請求の範囲中の単数形の要素への言及は、明示でそう述べられていない限り、「唯一無二」でなく、むしろ「1つ以上」を意味することが意図されている。当業者には既知のまたは今後知られることになる、前述の例示的な実施形態の要素の全ての構造的および機能的等価物は、本特許請求の範囲に網羅されることが意図されている。本明細書中のどの請求要素も、その要素が語句「means for(のための手段)」または「step for(のためのステップ)」を用いて明示で述べられている場合を除き、合衆国第35法典第112条第6パラグラフの条項の下で解釈されるべきではない。
本明細書で使用する用語は、単に特定の実施形態を説明する目的のためのものであり、本発明を限定することは意図されていない。本明細書で用いられる、単数形「或る(“a”、“an”)」、および「該(“the”)」は、文脈上明瞭に別途に示されている場合を除き、複数形も同じように含むことが意図されている。さらに、当然のことながら本明細書で用いられる「含む(“comprise”)」もしくは「含んでいる(“comprising”)」またはその両方は、述べられた特徴、完全体(integer)、ステップ、オペレーション、要素、もしくはコンポーネント、またはこれらの組み合わせの存在を特定するが、一つ以上の他の特徴、完全体、ステップ、オペレーション、要素、コンポーネント、もしくはこれらの群、またはこれらの組み合わせの存在または追加を排除するものではない。
添付の請求項中のミーンズ・プラス・ファンクションまたはステップ・プラス・ファンクションの要素全ての、対応する構造、材料、動作および等価物は、具体的に請求された他の請求要素と組み合わせてその機能を実施するための、一切の構造、材料または動作を包含することが意図されている。本発明の記述は、例示および説明の目的で提示されたものであり、網羅的であることも、または本発明を開示した形態に限定することも意図されていない。当業者には、本発明の範囲および趣旨から逸脱することのない多くの修改および別形が明白であろう。諸実施形態は、本発明の原理および実際的な応用を最善に説明し、他の当業者が、意図する特定の用途に適したさまざまな修改を加えた様々な実施形態に関して、本発明を理解できるように選択され説明されたものである。

Claims (20)

  1. マルチマスタ分散データ管理システムにおいてトランザクション処理をグルーミングする方法であって、前記方法は、
    少なくとも1つのトランザクション・ローカル側ログにおいてトランザクション処理を維持するステップと、
    ログ中の各レコードに対するレコード識別子を含むテーブルに対し、テーブル・ログ・スキャンを実行するステップと、
    前記識別子に基づいて、前記テーブル中の各コラムにコラム値をロードするステップと、
    前記コラム値に基づいて、前記レコードに対するタプル・シーケンス番号を生成し、グルーム済みトランザクション・ブロック上の前記レコードを前記テーブルに書込むステップと、
    を含み、
    前記テーブルが、前記トランザクション処理の処理取扱いを増加するために、前記マルチマスタ分散データ管理システム中でトランザクション処理を取扱う諸ノードに亘ってシェアされる、
    方法。
  2. 前記書込むステップが、
    前記テーブルのスキャニングから、次のレコードの入力群を受信するステップと、
    一意的コミット・タイムスタンプを生成するステップと、
    前記レコードのコラムをインメモリ・バッファに追加するステップと、
    前記グルーム済みトランザクション・ブロックに書込まれた前記レコードに対し前記タプル・シーケンス番号を生成するステップと、
    をさらに含む、請求項1に記載の方法。
  3. さらなるレコードの入力群がなく、且つ前記インメモリ・バッファが満杯でないと判断されると、前記インメモリ・バッファを、共有ファイル・システム、オブジェクト・ストア、およびローカル・キャッシュのうちの少なくとも1つに向けフラッシュする、請求項2に記載の方法。
  4. さらなるレコードの入力群が利用できない場合、分散コーディネータにグルームの終了点情報を通知するステップと、
    前記グルーム終了点を越えてログ・ヘッドを移動するステップと、
    読み取り処理が残らなくなるまで前記ログを枝刈りするステップと、
    をさらに含む、請求項3に記載の方法。
  5. 前記トランザクション処理が、更新、削除、および挿入オペレーションを含み、
    トランザクション・コミットが成就されると、前記トランザクション・ローカル側ログが前記ログのストリームに追加され、
    グルーミング処理は、前記ログだけを読み取り、コミットされていないトランザクション変更は回避し、且つ
    前記グルーミング処理を実行するスレッドは、前のグルーミング・サイクルのしるしとして、前記ログ上にカーソルを維持する、
    請求項1に記載の方法。
  6. 前記ログ・ストリーム中の前記カーソルがポイントしている位置の前に削除のためのマークがされ、
    前記ログ・ストリームの或る部分に進行中の読み取りオペレーションがないと判断されると、枝刈り処理がログ・ストリームの前記部分を削除し、且つ
    前記グルーミング処理および読み取りオペレーションの両方が、データの読み取りオペレーションがモノトニックであるように、前記前のグルーミング・サイクルに後続する、
    請求項5に記載の方法。
  7. 前記グルーミング処理は、グルーミング・サイクルが制限のある実行時間を有するように、前記グルーミング処理の開始時間より前のコミット・タイムスタンプを持つログ・ストリームだけを読み取る、
    請求項6に記載の方法。
  8. 周期的なバックグラウンド処理による前記グルーミング処理の後、更新されたレコードが、最新のデータを必要とする読み取り処理によってまたは特定の期間からのデータを読み取る読み取り処理によって無視されるように、前記更新されたレコードが終了タイムスタンプでフラグされる、
    請求項7に記載の方法。
  9. 前記マルチマスタ分散データ管理システムが、ノードにローカルな第一ストレージ・ティアと、分散共有ファイル・システムまたはオブジェクト・ストアを含む第二ストレージ・ティアとを含むストレージの2つのティア上で動作し、
    前記第一ストレージ・ティアは、前回のサイクルで前記グルーミング処理を終了した箇所からグルーミングを開始するため、リカバリ過程で前記グルーミング処理によって使われることになるログの持続的バージョンを維持し、データへの迅速なアクセスを可能にするため、前記第二ストレージ・ティアの頻繁にアクセスされる部分をキャッシュに格納し、且つ
    前記第二ストレージ・ティアは、前記データ・ストリームを維持し、前記マルチマスタ分散データ管理システム中のノードの全てに、前記データ・ストリームを利用可能にする、
    請求項7に記載の方法。
  10. マルチマスタ分散データ管理システムにおいてトランザクション処理をグルーミングするためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、具現化されたプログラム命令を内に有するコンピュータ可読ストレージ媒体を含み、前記プログラム命令は、プロセッサによって実行可能であり、前記プロセッサに、
    前記プロセッサによって、少なくとも1つのトランザクション・ローカル側ログにおいてトランザクション処理を維持させ、
    前記プロセッサによって、ログ中の各レコードに対するレコード識別子を含むテーブルに対し、テーブル・ログ・スキャンを実行させ、
    前記プロセッサによって、前記識別子に基づいて、前記テーブル中の各コラムにコラム値をロードさせ、
    前記プロセッサによって、前記コラム値に基づいて、前記レコードそれぞれに対するタプル・シーケンス番号を生成させ、グルーム済みトランザクション・ブロック上の前記レコードを前記テーブルに書込ませ、
    前記テーブルが、前記トランザクション処理の処理取扱いを増加するために、前記マルチマスタ分散データ管理システム中でトランザクション処理を取扱う諸ノードに亘ってシェアされる、
    コンピュータ・プログラム製品。
  11. 前記書込みが、前記プロセッサに、
    前記プロセッサによって、前記テーブルのスキャニングから、次のレコードの入力群を受信させ、
    前記プロセッサによって、一意的コミット・タイムスタンプを生成させ、
    前記プロセッサによって、前記レコードのコラムをインメモリ・バッファに追加させ、且つ
    前記プロセッサによって、前記グルーム済みトランザクション・ブロックに書込まれた前記レコードに対し前記タプル・シーケンス番号を生成させる、
    ため、前記プロセッサによって実行可能なプログラム命令をさらに含む、請求項10に記載のコンピュータ・プログラム製品。
  12. さらなるレコードの入力群がなく、且つ前記インメモリ・バッファが満杯でないと判断されると、前記インメモリ・バッファを、共有ファイル・システム、オブジェクト・ストア、およびローカル・キャッシュのうちの少なくとも1つに向けフラッシュする、請求項11に記載のコンピュータ・プログラム製品。
  13. 前記書込みが、前記プロセッサに、
    さらなるレコードの入力群が利用できない場合、前記プロセッサによって、分散コーディネータにグルームの終了点情報を通知させ、
    前記プロセッサによって、前記グルーム終了点を越えてログ・ヘッドを移動させ、且つ
    前記プロセッサによって、読み取り処理が残らなくなるまで前記ログを枝刈りさせる、
    ため、前記プロセッサによって実行可能なプログラム命令をさらに含む、請求項12に記載のコンピュータ・プログラム製品。
  14. 前記トランザクション処理が、更新、削除、および挿入オペレーションを含み、
    トランザクション・コミットが成就されると、前記トランザクション・ローカル側ログがログ・ストリームに追加され、
    グルーミング処理は、前記ログだけを読み取り、コミットされていないトランザクション変更は回避し、
    前記グルーミング処理を実行するスレッドは、前のグルーミング・サイクルのしるしとして、前記ログ上にカーソルを維持し、且つ
    前記ログ・ストリーム中の前記カーソルがポイントしている位置の前に削除のためのマークがされ、
    前記ログ・ストリームの或る部分に進行中の読み取りオペレーションがないと判断されると、枝刈り処理がログ・ストリームの前記部分を削除し、且つ
    前記グルーミング処理および読み取りオペレーションの両方が、データの読み取りオペレーションがモノトニックであるように、前記前のグルーミング・サイクルに後続する、
    請求項10に記載のコンピュータ・プログラム製品。
  15. 前記グルーミング処理が、グルーミング・サイクルが制限のある実行時間を有するように、前記グルーミング処理の開始時間より前のコミット・タイムスタンプを持つログ・ストリームだけを読み取り、
    周期的なバックグラウンド処理による前記グルーミング処理の後、更新されたレコードが、最新のデータを必要とする読み取り処理によってまたは特定の期間からのデータを読み取る読み取り処理によって無視されるように、前記更新されたレコードが終了タイムスタンプでフラグされ、
    前記マルチマスタ分散データ管理システムが、ノードにローカルな第一ストレージ・ティアと、分散共有ファイル・システムまたはオブジェクト・ストアを含む第二ストレージ・ティアとを含むストレージの2つのティア上で動作し、
    前記第一ストレージ・ティアは、前回のサイクルで前記グルーミング処理を終了した箇所からグルーミングを開始するため、リカバリ過程で前記グルーミング処理によって使われることになるログの持続的バージョンを維持し、データへの迅速なアクセスを可能にするため、前記第二ストレージ・ティアの頻繁にアクセスされる部分をキャッシュに格納し、且つ
    前記第二ストレージ・ティアは、前記データ・ストリームを維持し、前記マルチマスタ分散データ管理システム中のノードの全てに、前記データ・ストリームを利用可能にする、
    請求項14に記載のコンピュータ・プログラム製品。
  16. 命令を格納するように構成されたメモリと、
    少なくとも1つのトランザクション・ローカル側ログにおいてトランザクション処理を維持し、ログ中の各レコードに対するレコード識別子を含むテーブルに対しテーブル・ログ・スキャンを実行し、前記識別子に基づいて、前記テーブル中の各コラムにコラム値をロードし、前記レコードに対するタプル・シーケンス番号を生成し、前記コラム値に基づいて、グルーム済みトランザクション・ブロック上のレコードを前記テーブルに書込む、
    ため、前記命令を実行するように構成されたプロセッサと、
    を含む装置であって、
    前記テーブルが、前記トランザクション処理の処理取扱いを増加するために、マルチマスタ分散データ管理システム中でトランザクション処理を取扱う諸ノードに亘ってシェアされる、
    装置。
  17. 前記書込みが、
    前記テーブルのスキャニングから、次のレコードの入力群を受信するステップと、
    一意的コミット・タイムスタンプを生成するステップと、
    前記レコードのコラムをインメモリ・バッファに追加するステップと、
    前記グルーム済みトランザクション・ブロックに書込まれた前記レコードに対し前記タプル・シーケンス番号を生成するステップと、
    をさらに含み、
    さらなるレコードの入力群がなく、且つ前記インメモリ・バッファが満杯でないと判断されると、前記インメモリ・バッファを、共有ファイル・システム、オブジェクト・ストア、およびローカル・キャッシュのうちの少なくとも1つに向けフラッシュする、
    請求項16に記載の装置。
  18. 前記プロセッサが、
    さらなるレコードの入力群が利用できない場合、分散コーディネータにグルームの終了点情報を通知し、
    前記グルーム終了点を越えてログ・ヘッドを移動し、且つ
    読み取り処理が残らなくなるまで前記ログを枝刈りする、
    ための命令を実行するように構成される、請求項17に記載の装置。
  19. 前記トランザクション処理が、更新、削除、および挿入オペレーションを含み、
    トランザクション・コミットが成就されると、前記トランザクション・ローカル側ログがログ・ストリームに追加され、
    グルーミング処理は、前記ログだけを読み取り、コミットされていないトランザクション変更は回避し、且つ
    前記グルーミング処理を実行するスレッドは、前のグルーミング・サイクルのしるしとして、前記ログ上にカーソルを維持し、
    前記ログ・ストリーム中の前記カーソルがポイントしている位置の前に削除のためのマークがされ、
    前記ログ・ストリームの或る部分に進行中の読み取りオペレーションがないと判断されると、枝刈り処理がログ・ストリームの前記部分を削除し、
    前記グルーミング処理および読み取りオペレーションの両方は、データの読み取りオペレーションがモノトニックであるように、前記前のグルーミング・サイクルに後続する、
    請求項18に記載の装置。
  20. 前記グルーミング処理は、グルーミング・サイクルが制限のある実行時間を有するように、前記グルーミング処理の開始時間より前のコミット・タイムスタンプを持つログ・ストリームだけを読み取り、
    周期的なバックグラウンド処理による前記グルーミング処理の後、更新されたレコードが、最新のデータを必要とする読み取り処理によってまたは特定の期間からのデータを読み取る読み取り処理によって無視されるように、前記更新されたレコードが終了タイムスタンプでフラグされ、
    前記マルチマスタ分散データ管理システムが、ノードにローカルな第一ストレージ・ティアと、分散共有ファイル・システムまたはオブジェクト・ストアを含む第二ストレージ・ティアとを含むストレージの2つのティア上で動作し、
    前記第一ストレージ・ティアは、前回のサイクルで前記グルーミング処理を終了した箇所からグルーミングを開始するため、リカバリ過程で前記グルーミング処理によって使われることになるログの持続的バージョンを維持し、データへの迅速なアクセスを可能にするため、前記第二ストレージ・ティアの頻繁にアクセスされる部分をキャッシュに格納し、且つ
    前記第二ストレージ・ティアは、前記データ・ストリームを維持し、前記マルチマスタ分散データ管理システム中のノードの全てに、前記データ・ストリームを利用可能にする、
    請求項19に記載の装置。
JP2020542134A 2018-02-28 2019-02-26 マルチマスタ分散データ管理システムにおけるトランザクション処理 Active JP7221975B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/908,437 2018-02-28
US15/908,437 US10430100B2 (en) 2018-02-28 2018-02-28 Transactional operations in multi-master distributed data management systems
PCT/IB2019/051521 WO2019166940A2 (en) 2018-02-28 2019-02-26 Transactional operations in multi-master distributed data management systems

Publications (2)

Publication Number Publication Date
JP2021515294A true JP2021515294A (ja) 2021-06-17
JP7221975B2 JP7221975B2 (ja) 2023-02-14

Family

ID=67684520

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020542134A Active JP7221975B2 (ja) 2018-02-28 2019-02-26 マルチマスタ分散データ管理システムにおけるトランザクション処理

Country Status (6)

Country Link
US (2) US10430100B2 (ja)
JP (1) JP7221975B2 (ja)
CN (1) CN111801661B (ja)
DE (1) DE112019000321T5 (ja)
GB (1) GB2586373B (ja)
WO (1) WO2019166940A2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10116436B1 (en) * 2017-09-26 2018-10-30 Intel Corporation Techniques for preventing memory timing attacks
US10430100B2 (en) * 2018-02-28 2019-10-01 International Business Machines Corporation Transactional operations in multi-master distributed data management systems
US11182356B2 (en) * 2019-05-23 2021-11-23 International Business Machines Corporation Indexing for evolving large-scale datasets in multi-master hybrid transactional and analytical processing systems
US10956062B2 (en) * 2019-07-09 2021-03-23 International Business Machines Corporation Aggregating separate data within a single data log wherein single data log is divided in a plurality of blocks assigned to plurality of different streams
SG11202002364TA (en) 2019-09-12 2020-04-29 Alibaba Group Holding Ltd Log-structured storage systems
EP3673376B1 (en) 2019-09-12 2022-11-30 Advanced New Technologies Co., Ltd. Log-structured storage systems
CN116756110A (zh) 2019-09-12 2023-09-15 创新先进技术有限公司 日志结构存储系统
CN111183450B (zh) 2019-09-12 2024-04-19 创新先进技术有限公司 日志结构存储系统
US10942852B1 (en) 2019-09-12 2021-03-09 Advanced New Technologies Co., Ltd. Log-structured storage systems
SG11202002614XA (en) 2019-09-12 2020-04-29 Alibaba Group Holding Ltd Log-structured storage systems
WO2019228569A2 (en) 2019-09-12 2019-12-05 Alibaba Group Holding Limited Log-structured storage systems
SG11202002588RA (en) * 2019-09-12 2020-04-29 Alibaba Group Holding Ltd Log-structured storage systems
WO2019233500A2 (en) 2019-09-12 2019-12-12 Alibaba Group Holding Limited Log-structured storage systems
CN113076313B (zh) * 2021-03-29 2022-06-07 福建新大陆通信科技股份有限公司 一种应急广播数据仓储方法
CN113918654B (zh) * 2021-12-07 2022-04-01 深圳前海微众银行股份有限公司 一种区块数据提交的方法及装置
CN114201551A (zh) * 2021-12-07 2022-03-18 建信金融科技有限责任公司 数据存储方法和数据存储装置
CN116955510B (zh) * 2023-06-06 2024-05-14 易智瑞信息技术有限公司 基于数据湖的空间数据版本化管理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0535552A (ja) * 1991-08-01 1993-02-12 Casio Comput Co Ltd フアイル管理装置
JP2005190385A (ja) * 2003-12-26 2005-07-14 Fujitsu Ltd ディスクキャッシュ装置
US20080162518A1 (en) * 2007-01-03 2008-07-03 International Business Machines Corporation Data aggregation and grooming in multiple geo-locations
JP2009282746A (ja) * 2008-05-22 2009-12-03 Fujitsu Ltd データ管理プログラム、データ管理方法、及びデータ管理装置
JP2014532227A (ja) * 2011-09-30 2014-12-04 ピュア・ストレージ・インコーポレイテッド ストレージシステムにおける可変長符号化

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060112152A1 (en) 2004-11-22 2006-05-25 Microsoft Corporation Smart patching by targeting particular prior versions of a file
US20070289028A1 (en) 2006-06-12 2007-12-13 Software Spectrum, Inc. Time Bound Entitlement for Digital Content Distribution Framework
US8631397B2 (en) 2008-03-31 2014-01-14 Microsoft Corporation Virtualized application image patching
US8200614B2 (en) 2008-04-30 2012-06-12 SAP France S.A. Apparatus and method to transform an extract transform and load (ETL) task into a delta load task
CN101382949B (zh) * 2008-10-28 2011-09-07 阿里巴巴集团控股有限公司 一种数据库表的管理方法及装置
US8762333B2 (en) 2009-07-08 2014-06-24 Pivotal Software, Inc. Apparatus and method for read optimized bulk data storage
US8725782B2 (en) * 2011-04-25 2014-05-13 Microsoft Corporation Virtual disk storage techniques
US9519555B2 (en) * 2011-05-23 2016-12-13 Microsoft Technology Licensing, Llc Synchronous replication in a distributed storage environment
US9747293B2 (en) 2012-02-28 2017-08-29 Deep Information Sciences, Inc. Method and system for storage and retrieval of information
US9031911B2 (en) 2012-06-05 2015-05-12 International Business Machines Corporation Preserving past states of file system nodes
EP2909746B1 (en) 2012-10-22 2019-12-18 Ab Initio Technology LLC Profiling data with source tracking
US9477557B2 (en) * 2013-03-28 2016-10-25 Microsoft Technology Licensing, Llc Transaction processing using torn write detection
US9201738B2 (en) 2013-08-14 2015-12-01 Globalfoundries Inc. Method, computer readable storage medium and computer system for obtaining snapshots of data
EP3195117B1 (en) * 2014-09-19 2020-12-02 Amazon Technologies Inc. Automated configuration of log-coordinated storage groups
US10031934B2 (en) * 2014-09-30 2018-07-24 International Business Machines Corporation Deleting tuples using separate transaction identifier storage
US9736243B2 (en) 2014-12-12 2017-08-15 Microsoft Technology Licensing, Llc Multiple transaction logs in a distributed storage system
US10169439B2 (en) 2015-06-19 2019-01-01 Sap Se Multi-source asynchronous table replication
US9935973B2 (en) 2015-12-16 2018-04-03 Carbonite, Inc. Systems and methods for automatic detection of malicious activity via common files
US11157517B2 (en) * 2016-04-18 2021-10-26 Amazon Technologies, Inc. Versioned hierarchical data structures in a distributed data store
US10187249B2 (en) 2016-04-29 2019-01-22 Cisco Technology, Inc. Distributed metric data time rollup in real-time
US11442823B2 (en) * 2016-06-03 2022-09-13 International Business Machines Corporation Transaction consistency query support for replicated data from recovery log to external data stores
CN107547606B (zh) * 2016-06-29 2021-01-26 中兴通讯股份有限公司 数据处理方法、集群管理器、资源管理器、数据处理系统
US10761946B2 (en) * 2017-02-10 2020-09-01 Sap Se Transaction commit protocol with recoverable commit identifier
US10430100B2 (en) * 2018-02-28 2019-10-01 International Business Machines Corporation Transactional operations in multi-master distributed data management systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0535552A (ja) * 1991-08-01 1993-02-12 Casio Comput Co Ltd フアイル管理装置
JP2005190385A (ja) * 2003-12-26 2005-07-14 Fujitsu Ltd ディスクキャッシュ装置
US20080162518A1 (en) * 2007-01-03 2008-07-03 International Business Machines Corporation Data aggregation and grooming in multiple geo-locations
JP2009282746A (ja) * 2008-05-22 2009-12-03 Fujitsu Ltd データ管理プログラム、データ管理方法、及びデータ管理装置
JP2014532227A (ja) * 2011-09-30 2014-12-04 ピュア・ストレージ・インコーポレイテッド ストレージシステムにおける可変長符号化

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
増永 良文: "日本のデータベース研究最前線 第33回 インメモリRDBに最適なメモリアクセスの技法", DB MAGAZINE, vol. 第17巻 第1号, JPN6022038761, 1 May 2007 (2007-05-01), JP, pages 146 - 147, ISSN: 0004873216 *

Also Published As

Publication number Publication date
GB2586373A (en) 2021-02-17
WO2019166940A2 (en) 2019-09-06
DE112019000321T5 (de) 2020-10-08
US20190265891A1 (en) 2019-08-29
US20190317666A1 (en) 2019-10-17
US10430100B2 (en) 2019-10-01
CN111801661B (zh) 2024-05-24
JP7221975B2 (ja) 2023-02-14
GB202014833D0 (en) 2020-11-04
WO2019166940A3 (en) 2019-10-17
US11119678B2 (en) 2021-09-14
GB2586373B (en) 2022-04-27
CN111801661A (zh) 2020-10-20

Similar Documents

Publication Publication Date Title
JP7221975B2 (ja) マルチマスタ分散データ管理システムにおけるトランザクション処理
JP6188732B2 (ja) マルチテナント環境におけるテナント固有のデータ・セットを管理するための、コンピュータで実施される方法、コンピュータ・プログラム製品、およびシステム
US10725976B2 (en) Fast recovery using self-describing replica files in a distributed storage system
US20210232554A1 (en) Resolving versions in an append-only large-scale data store in distributed data management systems
JP7228321B2 (ja) 時系列順のアウトオブプレース更新のためのシステム、時系列順のアウトオブプレース更新のための方法、および時系列順のアウトオブプレース更新のためのコンピュータ・プログラム
US11150981B2 (en) Fast recovery from failures in a chronologically ordered log-structured key-value storage system
US10552404B2 (en) Retrospective snapshots in log-structured storage systems
US10140054B2 (en) Retrospective snapshots in log structured storage systems
US10346422B2 (en) Use of proxy objects for integration between a content management system and a case management system
US11163636B2 (en) Chronologically ordered log-structured key-value store from failures during garbage collection
US11416468B2 (en) Active-active system index management
US11249967B1 (en) Database access performance improvement
US11294892B2 (en) Virtual archiving of database records

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210413

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210721

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220502

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221208

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: 20230124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230202

R150 Certificate of patent or registration of utility model

Ref document number: 7221975

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150