JP6280872B2 - モジュール式ブロックおよび関連付けられたログファイルを伴う分散型データベース - Google Patents

モジュール式ブロックおよび関連付けられたログファイルを伴う分散型データベース Download PDF

Info

Publication number
JP6280872B2
JP6280872B2 JP2014551315A JP2014551315A JP6280872B2 JP 6280872 B2 JP6280872 B2 JP 6280872B2 JP 2014551315 A JP2014551315 A JP 2014551315A JP 2014551315 A JP2014551315 A JP 2014551315A JP 6280872 B2 JP6280872 B2 JP 6280872B2
Authority
JP
Japan
Prior art keywords
master node
data
database
modular block
modular
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
JP2014551315A
Other languages
English (en)
Other versions
JP2015504218A5 (ja
JP2015504218A (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 JP2015504218A publication Critical patent/JP2015504218A/ja
Publication of JP2015504218A5 publication Critical patent/JP2015504218A5/ja
Application granted granted Critical
Publication of JP6280872B2 publication Critical patent/JP6280872B2/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/2282Tablespace storage structures; 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • 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/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • 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
    • 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
    • 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
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices

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)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

(関連出願の引用)
本願は、米国特許出願第13/345,620号(2012年1月6日出願、名称“Distributed Database with Modular Blocks and Associated Log Files”)を基礎とする優先権を主張する。該出願の内容は、参照により本明細書に引用される。
本願は、以下の同時出願され、共有に係る特許出願に関連する:
名称「Time Stamp Bounded Addition of Data to an Append−Only Distributed Database Table」、第13/345,621号、2012年1月6日出願、
名称「Logical Representation of Distributed Database Table Updates in an Append−Only Log File」、第13/345,625号、2012年1月6日出願、および、
名称「Distributed Database with Mappings Between Append−Only Files and Repartitioned Files」、第13/345,626号、2012年1月6日出願。
(発明の分野)
本発明は、概して、ソフトウェアベースのデータストレージおよび読み出しに関する。より具体的には、本発明は、モジュール式ブロックおよび関連付けられたログファイルを伴う分散型データベースに関する。
分散型データベースは、データのパーティションが、個別の計算リソースにわたって分散される、データベースである。分散型データベースは、同一の物理的場所に位置する、複数のコンピュータ内に実装され得、または相互接続されたコンピュータのネットワークを経由して、離散され得る。分散型データベースは、インターネット、企業内イントラネットまたはエクストラネット、あるいは他のネットワーク上のネットワークサーバ上に常駐することができる。
分散型データベースは、好ましいモジュール性、信頼性、可用性およびスケーラビリティ特性を有するが、依然として、これらの好ましい特性を向上させるための技法を開発することが望ましい。
システムは、マスタノードと、マスタノードによって制御される、ワーカノードとを含む。各ワーカノードは、分散型データベースの25個以上のモジュール式ブロックを記憶して、各モジュール式ブロックは、5Gバイト以下のサイズを有し、関連付けられたログファイルを有する。
本発明は、例えば、以下を提供する。
(項目1)
システムであって、
マスタノードと、
前記マスタノードによって制御される複数のワーカノードであって、各ワーカノードは、分散型データベースの25個以上のモジュール式ブロックを記憶し、各モジュール式ブロックは、5Gバイト以下のサイズを有し、関連付けられたログファイルを有する、ワーカノードと
を備えている、システム。
(項目2)
前記マスタノードは、データベースクエリを受信し、前記データベースクエリをパーティション分割し、前記複数のワーカノードにわたって並行して起動する、項目1に記載のシステム。
(項目3)
前記マスタノードは、前記モジュール式ブロック内のデータに関する統計を収集する、項目1に記載のシステム。
(項目4)
前記マスタノードは、前記統計を使用して、データベースクエリを最適化する、項目3に記載のシステム。
(項目5)
前記マスタノードは、モジュール式ブロックの場所、サイズ、関連付けられたログファイル、および更新時間から選択される統計を収集する、項目3に記載のシステム。
(項目6)
前記マスタノードは、前記複数のワーカノードと通信し、前記統計を更新する、項目5に記載のシステム。
(項目7)
前記マスタノードは、前記複数のワーカノードに対する可用性情報を維持する、項目1に記載のシステム。
(項目8)
前記マスタノードは、前記複数のワーカノードにわたって前記モジュール式ブロックに対する分散情報を維持する、項目1に記載のシステム。
(項目9)
前記マスタノードは、前記複数のワーカノードに対する前記可用性情報を使用して、新しいモジュール式ブロックの配置を決定する、項目7に記載のシステム。
(項目10)
前記マスタノードは、前記モジュール式ブロックに対する前記分散情報に基づいて、新しいモジュール式ブロックの配置を決定する、項目8に記載のシステム。
(項目11)
前記マスタノードは、前記複数のワーカノードにわたってモジュール式ブロックを再分散させる、項目1に記載のシステム。
(項目12)
前記マスタノードは、前記可用性情報に基づいて、モジュール式ブロックを再分散させる、項目7に記載のシステム。
(項目13)
前記マスタノードは、前記モジュール式ブロックに対する前記分散情報に基づいて、モジュール式ブロックを再分散させる、項目8に記載のシステム。
(項目14)
前記マスタノードは、前記複数のワーカノードにわたってモジュール式ブロックの複製を制御する、項目1に記載のシステム。
(項目15)
前記マスタノードは、前記複数のワーカノードに対する可用性情報に基づいて、前記モジュール式ブロックの複製を制御する、項目14に記載のシステム。
(項目16)
前記マスタノードは、前記モジュール式ブロックに対する分散情報に基づいて、前記モジュール式ブロックの複製を制御する、項目14に記載のシステム。
(項目17)
複製は、構成可能パラメータである、項目14に記載のシステム。
(項目18)
前記モジュール式ブロックは、5GB未満の任意の値に構成可能なサイズを有する、項目1に記載のシステム。
(項目19)
前記マスタノードは、現在のモジュール式ブロックが最大サイズを超えると、新しいモジュール式ブロックを生成する、項目1に記載のシステム。
(項目20)
前記マスタノードは、前記現在のモジュール式ブロックが、最大サイズを超えると、現在のモジュール式ブロックからの情報の半分を有する新しいモジュール式ブロックを生成する、項目1に記載のシステム。
本発明は、付随の図面と関連して検討される、以下の発明を実施するための形態と併せて、より完全に理解される。
図1は、本発明のある実施形態に従って構成される、システムを図示する。 図2は、本発明のある実施形態に従って行なわれる、最小および最大ローディング動作を図示する。 図3は、本発明のある実施形態に従って維持される、最小および最大ローディング統計を図示する。 図4は、本発明の実施形態に関連付けられた中継ファイル処理動作を図示する。 図5は、本発明のある実施形態に従って処理される、更新データを図示する。 図6は、本発明のある実施形態に従って利用される、データベースエントリおよび対応する中継ファイルを図示する。 図7は、本発明のある実施形態に従って処理される、中継ファイル更新を図示する。 図8は、本発明の実施形態に関連付けられたテーブル結合動作を図示する。 図9は、本発明のある実施形態に従って受信された更新値を伴う再パーティション分割されたテーブルを図示する。 図10は、図9の構成に適用される、データ更新を図示する。 図11は、本発明のある実施形態に従って行なわれる、再パーティション分割動作のより詳細な実施例である。 図12は、図11の構成に適用される、データ更新を図示する。
類似参照番号は、図面のいくつかの図全体を通して、対応する部分を指す。
本発明は、解析およびデータウェアハウスの作業負荷を対象とする。例えば、データ解析作業負荷は、通常、時間次元を有するデータを有し、このデータは、定期的間隔において、システムにまとめてロードされる。本発明の実施形態は、これらの特性を利用して、新しいパーティション分割方法を提案する。
従来技術システムは、典型的には、特殊ファイバディスクまたはネットワーク接続を経由して、互に接続された、いくつかのサーバ上で起動する。本発明は、標準的ネットワーク接続を経由して、数百個ものサーバにまで拡張するように設計される。その規模では、大容量テーブル結合を行なうために、ネットワークを経由して転送されるデータの量は、膨大となる。本発明の実施形態は、大容量テーブル結合を行なうために要求されるネットワークI/Oを最小限にする。
従来技術システムは、典型的には、特殊ファイバディスクまたはネットワーク接続を使用する、いくつかの信頼性のあるサーバ上で起動する。そのようなシステムでは、稀に、管理された様式において、新しいサーバが、システムに追加され、古いサーバが、除去される。本発明の実施形態は、数百個もの汎用サーバにまで拡張するように設計される。これらのサーバは、クラウド内にあり得る。その規模では、サーバ追加および除去は、定期的に生じる。クラウド内の汎用ハードウェアまたはサーバの場合、サーバおよびネットワーク障害は、より頻繁となる。本発明の実施形態は、システムの性能に影響を及ぼさずに、サーバ追加および除去に対処し、ユーザ監視を要求せずに、サーバおよびネットワーク障害から回復する。
図1は、本発明のある実施形態に従って構成される、システム100を図示する。システム100は、マスタノード102と、分散型データベースを実装する、一組のワーカノード104_1から104_Nとを含む。マスタノード102は、任意の有線または無線ネットワーク接続106を通して、ワーカノード104に接続される。
マスタノード102は、バス114を介して、一組の入力/出力デバイス112に接続される、中央処理ユニット110等の標準的構成要素を含む。入力/出力デバイス112は、キーボード、マウス、ディスプレイ、プリンタ等を含み得る。ネットワークインターフェース回路(NIC)116もまた、バス114に接続され、ネットワーク接続106を通して、ワーカノード104へのアクセスを提供する。メモリ120もまた、バス114に接続される。メモリ120は、開示される動作を実装するための実行可能命令を記憶する。特に、メモリは、以下に開示される分散型データベース動作を実装するための実行可能命令を含む、マスタノードモジュール122を記憶する。
各ワーカノード104はまた、中央処理ユニット160、バス162、入力/出力デバイス164、およびネットワークインターフェース回路166等の標準的構成要素を含む。各ワーカノードコンピュータ104はまた、ワーカノードモジュール172の形態における実行可能命令を伴うメモリ170を含む。ワーカノードモジュール172は、マスタノードモジュール122からのコマンドに応答する実行可能命令を含む。そのようなコマンドは、以下に論じられるように、分散型データベースパーティションのストレージ、アクセス、複製、および重複に関連する。追加のコマンドは、分散型データベースパーティションにクエリを行ない、データから知見を導き出す。
システム100はまた、1つ以上のクライアントコンピュータ180を含み得る。各クライアントコンピュータ180は、分散型データベースの関連付けられたユーザを有する。クライアントコンピュータ180はまた、中央処理ユニット190、バス194、入力/出力デバイス192、およびネットワークインターフェース回路196等の標準的構成要素を含む。各クライアントコンピュータ180はまた、クライアントモジュール202の形態における実行可能命令を伴うメモリ200を含む。クライアントモジュール202は、分散型データベースにアクセスするために使用されるブラウザであり得る。代替として、クライアントモジュール202は、分散型データベースと相互接続するための専用アプリケーションであり得る。この専用アプリケーションは、Structured QueryLanguage(SQL)、Open Database Connectively(ODBC)、およびJava(登録商標)−based Database Connectivity(JDBC)等の標準的プロトコルを通して、分散型データベースと通信し得る。最後に、クライアントモジュール202は、ワーカノード104上で実行されることにより、データアップロード動作の間のデータ転送のコストを削減し得る。
システム100は、公知の分散型データベース構成に関連付けられた多くの属性を含むが、システム100は、モジュール式ブロックおよび関連付けられたアペンド専用ログファイルのその利用を通して、従来技術分散型データベース構成と基本的に異なる。各モジュール式ブロックは、分散型データベースに関連付けられたデータのセグメントを保持する。マスタノード102は、モジュール式ブロックを定義し、種々のワーカノード104へのその分散を管理する。各モジュール式ブロックは、5ギガバイト以下のサイズを有する。これは、データをワーカノードにパーティション分割し、したがって、データベースパーティションサイズにハード限界を課さない、従来技術分散型データベースと対照的である。その結果、従来技術システムは、約100ギガバイト〜約10,000ギガバイトのサイズに及ぶ、分散型データベースパーティションを有する。さらに、従来技術では、単一ワーカノードは、分散型データベースからのデータの単一パーティションを保持する。対照的に、本発明では、各ワーカノード104は、パーティション分割されたデータの25個以上のモジュール式ブロックを保持する。
パーティション分割は、個別の独立部分への論理データベースの分割である。各パーティションは、複数のノードにわたって拡散され得る。ローカルノードにおけるユーザは、ローカルトランザクションをそのパーティションに対して行なうことができる。開示されるモジュール式ブロックも、パーティションであるが、用語「モジュール式ブロック」は、分散型データベースの従来技術の実装と比較して、サイズ区別を強調するために使用される。この構成は、リソース障害の場合、およびリソースがシステムに追加されるとき、利点を有する。
例えば、3つのノードにわたって、データベーステーブルをパーティション分割する従来技術システムの例を検討する。最初に、データは、3つのノードにロードされ、3つのデータベーステーブルパーティションに均等にパーティション分割される。これらのデータベースパーティションは、次いで、より多くのデータが、システムに追加されるにつれて、大きくなる。各パーティションは、典型的には、100ギガバイトを超えるサイズまで大きくなる。ある時点で、データベースアドミニストレータは、新しいノードを従来技術システムに追加し、分散型データベースの性能を改善する必要がある。このノードが追加されると、分散型データベースは、ネットワークを経由して、大量のデータをシャッフルし、元となるデータを均等に分散させる必要がある。この実施例では、各データベーステーブルパーティションの1/4が、ネットワークを経由して、新しく追加されたノードに転送され、次いで、新しいノード上でマージされ、新しいデータベーステーブルパーティションを作成する。
従来技術システムにおけるこれらのデータ転送動作は、2つの短所を有する。第1に、データベースユーザは、システムに対して、読み取りおよび書き込みクエリを継続的に発行し、大容量データ転送は、システムおよびクエリの性能に悪影響を及ぼす。新しいノードの追加が、十分に稀である場合、データベースアドミニストレータは、データベースユーザに通知し、システムをオフラインにし、データ転送動作が完了することを待つことができる。しかしながら、ノード追加が頻繁である場合、これは、管理不能となる。
さらに、大容量データ転送はまた、従来技術システムにおける障害対処の観点において、課題をもたらす。この実施例では、新しいパーティションが作成されるために、既存のノードからの全3つのデータ転送動作が、正常に完了する必要がある。データ転送のいずれか1つが失敗する場合、全データ転送動作が、データセット全体を一貫して保つために、巻き戻される必要がある。システム内にいくつかのノードが存在し、かつそのハードウェアおよびネットワーク接続に信頼性があるとき、約100ギガバイト〜10,000ギガバイトのいくつかの大容量データ転送動作は、正常に完了する。しかしながら、システムが、汎用ハードウェア上で起動しており、数百個のノードに拡張されるとき、全データ転送が正常に完了する確率は、著しく低くなる。
この従来技術システムと対照的に、本発明の実施形態は、データベーステーブルを3つのワーカノード104上に記憶し、ノードの各1つが、40個のモジュール式ブロックを記憶する。データベースアドミニストレータが、新しいノードをシステムに追加する場合、分散型データベースは、各既存のノードから新しいノードに、10個のモジュール式ブロックを容易に転送することができる。分散型データベースはまた、データ転送動作を経時的に拡散させ、性能に及ぼす影響を最小限にすることができる。各モジュール式ブロックは、数ギガバイトを超えないので、システム100は、モジュール式ブロックを転送し、また、性能に及ぼす最小限の影響を伴って、読み取りおよび書き込みクエリを処理することができる。さらに、モジュール式ブロックのためのデータ転送動作は、互に独立し、これらのデータ転送のうちの1つが失敗する場合、失敗したデータ転送動作は、別の時に、全体として再試行されることができる。これは、新しいデータベーステーブルパーティションが出現するために、全データ転送が完了することを要求する、従来技術システムとは対照的である。
ノード追加におけるその利点に加え、モジュール式ブロックはまた、ノードが障害を起こすとき、またはシステムから除去される必要があるとき、利点を有する。例えば、3つの元々のノード(これらの元々のノードは、3つのデータベーステーブルパーティションを保持する)を有する従来技術システムを検討する。ノード障害および除去に対処するために、システムはまた、元々のノードの正確な複製として構成される、3つの複製ノードを有する。元々のノードの障害の場合、元々のノード上のデータベーステーブルパーティションは、利用不可能となり、複製ノードから再複製される必要がある。このため、分散型データベースは、データ転送動作を発行し、スタンバイノード上に新しい複製データベーステーブルパーティションを作成する。
しかしながら、このアプローチは、従来技術システムにおける大容量データ転送に関連する、前述の短所を有する。障害を起こしたノードの複製は、ライブのユーザクエリにも応答しながら、大量のデータを転送する必要がある。この大容量データ転送は、複製ノード、したがって、クエリの性能に影響を及ぼす。さらに、データ転送動作は、大容量データセットのためであり、しばらくの間、継続するので、転送自体が、ハードウェアまたはネットワーク問題により、途中で失敗し得る。実際には、前述の短所は、元々のノードの障害から生じるデータ転送が、その複製ノード上に不均等にもたらされるので、増大する。
加えて、元々のノードの障害はまた、第3の短所を導入する。元々のノード上で起動している全てのライブのクエリが、今度は、複製ノード上で再始動される必要がある。データ解析作業負荷では、ビジネスインテリジェンスクエリが数時間またはさらに数日間実行することは稀ではない。このノード障害は、したがって、起動中のクエリにおける全経過が、喪失され、クエリが、障害を起こしたノードの複製において、その全体が再始動される必要があるので、平均して、これらのクエリの実行時間を50%増加させる。
対比的に、本発明の実施形態は、データをモジュール式ブロック内に記憶することによって、これらの問題を克服する。例えば、システム100が、6つのワーカノード104を有し、各ワーカノード104が、40個のモジュール式ブロックを記憶すると仮定する。システム内の各モジュール式ブロックは、ランダムに選択される、2つのワーカノードに複製される。したがって、ノードのうちの1つが障害を起こすと、残りのノードの各1つから、平均して8つのモジュール式ブロックが、複製される必要がある。すなわち、再複製データのタスクは、システム内の全ノードにわたって、均等に拡散される。さらに、再複製されたタスクはまた、時間にわたり拡散されることができる。1つのモジュール式データベースブロックが、最初に複製された後、別のモジュール式ブロックの複製が続き得る。各モジュール式ブロックは、サイズが小さいので、ノードに及ぼす性能の影響は、最小限である。さらに、ハードウェアまたはネットワーク障害が、より短いデータ転送動作の間に生じる場合、動作は、単純に、最小限のコストで再試行されることができる。
加えて、ノードのうちの1つが障害を起こすと、全解析クエリは、依然として、再始動される必要があるが、この作業は、システム100内の全5つのノードにわたって均等に分散される。したがって、システム内で失敗した解析クエリは、従来技術システムにおいて、50%長くなるのとは対照的に、わずか10%しか長くかからない。この特定の利点は、数百個のノードを有する分散型システムでは、より顕著となる。それらの規模では、任意の1つのノード障害の確率は、はるかに高くなり、そのような障害が生じると、失敗した解析クエリは、より多くのノードにわたって分散されることができる。
要するに、モジュール式ブロックは、データ解析作業負荷に対して、着目に値する利点を有し、これらの利点は、ノードが汎用ハードウェアを使用するとき、かつ、システム内のノードの数が増加するにつれて、より明らかとなる。説明されるシステム内のワーカノード104は、ピアとして定義されるが、また、階層の一部として構成され得ることは、着目に値する。さらに、ワーカノード104は、システム100において、分散合意に達する必要があり得る。分散型合意に達する方法の1つは、2相コミット、Paxos、または定足数ベースの投票等のプロトコルの使用を通したものである。合意を達成する別の方法は、システム内の他のノードおよびクエリの実行を調整するマスタノードモジュール122に依拠することを通したものである。マスタノードモジュール122は、データベースクエリをクライアントデバイス180から受信し、データベースクエリをパーティション分割し、複数のスレーブまたはワーカノード104にわたって並行して起動する。マスタノードモジュール122は、モジュール式ブロック内のデータに関する統計を収集し、次いで、それらの統計を使用して、データベースクエリを最適化し得る。例えば、マスタノードは、これらの統計を使用して、特定のデータ解析クエリに関連しないモジュール式ブロックを決定し、これらの非関連ブロックをクエリから取り除く。マスタノードモジュール122はまた、モジュール式ブロック場所、モジュール式ブロックサイズ、ログファイル、および最新更新時間に関する統計を保つ。これらの統計は、クエリをモジュール式ブロックに向け、障害に直面すると、ブロックデータ一貫性を維持するために使用される。これらの統計は、次いで、マスタノード102がワーカノード104への接続を開始することを通して、ワーカノード104がマスタノード102への接続を開始することを通して、またはクライアントモジュール202がローディングデータをワーカノード104にアップロード後、それらをマスタノード102に送信することを通してのいずれかによって更新される。
マスタノードモジュール122はまた、異なるワーカノード104に関する可用性情報を維持する。マスタノードモジュール122は、次いで、この可用性情報を使用して、ワーカノード104にわたるモジュール式ブロックの配置、配置換え、または複製を決定する。従来技術と対照的に、マスタノードモジュール122は、新しいブロックを配置する方針、または既存のブロックを複製する方法の観点において、より柔軟性を有する。例えば、マスタノードモジュール122は、ワーカノードに対する可用性情報を使用して、その障害特性を決定し、より障害を起こしやすいと見なされるノード上には、より少ないモジュール式ブロックを配置し得る。または、マスタノードは、この可用性情報とワーカノードのネットワーク場所を組み合わせ得、データセンターの停電に直面した場合でさえ、モジュール式ブロックのための十分な複製が、アクセス可能なままであることを確実にし得る。
マスタノードモジュール122はまた、ワーカノード104にわたるモジュール式ブロックに対する分散情報を維持する。マスタノードモジュール122は、次いで、この分散情報を使用して、ワーカノード104にわたるモジュール式ブロックの配置、配置換え、または複製を決定する。システム100は、有利には、データ分散の観点において、従来技術に匹敵する。マスタノードモジュール122は、モジュール式ブロック上の分散情報をワーカノード104に関するリソース情報と組み合わせ得、ワーカノード104上で利用可能なリソースに比例して、モジュール式ブロックを分散させ得る。したがって、システム100は、そのリソースにおいて異種のワーカノード104を含み得、より多くのリソースを伴うワーカノードは、単純に、より多くのモジュール式ブロックが割り当てられる。
マスタノードモジュール122は、種々の構成可能パラメータを含み、分散、再分散、および複製動作を制御し得る。一実施形態では、モジュール式ブロックサイズは、マスタノードモジュール122を通して構成可能である。例えば、モジュール式ブロックサイズは、5ギガバイト未満の任意の値に構成可能であり得る。代替として、モジュール式ブロックサイズは、8ギガバイト未満の任意の値に構成可能である。4〜6ギガバイトの範囲もまた、指定され得る。モジュール式ブロックサイズを指定する追加の方法もまた、可能である。モジュール式ブロックサイズは、入力ファイルサイズおよびログファイルサイズに比例する。他の実施形態では、入力ファイルサイズまたはログファイルサイズは、モジュール式ブロックサイズより優先され得、マスタノードモジュール122を通して構成可能であり得る。
マスタノードモジュール122および/またはクライアントモジュール202は、モジュール式ブロックが、その指定されたサイズに一致することを確実にする必要がある。その結果、モジュール式ブロックが、そのエントリが削除され、その指定された最小サイズを下回って減少する場合、モジュール式ブロックは、別のブロックとマージされる必要がある。
同様に、モジュール式ブロックが、その指定された最大サイズを超えて大きくなる場合、新しいモジュール式ブロックが作成されるか、または既存のモジュール式ブロックが2つのブロックに分割される。これらのブロックが作成される特定の機構は、パーティション分割方法に依存する。データベーステーブルが、ハッシュまたは範囲パーティション分割を使用してパーティション分割される場合、マスタノードモジュール122は、行の半分を各新しいブロックに割り当てることによって、2つへの既存のブロックの分割を規則化する。マスタノードモジュール122は、次いで、2つの新しいブロックに関するハッシュバケット値または範囲規則性を記録する。しかしながら、パーティション分割方法が、データベーステーブル行の間に厳格な規則性を課す必要がない場合、クライアントモジュール202は、単純に、入力ファイルを取り込み、ワーカノード上にブロックを作成し、そのブロックへのデータのアップロードを開始する。ブロックサイズが、最大構成サイズを超える場合、クライアントモジュール202は、別の新しいブロックを作成し、この新しいブロックへのデータのアップロードを継続する。全入力データが、モジュール式ブロックにロードされると、クライアントモジュール202は、全ブロック配置情報および他の重要統計をマスタノードモジュール122に渡す。
開示されるアーキテクチャは、本明細書においてアペンドパーティション分割と称される特徴をサポートする。このパーティション分割方法は、データが、短要求としてではなく、バッチとしてデータベースにロードされるときに適用可能となる。さらに、パーティション分割方法は、元となるデータが、固有の最小および最大パラメータを有し、元となるデータが、アペンド専用様式でモデル化され、データベースにロードされ得ると仮定する。これらの特性を伴うデータに対して、アペンドパーティション分割は、効率的データローディングおよびクエリ機構をもたらす。
例えば、その顧客によって閲覧された全ページを記憶する、オンラインウェブサイトを検討する。ウェブサイトは、それらを毎時間のテキストファイルに定期的に集約することによって、これらのデータをロードする。さらに、これらの毎時間のテキストファイルは、固有の最小および最大タイムスタンプを有し、それらが含むページ閲覧データは、不変であり、したがって、アペンド専用様式でデータベースに容易にロードされることができる。
この例では、データローディング動作は、クライアントモジュール202が、マスタノードモジュール122に、新しいデータベーステーブルパーティションを割り当て、その中にデータをアップロードするためのワーカノード104の名を返すように依頼することによって開始し得る。クライアントモジュール202は、次いで、新しいデータベーステーブルパーティションをワーカノード104上に作成し、毎時間のテキストファイルデータをその中にアップロードし、最小および最大タイムスタンプをこれらのデータから読み出す。クライアントモジュール202は、最小および最大タイムスタンプおよび他の統計をマスタノードモジュール122に送信することによって、データアップロードを終了する。マスタノードモジュール122は、この情報を記憶し、将来的解析クエリを最適化する。
後に、ユーザが、「先週の火曜日に閲覧された最も人気のあるページ」のようなクリエを送信すると、データベースは、自動的に、その開始および終了タイムスタンプが、先週の火曜日のもの内に入らないデータベースパーティションを取り除くことができる。実際、データベースは、有意な数のクエリをこのように最適化することができる。
従来技術方法もまた、パーティション選別に関連するが、データがシステムにロードされる方法に関して、より厳格な要件を課す、類似クエリ最適化を導入する。例えば、ある従来技術方法は、データベースアドミニストレータが、それらがアップロードする各毎時間のテキストファイルに対して、手動で時間範囲を指定することを要求する。このアプローチは、クエリ最適化を可能にするが、手動プロセスはまた、顕著な管理上の課題を導入する。対比して、アペンドベースのパーティション分割は、毎時間のテキストファイルが、既に事前に集約されており、固有の時間次元を有するという仮定の下で動作し、自動的に、時間範囲を各毎時間のテキストファイルから抽出する。
別の従来技術方法データベースアドミニストレータは、典型的には、データベーステーブルのハッシュまたは範囲パーティション分割を使用する。この方法は、パーティション選別を可能にするが、また、データローディングの間、非効率性を導入する。この方法では、毎時間のテキストファイル内の各ウェブページ閲覧データは、ハッシュまたは範囲パーティション分割され、次いで、関連パーティションにルーティングされる。その結果、データをアップロードするモジュールは、毎時間のテキストファイル内の各行に対して、マスタノードモジュール122と通信する必要があるか、あるいはデータベーステーブルに関するリースまたはロックを取得し、異なるデータベーステーブルパーティション間でハッシュまたは範囲規則性を施行する必要があるかのいずれかとなる。
対比して、アペンドベースのパーティション分割は、毎時間のテキストファイルデータが、更新されないことを認識し、したがって、各行間に厳格な関係を施行すること、およびその行に対するデータベーステーブルパーティションは、不必要である。代わりに、データベースアドミニストレータは、効率的に、かつ独立して、毎時間のテキストデータをシステム内の任意のノードからロードすることができる。実際、これらのデータロードは、並行して生じることさえできる。マスタノードモジュール122は、新しいデータベーステーブルパーティションの作成の管理と、アップロードされたデータに関するメタデータを記憶することのみに関わる必要がある。その結果、ページ閲覧データは、効率的かつ並行して、データベースにロードされることができる。
図2は、第1の毎時間の入力ファイル200および第2の毎時間の入力ファイル202を図示する。各入力ファイルは、user_id列、webpage_id列、category_id列、およびタイムスタンプ列を有する。タイムスタンプ(tstamp)列は、行内に特徴付けられるアクティビティに関する日時を指定する。毎時間の入力ファイル200は、日付2009−02−02における11時間目の間に行なわれたアクションを追跡する一方、毎時間の入力ファイル202は、日付2009−02−02における12時間目の間に行なわれたアクションを追跡する。毎時間の入力ファイル200からのデータは、ノード204上にロードされ、毎時間の入力ファイル202からのデータは、ノード206上にロードされる。いくつかの実施形態では、マスタノードモジュール122は、異なるワーカノード104にわたるデータのアップロードを調整し得る。さらに、マスタノードモジュール122は、ワーカノード可用性またはデータ分散情報を使用して、その中にデータをアップロードするためのワーカノードの組を決定する。
ユーザが、システムがロックおよびリースを維持することなく、複数のファイルを並行してロードすることができることが観察される。ユーザはまた、アップロードされるデータの時間または日付粒度を選定あるいは指定する必要がない。さらに、ユーザは、データを挿入する前に、手動でパーティションを作成する必要がない。
図3は、マスタノードモジュール122によって維持され得る、統計テーブル300を図示する。この実施例では、統計テーブル300は、table_id列、partition_id列、min_value列、およびmax_value列を含む。行302は、日付2009−02−01における1時間目に対応する、あるデータベーステーブルパーティションを表す。すなわち、行は、この日付における1時間目の間に収集されたデータに対して、table_idおよびpartition_idを指定する。行304は、同一の日付における11時間目を指定する。行306および308は、同一の日付における12時間目を指定する。同一の時間に対する2つのエントリは、1つ以上のウェブサーバが、そのページ閲覧データの転送に問題があり、これらのページ閲覧が、集約され、後にシステムにロードされたために生じ得る。
統計テーブル300は、時間範囲を有するクエリを最適化するために使用される。例えば、マスタノードモジュール122は、2009−02−01における11時間目と12時間目の間(境界値を含む)の最も人気のあるウェブページを尋ねるクエリを受信し得る。この場合、マスタノードモジュールは、統計テーブル300内に記憶された開始および終了タイムスタンプを使用して、行304、306、および308によって識別されるもの以外の全データベーステーブルパーティションを取り除く。マスタノードモジュール122は、次いで、最も人気のあるウェブページクエリのみをデータベーステーブルパーティション314、316、および318に送信し、これらのデータベーステーブルパーティションから応答を受信し、応答をマージし、マージされた応答をユーザに返す。
マスタノードモジュール122がパーティション選別を行なうために、1日が24時間の時間間隔に対応することを把握する必要はない。データベースは、既に、時間データタイプのための内蔵比較演算子を有する。マスタノードモジュールは、単純に、解析クエリ内の時間範囲を統計テーブル内の最小および最大タイムスタンプと比較し、関連パーティションを決定する。
要するに、アペンドベースのパーティション分割は、ハッシュおよび範囲パーティション分割と同一のパーティション選別利点をもたらす。しかしながら、アペンドパーティション分割では、マスタノードモジュール122は、行毎レベルでのデータアップロード動作に関わる必要はない。代わりに、ワーカノードモジュール172またはクライアントノードモジュール202は、データをアップロードしているときのあるメタデータを追跡する。それらがこのメタデータをコミットすると、アップロードされたデータベーステーブルパーティションは、システム内の全ノードに対して明らかとなる。
さらに、これらのデータベーステーブルパーティションはまた、モジュール式ブロックとしてモデル化され得、各モジュール式ブロックは、固定された最大サイズを有する。例えば、ある1時間の間のウェブページ閲覧データをロードするためのコマンドが、受信される。コマンドは、最初に、マスタノードモジュール122に、作成されるモジュール式ブロックのための一意の識別子、データがロードされるべきノード名、および所望の複製要因に応答するように依頼する。マスタノードは、回答で返信し、コマンドは、ページ閲覧データを指定されたノードにアップロードおよび複製する。
アップロードされたデータが、システム内のモジュール式ブロックに対して定義された最大サイズを超える場合、新しいモジュール式ブロックが作成され、要求が、追加の情報のために、マスタノードに発行される。全データが、モジュール式ブロックにアップロードされると、コマンドは、マスタノードモジュール122に、ブロック場所ならびに最小および最大統計をまとめる。
開示される技法は、コアビジネス機能を特徴付ける事実またはイベントデータを含む、アペンド専用データベーステーブルに関連して利用され得る。アペンド専用データベーステーブルはまた、ゆっくりと変化するディメンションテーブルであり得、各変化とともにタイムスタンプを記憶し得る。このディメンションテーブルはまた、十分なデータ変化が生じると、最初から、データベースにロードされ得る。
このアペンドパーティション分割特徴は、異なるノードにわたって、モジュール式ブロックを複製し、自動的に、新しいデータベーステーブルパーティションを作成する等、種々のデータベース管理動作を伴い得ることが観察される。これらの動作は、マスタノードモジュール122に実装され得る。
また、このアペンドパーティション分割特徴は、完全疎結合アーキテクチャおよび共有ディスクアーキテクチャの両方において適用可能であることが観察される。完全疎結合アーキテクチャでは、データベースは、システム内のノードにわたってパーティション分割され、各ノードは、その独自のリソースを有する。共有ディスクアーキテクチャでは、データベースのためのストレージエリアは、ストレージアレイネットワーク(SAN)またはネットワークアタッチトストレージ(NAS)のいずれかとして構成される、個々のディスクにわたってパーティション分割される。
本開示は、本発明のある実施形態に従って利用される、モジュール式ブロックを説明する。各モジュール式ブロックは、関連付けられたログファイルを有する。ログファイルは、モジュール式ブロックに関連付けられた全変更を記録する。ログファイルは、アペンド専用ログファイルである。アペンド専用ログファイルは、以前のログ付けされた動作を削除せずに、追加のデータ変更を記録する。すなわち、データ更新および削除動作さえ、別個のエントリとして、ログファイル内に記録される。ログファイルはまた、本明細書では、中継ファイルとも称される。
本発明のある実施形態によると、アペンド専用ログファイルは、システムの任意の所与のノード上のデータの物理的表現から独立する様式において、データへの変更を表す。例えば、データは、物理的様式(例えば、ストレージアドレス)の代わりに、論理様式(例えば、テーブル名および行を表すデータ組)において、指定される。このアプローチは、従来技術技法に勝るいくつかの利点を有する。
従来技術データベースは、データベーステーブルおよびそれら内のデータを連続的形式で保つ。言い換えると、データベーステーブルのメタデータおよび再実行ログは、典型的には、他のデータベースのものと連結される。加えて、データベーステーブルのデータは、性能理由から、物理的様式で表される。すなわち、このデータは、異なるデータベースファイルに散在され、データベースページ番号、ページポインタ、またはオフセット番号を通して、一緒に結び付けられる。例えば、データベーステーブル内の特定の行に関するデータは、特定のデータベースファイル、ページ、およびオフセット番号上に記憶される。データベーステーブル内の次の行は、次いで、完全に異なるデータベースファイル、ページ、およびオフセット番号上に記憶され得る。
このデータの物理的表現および強結合は、課題を導入する。第1に、データベーステーブルの一部のみ取り込み、それをネットワークにわたって移動させることは、著しく困難となる。第2に、移動されたとしても、データベーステーブルのその部分はまた、そのデータベースのその独自の物理的表現を有する、別のノード上に再構築される必要がある。これらの課題のため、分散型データベースは、典型的には、互の正確な複製として、いくつかのノードを構成し、複製は、データベースの正確に同一の物理的表現を保つ。しかしながら、これは、データベーステーブルの一部のみ移動されることを非常に困難にする。
このアプローチに関する別の欠点は、特に、障害の場合、テーブルデータを一貫して保つことが困難であることである。例えば、ユーザが、あるテーブル内の行を更新または削除する場合、この変更は、このテーブルの複製を有する、他のノードに複製される必要がある。これらのノードが利用不可能である場合、このテーブルへの変更は、記憶され、後に適用される必要がある。ノードが定期的に障害を起こし、単一ノード上に多くのテーブルが記憶される場合、データを一貫して保つことは、困難となる。
本発明の実施形態は、分散型データベースに対するデータベーステーブル更新を受信することによって、これらの難点を克服する。データベーステーブル更新は、分散型データベースを実行するコンピュータネットワークのノード上のデータベーステーブルパーティションにロードされる。データベーステーブルパーティションまたはモジュール式ブロックは、最大サイズ(例えば、5ギガバイト)を超えない。データベーステーブル更新は、そのデータベーステーブルパーティションに対応するアペンド専用ログファイルに追加される。特に、データベーステーブル更新は、データ挿入、データロード、データ修正、データ削除、またはデータ記述言語(DDL)イベントを表す。さらに、データベーステーブル更新に関連付けられたデータは、ノードにおけるデータの物理的表現から独立した論理表現として、アペンド専用ログファイル内に記憶される。これは、データベーステーブルパーティションのコンピュータネットワーク内の他のノードへの転送を促進する。
図4は、本発明の実施形態に関連付けられた処理動作を図示する。最初に、最後に中継されたバイトが、最後に書き込まれたバイトと同一であるかどうか決定される400。該当する場合、中継された情報は、いかなる更新も含まず、処理は、完了される402。バイトが一致しない場合、次のイベントが、中継ファイルから読み取られる404。イベントサイズもまた、この動作において記録される。チェックサム整合が、次いで、行なわれる406。チェックサムが一致しない場合、エラーが、報告される408。チェックサムが一致する場合、最初に、イベントタイプが、解決される。次いで、イベントが、データ定義言語(DDL)イベントであるかどうか決定される410。該当しない場合、指定された変更が、データベースのストレージエンジンに適用される412。例えば、挿入、更新、または削除が、適用される。最後に再現されたバイトが、次いで、イベントのサイズだけインクリメントされる414。
これが、DDLイベントである場合、テーブルおよびテーブルインデックス名が、中継ファイル識別子とともに、DDLステートメント内に拡張される416。テーブルおよびテーブルインデックス名は、同一のノード上に、同一のテーブルの複数のパーティションを保つことを可能にするように拡張される必要があり得る。対応する関数が、次いで、呼び出され、DDLステートメントを実行する418。最後に再現されたバイトは、次いで、イベントのサイズだけインクリメントされる414。
これらの動作は、実施例を参照してより完全に理解される。図5は、本発明のある実施形態に従って処理される、受信したデータベーステーブル更新を図示する。図は、customer_id15、16、および17を有する3つの行のためのテーブル102の変更を示す。custoemr_id15に対して、氏名John Doeが、1980の生年とともに追加されるべきである。同一の形式は、cusutomer_id16および17を含む行にも適用される。
図6は、これらの変更のデータベース表現600を図示する。図は、データベース600にロードされた図5内の指定された情報を図示する。これらの変更は、一組の動作を使用してデータベースに追加され得、変更は、異なるデータベースページおよびオフセットに記憶される。変更は、次いで、中継ファイル602にロードされる。中継ファイル602は、イベントサイズ、イベントタイプ、データ、およびチェックサムを指定する。
したがって、この時点において、データベーステーブル更新が、図5に示されるように、受信されている。データベーステーブル更新は、データベース表現600で示されるように、コンピュータネットワークのノード上のデータベーステーブルパーティションにロードされる。データベーステーブル更新はまた、中継ファイル602で示される、アペンド専用ログファイルにも追加される。ワーカノードモジュール172は、これらの動作を実装し得、マスタノードモジュール122に経過を通知し得る。
ここで、プライバシーの理由から、生年が維持されるべきではないと決定されるとする。この動作を維持するために、DDLステートメント「Alter Table Drop Column Date of Birth」が、実行され、中継ファイル102に追加される。追加の動作700が、中継ファイル602に追加され、図7に示されるように、これらの動作を実装する。データベース表現702は、これらの変更を反映させる。
中継ファイルまたは中継ファイルの最新アペンドされた部分は、システム内の任意のノード104に容易に転送される。中継ファイルからのデータ変更は、別のノードに適用され、複製データベーステーブルパーティションを作成し、データをこの複製パーティションに挿入する。データが、最初に中継ファイルにアペンドされ、ノードにわたって複製される方法の仕様は、データベーステーブル更新の性質に応じて、異なり得る。
一実施形態では、データベーステーブル更新は、広範囲のコマンドを表す。実施例として、以下の3つのコマンド:
(a)Update products Set price=price*1.10 Where product_id=9700、
(b)Insert Into products(product_id,product_price)Values(9700,random())、および
(c)Insert Into products(product_id,product_price)Values(9700,15.00)
を検討する。第1のコマンドは、副次的影響を伴うデータ修正コマンドであり、第2のものは、random()を含む、非決定論的データ挿入コマンドであり、第3のものは、決定論的データ挿入コマンドである。
第1の2つのコマンドに対して、単一ノードが、最初に、それらを実行し、その結果を入手し、これらの結果を対応する中継ファイルにログ付けし、再現のためにこの中継ファイルを別のノードに複製する必要がある。そうでなければ、2つの別個のノードは、random()に対して、2つの異なる結果を生成し、互に一貫していない可能性がある。同様に、now()等の関数を実行するか、またはserial等の自動インクリメント列値をインクリメントする、2つの別個のノードは、異なる値を生成し得る。より一般的には、データ修正コマンド、データ削除コマンド、および非決定論的データ挿入コマンドは、最初に、単一ノードで実行される必要がある。この実行の結果は、次いで、中継ファイルにログ付けされ、中継ファイルを介して、複製される。
別の実施形態では、データベーステーブル更新は、より多くの限られたコマンドの組を表す。すなわち、これらのコマンドは、決定論的データ挿入およびデータロードコマンドを含む。これらのコマンドは、2つの異なるノード上で2つの異なる値を生成するリスクを課さず、したがって、実行に先立って、異なるノードにわたって複製されることができる。いったん挿入またはロードコマンドが、異なるノードに複製されると、ノードは、独立して、コマンドを適用し、それをその中継ファイルにアペンドすることができる。
中継ファイル(アペンド専用ログファイル)が、ネットワークにわたって転送される必要があるとき、アペンド専用ログファイルは、ネットワークトラフィックを低減させるために圧縮され得る。アペンド専用ログファイルはまた、データ修正およびデータ削除コマンドによって割り当てられた空間を再利用するために圧縮され得る。この圧縮化は、新しいアペンド専用ログファイルを作成する形態で生じ得る。さらに、アペンド専用ログファイルは、データへの論理変更を記憶しているので、ファイルは、アペンド専用ログファイルとデータベースとの間のコネクタが利用可能であることを前提として、異なるベンダからのデータベースとともに使用されることができる。
図4および6に関して示されるように、アペンド専用ログファイルは、最後に書き込まれたバイトオフセットおよび最後に適用されたバイトオフセットを維持し得る。加えて、データベーステーブル更新をアペンド専用ログファイルに追加することは、データベーステーブル更新のためのチェックサムを計算および追加することを含み得る。データベーステーブルパーティションまたはアペンド専用ログファイルのサイズは、構成可能であり得る。一実施形態では、データベーステーブルパーティションは、システム100にわたって認識される、一意の識別子を有する。この一意の識別子は、アペンド専用ログファイル内のログエントリにハードコード化され得、またはログファイル名の中に抽象化され得る。
本発明の中継ファイル技法はさらに、テーブル結合と関連して利用されることができる。図8は、順序テーブルパーティション802および顧客テーブルパーティション804を伴う第1のノード800を図示する。別のノード806は、順序テーブルパーティション808および顧客テーブルパーティション810を有する。順序テーブルおよび顧客テーブルは、示されるように、異なるノードにわたって分散される、大容量テーブルである。テーブルは、テーブルのコストがかかりすぎ、システム内の全ノードに全体として複製することができないとき、大容量と見なされ得る。
順序テーブルは、order_idに基づいてパーティション分割され、および顧客テーブルは、customer_idに基づいてパーティション分割される。これらの2つのテーブルが、クエリをサポートするために一緒に結合される必要がある場合、順序テーブルは、システム内の全ノードにわたって、customer_idに基づいて、再パーティション分割される必要がある。既存のデータベースソリューション(恐らく、フィルタ処理射影または他の動作の適用後)が、テーブル全体を再パーティション分割し、ネットワークにわたって、再パーティション分割されたテーブルを転送する。これは、ベースデータへの変更を追跡することは困難であるので、ほぼ全ての結合において生じる。分散型データベースの実践的用途では、再パーティション分割されたテーブルは、膨大であり、単一ノード上に記憶されることができない。したがって、有意なデータ処理およびデータ転送が、再パーティション分割動作を支持するために、全ての結合において必要とされる。
図9は、ノード800および806が、順序テーブルを一緒に保持する、本発明の実施形態を図示する。分散型データベースは、順序および顧客テーブルを結合することを要求する、解析クエリを受信する。分散型データベースは、再パーティション分割のための順序テーブルを選定し、テーブルパーティション802および908がcustomer_idに基づいて再パーティション分割されるように命令する。分散型データベースはまた、再パーティション分割方法を範囲パーティション分割として指定し、データが2つの範囲に再パーティション分割されるべきことを決定する。その結果、ノード800は、customer_id次元に基づいて、テーブル802を再パーティション分割し、再パーティション分割されたデータの一部をローカルで保つ一方、他の部分をノード806に転送する。ノード806は、類似動作を行なう。総合して、これらの動作は、4つのデータ再パーティションをもたらす。ノード800は、データ再パーティションのうちの2つを取り込み、それらを再パーティション分割されたテーブル904にマージする。同様に、ノード806は、2つのデータ再パーティションをテーブル912にマージする。最後に、分散型データベースは、再パーティション分割されたテーブル904と顧客テーブル804と結合し、再パーティション分割されたテーブル912と顧客テーブル810を結合し、解析クエリに応答する。
テーブル再パーティション分割方法またはデータ転送機構の詳細は、状況に応じて、異なり得る。例えば、テーブルは、ハッシュまたは範囲パーティション分割を使用して、再パーティション分割され得る。同様に、再パーティション分割されたデータは、ストリーミング様式において、ノード間で転送され得、または転送前に、中間ファイルに書き込まれ得る。
前述の初期テーブル再パーティション動作後、より多くの変更が、ベーステーブルパーティションに適用され得る。第2のテーブル再パーティションが、次いで、発行されると、開示される方法は、最新の変更のみを再パーティション分割およびシャッフルする必要がある。
図9は、再パーティション分割されたテーブル904に適用される例示的変更914、および再パーティション分割されたテーブル912に適用される変更916を図示する。図10は、変更914および916に対応する、データ表現1000を図示する。
要するに、開示される方法は、最新の変更のみ再パーティション分割し、ベースデータにマージし、有利には、データセット全体を再パーティション分割する必要がある従来技術方法に匹敵する。開示される方法では、中継ファイルだけを再パーティション分割し、再パーティション分割されたデータを既存の再パーティション分割された中継ファイルにアペンドすることができる。その結果、データの再パーティション分割およびシャッフルの不利益は、1回しか被られない。初期再パーティション分割後、新しい挿入、更新、および削除のみ、再パーティション分割される必要がある。
データは、アペンド専用中継ファイル内に維持されるので、最後のクエリ実行時間以降のいかなる新しい変更も容易に決定することができる。これらの変更を再パーティション分割し、それらを中継ファイルにアペンドし、それらをデータベースに対して中継することができる。中継ファイルの使用は、データウェアハウス内のファクトテーブルが、アペンド専用であり、ディメンションテーブルが、比較的に小さく、稀に変更されるため、この状況では、妥当である。
これらの動作は、図11を参照して、より完全に理解される。図11は、順序テーブルパーティション1102および顧客テーブルパーティション1104を伴う第1のノード1100を図示する。順序パーティション1102は、順序パーティションを別のノード上に構築するために使用され得る、対応する中継ファイル1108を有する。ノード1100はまた、ノード1100上のテーブル1102およびノード1112上のテーブルパーティション1114の再パーティションである、再パーティション分割された順序テーブル1106を有する。テーブル1106は、対応する中継ファイル1110を有する。再パーティション分割された中継ファイル1110は、矢印1116によって示されるように、中継ファイル1108からのエントリを受信する。
順序テーブルパーティション1114は、対応する中継ファイル1118を有する。ノード1112はまた、顧客パーティション1120と、対応する中継ファイル1124を有する再パーティション分割された順序テーブル1122とを有する。中継ファイル1124は、矢印1126によって示されるように、中継ファイル1118からのエントリと、矢印1128によって示されるように、中継ファイル1108からのエントリとを有する。
図12は、更新を受信した後の図11の構成要素を図示する。中継ファイル1108は、行1202に示されるように、再パーティション分割された中継ファイル1110にパスされる、更新1200を受信する。この変更は、次いで、矢印1204に示されるように、再パーティション分割されたテーブル1106に再現される。同様に、中継ファイル1118は、矢印1210によって示されるように、再パーティション分割された中継ファイル1110にパスされる、更新1206を受信する。加えて、中継ファイル1118は、矢印1212によって示されるように、再パーティション分割された中継ファイル1124にパスされる、更新1208を受信する。順に、この変更は、矢印1214によって示されるように、テーブル1122に適用される。
したがって、データ変更は、中継ファイル(アペンド専用ファイル)で受信される。アペンド専用ファイルと再パーティション分割されたファイルとの間のマッピングが、次いで、再パーティション分割されたファイル内で変更を行うために使用される。アペンド専用ファイルは、データ挿入、ロード、更新、削除、およびデータ記述言語(DDL)動作を含み得る。アペンド専用ファイルは、テキストファイル、バイナリファイル、またはログファイルであり得る。
アペンド専用ファイルは、元となるデータが、決定論的挿入およびロード動作のみを含むとき、テキストファイルとしてより良好に表される。その場合、テキストファイルは、データベーステーブルのコンテンツを容易に表すことができる。実際、テキストファイルは、データベーステーブルのコンテンツを表すために、追加のデータベースファイルさえ必要としないこともある。例えば、コンマで分離されたテキストファイルは、データベーステーブルを表し得、改行は、行を分離し、コンマは、列を分離する。さらに、このテキストファイルは、ノード間で転送が容易である。テキストファイルは、既に、データを論理表現内に保っており、システムは、ノードにわたるデータの異なる物理的表現について懸念する必要はない。受信されたデータベースクエリは、パーティション分割され、再パーティション分割されたファイルにわたって並行して起動し得る。マスタノードモジュール122は、再パーティション分割されたファイル内のデータに関する統計を維持し得る。統計は、次いで、クエリに関連しない再パーティション分割されたファイルを取り除こうとするクエリの間、使用され得る。マスタノードモジュール122はまた、データ転送前に、フィルタ処理および射影動作の適用等、他のクエリ最適化技法を採用し、ネットワークにわたって転送されるデータの量を削減し得る。マスタノードモジュール122は、再パーティション分割されたファイルの数を決定するための構成値および再パーティション分割されたファイルの最大サイズを決定するための構成値をサポートし得る。構成値はまた、データベーステーブルパーティションの最大サイズを指定するために使用され得る。データベーステーブルパーティションまたは再パーティション分割されたファイルが、その構成される最大サイズを超える場合、自動的に、より小さいパーティションまたは再パーティションファイルに分割され得る。これらのより小さいパーティションまたは再パーティションファイルに関する統計が、次いで、マスタノードモジュール122に報告され得る。
さらに、マスタノードモジュール122は、データベーステーブルパーティションまたは再パーティション分割されたファイルをモジュール式ブロックとして表し得る。この表現は、小データベーステーブルが、いくつかのモジュール式ブロックで表され、これらのブロックが、システム内の全ノードに容易に複製され、効率的テーブル結合を行なうことができるという利点を有する。また、モジュール式ブロックの更新は、容易に追跡され、複製ブロックに伝搬されることができる。
対比して、従来技術方法は、モジュール式ブロックではなく、ノードにデータをパーティション分割する。その結果、小容量テーブルは、多数のデータベーステーブルパーティションにパーティション分割され得、これらのパーティションは全て、全ノードに複製される必要があり得る。例えば、50個のノードを伴うシステムでは、テーブル結合コマンドは、データベーステーブルのサイズが小さい場合でも、2,500個の複製動作をもたらし得る。さらに、データベーステーブルの後続更新もまた、追跡および伝搬がより困難となる。
言い換えると、モジュール式ブロックは、テーブル結合が小容量テーブルを伴うとき、利点を導入する。例えば、1つの小容量テーブルおよび2つの大容量テーブルを伴うテーブル結合コマンドに応答するために、小容量テーブルが、システム内の全ノードに複製され得、1つの大容量テーブルが、別の大容量テーブルのパーティション次元上に再パーティション分割され得る。大容量テーブルと小容量テーブルとの間の区別は、複数の方法で定義され得る。方法の1つは、大容量テーブルが有すべき分割データベースの最小数を定義するための構成値を提供することによって、ユーザに定義を任せ得る。別の方法は、システム内の全ノードに対してテーブルを全体として複製するコストを測定し得、そのコストを元となるデータを再パーティション分割するコストに対して比較検討し得る。
データの再パーティション分割は、自動的に、テーブル結合または個別のカウントコマンドによって開始され得る。ベーステーブルが再パーティション分割されると、再パーティション分割されたファイルは、テーブル結合コマンドを行なうために使用され得る。このテーブル結合コマンドは、より具体的には、内部結合、左側外部結合、右側外部結合、完全外部結合、半結合、またはアンチ結合を表し得る。代替として、テーブルデータの再パーティション分割はまた、手動データベースコマンドによって開始され得る。
例えば、ユーザが、テーブルが別の次元において頻繁にアクセスされることを把握している場合、ユーザは、Create Table AsまたはSelect Intoコマンドを使用することによって、再パーティション分割されたテーブルを手動で作成し得る。
一般に、各データベーステーブルパーティションは、単一アペンド専用中継ファイルを有するであろう。データベーステーブルパーティションは、システム100の異なるノード104にわたって分散および複製される。
本発明の実施形態は、種々のコンピュータ実装動作を行なうためのコンピュータコードを有するコンピュータ読み取り可能な記憶媒体を伴うコンピュータストレージ製品に関する。媒体およびコンピュータコードは、本発明の目的のために、特別に設計および構築されたものであり得、またはコンピュータソフトウェア技術分野における当業者に周知かつ利用可能な種類であり得る。コンピュータ読み取り可能な媒体の実施例として、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープ等の磁気媒体;CD−ROM、DVD、およびホログラフィックデバイス等の光学媒体;磁気光学媒体;ならびに特定用途向け集積回路(「ASIC」)、プログラマブル論理デバイス(「PLD」)、ならびにROMおよびRAMデバイス等のプログラムコードを記憶および実行するように特別に構成される、ハードウェアデバイスが挙げられるが、それらに限定されない。コンピュータコードの実施例として、コンパイラによって生成されるような機械コード、およびインタープリタを使用して、コンピュータによって実行される、高次コードを含むファイルが挙げられる。例えば、本発明の実施形態は、(登録商標)JAVA(登録商標)、C++、または他のオブジェクト指向プログラミング言語および開発ツールを使用して、実装され得る。本発明の別の実施形態は、機械実行可能ソフトウェア命令の代わりに、またはそれと組み合わせて、有線回路内に実装され得る。
前述の説明は、説明目的のために、本発明の完全理解を提供するために具体的専門用語を使用した。しかしながら、具体的詳細が、本発明を実践するために要求されないことは、当業者に明白であろう。したがって、本発明の具体的実施形態の前述の説明は、例証および説明目的のために提示される。それらは、包括的である、または本発明を開示される精密な形態に限定することを意図するものではない。明らかに、多くの修正および変形例が、前述の教示に照らして、可能性として考えられる。実施形態は、本発明の原理およびその実践的用途を最も良く説明するために選定および説明され、それによって、他の当業者が、想定される特定の使用に好適な種々の修正を伴って、本発明および種々の実施形態を最も良く利用することを可能にする。以下の請求項およびその均等物は、本発明の範囲を定義することが意図される。

Claims (20)

  1. システムであって、
    マスタノードと、
    前記マスタノードによって制御される複数のワーカノードであって、各ワーカノードは、分散型データベースパーティションの25個以上のモジュール式ブロックを記憶し、各モジュール式ブロックは、前記分散型データベースパーティションと関連付けられたデータのセグメントを保持し、前記分散型データベースパーティションの各モジュール式ブロックは、5Gバイト以下のサイズを有し、前記分散型データベースパーティションと関連付けられた変更を記録する関連付けられたログファイルを有し、前記分散型データベースパーティションと関連付けられた前記変更は、前記データのセグメントの物理的表現から独立している論理表現で記録される、ワーカノードと
    を備え、
    前記マスタノードおよび前記複数のワーカノードは、標準的ネットワーク接続およびプロトコルを利用して分散型ネットワークを経由して通信する汎用サーバである、システム。
  2. 前記マスタノードは、データベースクエリを受信し、前記データベースクエリをパーティション分割し、前記複数のワーカノードにわたって並行して起動する、請求項1に記載のシステム。
  3. 前記マスタノードは、前記モジュール式ブロック内のデータに関する統計を収集する、請求項1に記載のシステム。
  4. 前記マスタノードは、前記統計を使用して、データベースクエリを最適化する、請求項3に記載のシステム。
  5. 前記マスタノードは、モジュール式ブロックの場所、サイズ、関連付けられたログファイル、および更新時間から選択される統計を収集する、請求項3に記載のシステム。
  6. 前記マスタノードは、前記複数のワーカノードと通信し、前記統計を更新する、請求項5に記載のシステム。
  7. 前記マスタノードは、前記複数のワーカノードに対する可用性情報を維持する、請求項1に記載のシステム。
  8. 前記マスタノードは、前記複数のワーカノードにわたって前記モジュール式ブロックに対する分散情報を維持する、請求項1に記載のシステム。
  9. 前記マスタノードは、前記複数のワーカノードに対する前記可用性情報を使用して、新しいモジュール式ブロックの配置を決定する、請求項7に記載のシステム。
  10. 前記マスタノードは、前記モジュール式ブロックに対する前記分散情報に基づいて、新しいモジュール式ブロックの配置を決定する、請求項8に記載のシステム。
  11. 前記マスタノードは、前記複数のワーカノードにわたってモジュール式ブロックを再分散させる、請求項1に記載のシステム。
  12. 前記マスタノードは、前記可用性情報に基づいて、モジュール式ブロックを再分散させる、請求項7に記載のシステム。
  13. 前記マスタノードは、前記モジュール式ブロックに対する前記分散情報に基づいて、モジュール式ブロックを再分散させる、請求項8に記載のシステム。
  14. 前記マスタノードは、前記複数のワーカノードにわたってモジュール式ブロックの複製を制御する、請求項1に記載のシステム。
  15. 前記マスタノードは、前記複数のワーカノードに対する可用性情報に基づいて、前記モジュール式ブロックの複製を制御する、請求項14に記載のシステム。
  16. 前記マスタノードは、前記モジュール式ブロックに対する分散情報に基づいて、前記モジュール式ブロックの複製を制御する、請求項14に記載のシステム。
  17. 複製は、構成可能パラメータである、請求項14に記載のシステム。
  18. 前記モジュール式ブロックは、5GB未満の任意の値に構成可能なサイズを有する、請求項1に記載のシステム。
  19. 前記マスタノードは、現在のモジュール式ブロックが最大サイズを超えると、新しいモジュール式ブロックを生成する、請求項1に記載のシステム。
  20. 前記マスタノードは現在のモジュール式ブロックが最大サイズを超えると、前記現在のモジュール式ブロックからの情報の半分を有する新しいモジュール式ブロックを生成する、請求項1に記載のシステム。
JP2014551315A 2012-01-06 2013-01-03 モジュール式ブロックおよび関連付けられたログファイルを伴う分散型データベース Active JP6280872B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/345,620 2012-01-06
US13/345,620 US10860563B2 (en) 2012-01-06 2012-01-06 Distributed database with modular blocks and associated log files
PCT/US2013/020142 WO2013103716A1 (en) 2012-01-06 2013-01-03 Distributed database with modular blocks and associated log files

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2017143618A Division JP2017195004A (ja) 2012-01-06 2017-07-25 モジュール式ブロックおよび関連付けられたログファイルを伴う分散型データベース

Publications (3)

Publication Number Publication Date
JP2015504218A JP2015504218A (ja) 2015-02-05
JP2015504218A5 JP2015504218A5 (ja) 2016-01-28
JP6280872B2 true JP6280872B2 (ja) 2018-02-14

Family

ID=48745403

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2014551315A Active JP6280872B2 (ja) 2012-01-06 2013-01-03 モジュール式ブロックおよび関連付けられたログファイルを伴う分散型データベース
JP2017143618A Withdrawn JP2017195004A (ja) 2012-01-06 2017-07-25 モジュール式ブロックおよび関連付けられたログファイルを伴う分散型データベース

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2017143618A Withdrawn JP2017195004A (ja) 2012-01-06 2017-07-25 モジュール式ブロックおよび関連付けられたログファイルを伴う分散型データベース

Country Status (4)

Country Link
US (2) US10860563B2 (ja)
EP (1) EP2801045A4 (ja)
JP (2) JP6280872B2 (ja)
WO (1) WO2013103716A1 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10860563B2 (en) 2012-01-06 2020-12-08 Microsoft Technology Licensing, Llc Distributed database with modular blocks and associated log files
US8996464B2 (en) * 2012-06-11 2015-03-31 Microsoft Technology Licensing, Llc Efficient partitioning techniques for massively distributed computation
US8977909B2 (en) 2012-07-19 2015-03-10 Dell Products L.P. Large log file diagnostics system
US9189503B2 (en) 2012-12-06 2015-11-17 Microsoft Technology Licensing, Llc Database scale-out
JP2015072629A (ja) * 2013-10-03 2015-04-16 富士通株式会社 データ処理プログラム及びデータ処理方法
US10491663B1 (en) * 2013-10-28 2019-11-26 Amazon Technologies, Inc. Heterogeneous computations on homogeneous input data
US10635644B2 (en) * 2013-11-11 2020-04-28 Amazon Technologies, Inc. Partition-based data stream processing framework
US9830373B2 (en) * 2015-01-06 2017-11-28 Entit Software Llc Data transfer requests with data transfer policies
US10838983B2 (en) * 2015-01-25 2020-11-17 Richard Banister Method of integrating remote databases by parallel update requests over a communications network
US10623486B2 (en) * 2015-06-15 2020-04-14 Redis Labs Ltd. Methods, systems, and media for providing distributed database access during a network split
GB2554250B (en) * 2015-07-02 2021-09-01 Google Llc Distributed storage system with replica location selection
US10552454B2 (en) * 2015-11-13 2020-02-04 Sap Se Efficient partitioning of related database tables
US10909143B1 (en) * 2017-04-14 2021-02-02 Amazon Technologies, Inc. Shared pages for database copies
US10740733B2 (en) * 2017-05-25 2020-08-11 Oracle International Corporaton Sharded permissioned distributed ledgers
US10614069B2 (en) * 2017-12-01 2020-04-07 Palantir Technologies Inc. Workflow driven database partitioning
US11138230B2 (en) * 2018-03-26 2021-10-05 Mcafee, Llc Methods, apparatus, and systems to aggregate partitioned computer database data
US20210272037A1 (en) * 2018-07-24 2021-09-02 Truckl Llc Systems for supply chain event management
US11086840B2 (en) 2018-12-07 2021-08-10 Snowflake Inc. Transactional streaming of change tracking data
US11347813B2 (en) * 2018-12-26 2022-05-31 Hitachi Vantara Llc Cataloging database metadata using a signature matching process
JP7412974B2 (ja) 2019-01-16 2024-01-15 株式会社東芝 コンピュータ、データベースシステム、計算システム、計算方法、プログラム、及び記憶媒体
JP7270755B2 (ja) * 2019-03-04 2023-05-10 ヒタチ ヴァンタラ エルエルシー 分散システムでのメタデータルーティング
US10985980B2 (en) * 2019-04-16 2021-04-20 International Business Machines Corporation Detecting cloned members of an enterprise messaging environment
US11561864B1 (en) 2020-03-26 2023-01-24 Amazon Technologies, Inc. Creating database clones at a specified point-in-time
US11954125B2 (en) * 2020-05-22 2024-04-09 Yahoo Assets Llc Partitioned backing store implemented in a distributed database
CN112132705B (zh) * 2020-09-30 2023-07-11 国网智能科技股份有限公司 一种变电站全景数据存储与再现方法及系统
JP2022078493A (ja) 2020-11-13 2022-05-25 株式会社日立製作所 スケールシステム、演算方法
CN113032447A (zh) * 2020-12-31 2021-06-25 一汽资本控股有限公司 一种数据分布式存储的方法以及分布式数据存储系统

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0512338A (ja) 1991-07-05 1993-01-22 Nec Corp 分散データベースのデータ配置方式
US5530855A (en) * 1992-10-13 1996-06-25 International Business Machines Corporation Replicating a database by the sequential application of hierarchically sorted log records
US5819083A (en) 1993-09-02 1998-10-06 International Business Machines Corporation Minimal sufficient buffer space for data redistribution in a parallel database system
US5960194A (en) 1995-09-11 1999-09-28 International Business Machines Corporation Method for generating a multi-tiered index for partitioned data
US5734829A (en) * 1995-10-20 1998-03-31 International Business Machines Corporation Method and program for processing a volume of data on a parallel computer system
JPH09218858A (ja) 1996-02-14 1997-08-19 Hitachi Ltd 分散型データベース管理システム
US7904569B1 (en) * 1999-10-06 2011-03-08 Gelvin David C Method for remote access of vehicle components
US7272613B2 (en) * 2000-10-26 2007-09-18 Intel Corporation Method and system for managing distributed content and related metadata
US6970876B2 (en) 2001-05-08 2005-11-29 Solid Information Technology Method and arrangement for the management of database schemas
US6754657B2 (en) 2001-08-24 2004-06-22 Microsoft Corporation Time stamping of database records
US20040230862A1 (en) 2003-05-16 2004-11-18 Arif Merchant Redundant data assigment in a data storage system
US7546284B1 (en) 2003-06-11 2009-06-09 Blue Titan Software, Inc. Virtual message persistence service
US7334002B2 (en) * 2004-02-27 2008-02-19 Microsoft Corporation System and method for recovery units in databases
US7412345B2 (en) 2004-05-18 2008-08-12 General Electric Company System, method, and article of manufacture for obtaining data
US7672930B2 (en) * 2005-04-05 2010-03-02 Wal-Mart Stores, Inc. System and methods for facilitating a linear grid database with data organization by dimension
JP4839706B2 (ja) 2005-07-12 2011-12-21 株式会社日立製作所 データベース管理システムのインデックス運用方法
US7603396B2 (en) 2005-08-19 2009-10-13 Synchsource, Inc. Time-span representation and time chain of events in a relational database
US7487229B2 (en) * 2006-03-30 2009-02-03 Intel Corporation Methods and apparatus to synchronize local times at nodes in a computer network
JP4940730B2 (ja) * 2006-03-31 2012-05-30 富士通株式会社 データベースシステム運用方法,データベースシステム,データベース装置及びバックアッププログラム
US8131696B2 (en) 2006-05-19 2012-03-06 Oracle International Corporation Sequence event processing using append-only tables
US7991800B2 (en) 2006-07-28 2011-08-02 Aprimo Incorporated Object oriented system and method for optimizing the execution of marketing segmentations
US7627611B2 (en) 2006-08-17 2009-12-01 Osisoft, Inc. Conflict resolution in database replication through autonomous node qualified folding
US7647590B2 (en) * 2006-08-31 2010-01-12 International Business Machines Corporation Parallel computing system using coordinator and master nodes for load balancing and distributing work
KR101380936B1 (ko) 2006-10-05 2014-04-10 스플렁크 인코퍼레이티드 시계열 검색 엔진
US8156107B2 (en) 2007-02-02 2012-04-10 Teradata Us, Inc. System and method for join-partitioning for local computability of query over shared-nothing clusters
US7895501B2 (en) 2007-02-06 2011-02-22 Vision Solutions, Inc. Method for auditing data integrity in a high availability database
AU2008201035A1 (en) 2007-04-13 2008-10-30 Acei Ab A partition management system
EP1981231B1 (en) 2007-04-13 2010-09-22 Research In Motion Limited Direct access electronic mail (EMail) distribution and synchronization system with out-of-coverage notification
US8209294B2 (en) 2007-06-15 2012-06-26 Oracle International Corporation Dynamic creation of database partitions
US7725440B2 (en) 2007-09-26 2010-05-25 Yahoo! Inc. Restoring a database using fuzzy snapshot techniques
US8307443B2 (en) 2007-09-28 2012-11-06 Microsoft Corporation Securing anti-virus software with virtualization
US8306945B2 (en) 2007-10-08 2012-11-06 Bmc Software, Inc. Associating database log records into logical groups
US7917512B2 (en) 2007-11-30 2011-03-29 International Business Machines Corporation Method for automated design of range partitioned tables for relational databases
US8392482B1 (en) 2008-03-31 2013-03-05 Amazon Technologies, Inc. Versioning of database partition maps
US8484211B2 (en) * 2008-07-02 2013-07-09 Lexisnexis Risk Solutions Fl Inc. Batch entity representation identification using field match templates
WO2010037794A2 (en) 2008-10-03 2010-04-08 Telefonaktiebolaget Lm Ericsson (Publ) Monitoring mechanism for a distributed database
US9996572B2 (en) 2008-10-24 2018-06-12 Microsoft Technology Licensing, Llc Partition management in a partitioned, scalable, and available structured storage
CN101478359B (zh) 2009-01-16 2013-01-23 华为技术有限公司 一种管理ieee1588时戳的方法、装置及系统
CN102667761B (zh) * 2009-06-19 2015-05-27 布雷克公司 可扩展的集群数据库
US8762333B2 (en) 2009-07-08 2014-06-24 Pivotal Software, Inc. Apparatus and method for read optimized bulk data storage
US8397293B2 (en) 2009-12-31 2013-03-12 International Business Machines Corporation Suspicious node detection and recovery in mapreduce computing
US8359316B2 (en) 2010-03-01 2013-01-22 International Business Machines Corporation Database table look-up
JPWO2011118427A1 (ja) 2010-03-24 2013-07-04 日本電気株式会社 クエリ装置、クエリ分割方法、及びクエリ分割用プログラム
JP5488178B2 (ja) 2010-04-30 2014-05-14 富士通株式会社 データ管理プログラム及び方法、並びにノード装置
US8935232B2 (en) * 2010-06-04 2015-01-13 Yale University Query execution systems and methods
US10860563B2 (en) 2012-01-06 2020-12-08 Microsoft Technology Licensing, Llc Distributed database with modular blocks and associated log files

Also Published As

Publication number Publication date
US10949411B2 (en) 2021-03-16
JP2017195004A (ja) 2017-10-26
EP2801045A4 (en) 2015-07-01
US20160179860A1 (en) 2016-06-23
WO2013103716A1 (en) 2013-07-11
EP2801045A1 (en) 2014-11-12
US20130311441A1 (en) 2013-11-21
JP2015504218A (ja) 2015-02-05
US10860563B2 (en) 2020-12-08

Similar Documents

Publication Publication Date Title
JP6280872B2 (ja) モジュール式ブロックおよび関連付けられたログファイルを伴う分散型データベース
US9753999B2 (en) Distributed database with mappings between append-only files and repartitioned files
US20130311488A1 (en) Time Stamp Bounded Addition of Data to an Append-Only Distributed Database Table
US11755415B2 (en) Variable data replication for storage implementing data backup
US20130311421A1 (en) Logical Representation of Distributed Database Table Updates in an Append-Only Log File
Niazi et al. {HopsFS}: Scaling Hierarchical File System Metadata Using {NewSQL} Databases
US9317524B2 (en) Location assignment daemon (LAD) for a distributed storage system
Vora Hadoop-HBase for large-scale data
US8626717B2 (en) Database backup and restore with integrated index reorganization
CN108509462B (zh) 一种同步活动事务表的方法及装置
KR20180021679A (ko) 일관된 데이터베이스 스냅샷들을 이용한 분산 데이터베이스에서의 백업 및 복원
US20110060940A1 (en) N+1 failover and resynchronization of data storage appliances
US9323791B2 (en) Apparatus and method for expanding a shared-nothing system
WO2016148670A1 (en) Deduplication and garbage collection across logical databases
EP2534569B1 (en) System and method for managing replicas of objects in a distributed storage system
US8423517B2 (en) System and method for determining the age of objects in the presence of unreliable clocks
EP4330831A2 (en) Data consistency mechanism for hybrid data processing
Saxena et al. Concepts of HBase archetypes in big data engineering
Poonthottam et al. A dynamic data placement scheme for hadoop using real-time access patterns
Dasari et al. Performance Evaluation of Structured and Unstructured Data in PIG/HADOOP and MONGO-DB Environments
CN118035260A (zh) 数据更新方法、装置、计算机可读存储介质和电子设备
Mukherjee Benchmarking Hadoop performance on different distributed storage systems

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151130

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170605

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180122

R150 Certificate of patent or registration of utility model

Ref document number: 6280872

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250