JPWO2013141308A1 - 分散ストレージシステム、ストレージ制御方法およびプログラム - Google Patents

分散ストレージシステム、ストレージ制御方法およびプログラム Download PDF

Info

Publication number
JPWO2013141308A1
JPWO2013141308A1 JP2014506275A JP2014506275A JPWO2013141308A1 JP WO2013141308 A1 JPWO2013141308 A1 JP WO2013141308A1 JP 2014506275 A JP2014506275 A JP 2014506275A JP 2014506275 A JP2014506275 A JP 2014506275A JP WO2013141308 A1 JPWO2013141308 A1 JP WO2013141308A1
Authority
JP
Japan
Prior art keywords
update
data
unit
update information
data storage
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.)
Pending
Application number
JP2014506275A
Other languages
English (en)
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2014506275A priority Critical patent/JPWO2013141308A1/ja
Publication of JPWO2013141308A1 publication Critical patent/JPWO2013141308A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • 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
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/061Improving I/O performance
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

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

Abstract

同一のデータを異なる複数のデータ構造で保持する分散ストレージシステムにおいて、各データ構造に適したアクセスの頻度および量の変化に従って、データの更新をデータ格納部に反映させるタイミングを適切に調整する。分散ストレージシステムは、第1のデータ構造でデータを保持する第1のデータ格納部と、第2のデータ構造でデータを保持する第2のデータ格納部と、データの更新内容を表す更新情報を保持するとともに、所定の更新条件が満たされた場合、更新情報を第2のデータ格納部に適用して、更新内容を第2のデータ格納部に反映させる更新情報保持部と、更新情報保持部が保持する更新情報を監視し、第2のデータ格納部への更新情報の適用状態を更新状況として抽出する更新状況監視部と、更新状況に応じて決定された変更命令に基づいて、所定の更新条件を変更する更新条件変更部と、を備える。(図1)

Description

[関連出願についての記載]
本発明は、日本国特許出願:特願2012−065190号(2012年3月22日出願)に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、分散ストレージシステム、ストレージ制御方法およびプログラムに関し、特に、異なるデータ構造で複製を保持する分散ストレージシステム、その動的性能パラメータの監視、調整等の制御を行うストレージ制御方法およびプログラムに関する。
ネットワークを介して多数の計算機を接続し、各計算機のHDD(Hard Disk Drive)やメモリを用いてデータを格納・利用する分散ストレージ技術が知られている。分散ストレージ技術では、いずれの計算機にデータを配置し、いずれの計算機でデータを処理するかを、ソフトウェアまたは特別なハードウェアによって決定する。また、システムの状態に応じて動的に動作を変更することで、システム内のリソース使用量を調整し、クライアント計算機に提供する性能の向上を図る。
格納されるデータは、意味的な単位でアクセスされる。例えば、関係データベースでは、データはレコード(record)またはタプル(tuple)と呼ばれる単位で書き込まれる。また、ファイルシステムでは、データはブロックの集合として書き込まれる。さらに、キーバリューストア(Key-Value Store)では、データはオブジェクトとして書き込まれる。こうして書き込まれたデータは、その単位ごとにクライアント計算機によって読み込まれる。
また、データを保持するHDD、メモリ等のデバイスにおいては、データを格納する空間に対して、アドレスと呼ばれる一意の番号が割り振られている。アドレスが隣接する領域へのアクセスは、一般に、高速に処理される。したがって、レコードやブロックが使用時になるべく連続アドレスでアクセスされるよう、アドレス空間にデータを配置する必要がある。
したがって、格納データのデータ構造が重要となる。ここで、データ構造とは、データの集まりをアドレス空間に配置するときの形式のことをいう。
例えば、オンライントランザクション処理で用いられる行指向の関係データベースでは、レコードを複数まとめたページと呼ばれる単位で、メモリ上のバッファまたはディスク上に書き込まれる。ページは、ディスクやメモリが高速にアクセスできる単位の固定長データである。オンライントランザクション処理では、レコード単位で更新、挿入、書き込みが行われるからである。
一方、データウェアハウス(Data Warehouse)等のデータ解析処理で用いられる列指向の関係データベースでは、各レコードをカラムまたは属性と呼ばれる単位に分解し、各レコードの同一の属性を連続してアドレス空間に配置する。データ解析処理では、属性単位ごとの利用が多いからである。また、列指向データベースでは、ある属性について同一の値をもつレコードが多く存在する場合、これらを圧縮して1つのデータにまとめることができ、データの格納効率が良い。
一例として、非特許文献1には、行指向データベースと列指向データベースそれぞれのデータ構造が記載されている。
ところで、上述の分散ストレージ技術では、同一のデータの複製データを、複数の計算機に格納することがある。これは、ある計算機が故障し、そのデータ格納デバイスがアクセス不能となった場合においても、クライアント計算機に対して格納データを提供するためである。特に、格納デバイスがDRAM(Dynamic Random Access Memory)等の揮発性メモリである場合、HDD等の磁気デバイスやSSD(Solid State Drive)等の不揮発性メモリと比較して、電源故障、ソフトウェア障害等により当該計算機のデータが失われる確率が高いため、3つ以上の複製データを異なる計算機に格納することもある。
また、複数の複製データを、それぞれ異なるデータ構造で格納し、異なる種類のアクセスに対して、各アクセスに適した複製をアクセス先として提供する技術が知られている。
特許文献1に記載された分散ストレージ方法では、データ更新時に行われるデータの複製において、複製先のデータノードでは、更新対象のデータを、それぞれ、指定された目的のデータ構造に変換してデータ格納部に格納し、その際、データノードは、更新対象のデータを一旦、中間構造を保持して更新に対する応答を返し、更新要求とは非同期で、目的のデータ構造に変換して格納する。
一方、特許文献2に記載された分散ストレージは、それぞれがデータ格納部を備え、ネットワーク結合される複数のデータノードを備え、データ更新時に行われるデータの複製において、複製先のデータノードでは、更新対象のデータを、一旦、書き込みデータ保持用の中間構造に格納し、更新要求とは非同期で、それぞれ目的のデータ構造に変換してデータ格納部に格納し、データノードへのアクセス頻度の履歴を記憶するアクセス履歴記録部を備え、データノードで非同期に行われる目的のデータ構造への変換の契機となる契機情報を、アクセス履歴記録部に記録されたアクセス情報に基づき、可変させる手段を備える。
また、耐障害性のための複製は、同期的に更新する必要がある。すなわち、両方の複製の更新が終了した段階で、クライアント計算機に更新終了を伝える必要がある。同一のデータを異なるデータ構造に格納する場合、一方のデータ構造は、他方のデータ構造と比較して、少量のデータ単位のアクセスには不向きなときがある。例えば、一方がHDD上のデータの更新であり、他方がメモリ上のデータの更新である場合、遅いほうのデータ構造が更新されるまで、クライアント計算機には更新完了通知が届かない。したがって、クライアント計算機の利用者は、システム性能が低下したように感じる。
ここで、遅いデータ構造の前段に、追記が高速な専用のデータ構造を設ける方法が知られている。例えば、非特許文献2に記載された技術では、データベースへの更新情報をメモリ上のコピーには適用し、HDD等の永続装置の上にはWAL(Write Ahead Logging、ログ先行書き込み)によって書き込み、その後、WALの内容をHDD上のマスターデータベースに更新する。また、更新が速いデータ構造をメモリ上の行指向保存形式のデータ構造とし、更新が遅いデータ構造をメモリ上の列指向保存形式のデータ構造とした場合にも、列指向保存形式の前段に更新情報を保持するメモリ上のFIFO(First-In First-Out)構造をはさむことで、高速にクライアント計算機に更新終了を返すことができる。このように、データストア(ないしはデータ格納部)への更新情報を一時的に保持する構成要素を、以下では、「更新情報保持部」と呼ぶ。
また、複数の計算機から構成された分散ストレージシステムは、管理者による監視が行われる。非特許文献3に記載された技術では、ネットワーク上の複数の計算機の単位時間当たりのCPU(Central Processing Unit)利用率やネットワークパケット送信量が、ウェブ(Web)画面に表示される。
特願2011−050151号 特願2011−169588号
上村純平 他、「GPU援用カラムストアデータベースの設計と評価」、情報処理学会研究報告、Vol.2011−HPC−130、No.26、pp.1−7、2011 C. Mohan, et al., "ARIES: A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks Using Write-Ahead Logging," ACM Transactions on Database Systems (TODS), Vol. 17, No. 1, March 1992, pp. 94-162. Ganglia Monitoring System, [online], [平成24年3月8日検索], インターネット<URL: http://monitor.millennium.berkeley.edu/> 北川源四郎、「時系列解析入門」、pp.120−123、岩波書店、2005
上記の特許文献及び非特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明者によってなされたものである。
分散ストレージシステムにおいて、第1のデータ構造と第2のデータ構造で複製を保持する場合を考える。ここで、第2のデータ構造は少量の更新に時間を要するため、更新情報保持部を用いて非同期に更新するものとする。
第1のデータ構造向けアクセスは、第1のデータ構造の複製により処理される。例えば、第1のデータ構造がメモリ上のバッファや、行指向保存形式である場合、レコード単位のリードアクセスは第1のデータ構造から読み書きされる。
一方、第2のデータ構造向けアクセスは、第2のデータ構造の複製により処理されるのが望ましい。例えば、第2のデータ構造がHDD上の行指向保存形式や、メモリ上の列指向保存形式である場合、レコードのある特定の属性だけを必要とするアクセスや、格納されたすべてのデータを順に必要とするようなアクセスは、第2のデータ構造の複製から読まれる。
第2のデータ構造を利用する場合において、更新情報保持部に更新情報が存在するときには、第2のデータ構造へのアクセスでは、最新の情報を利用することができない。そこで、第2のデータ構造へのアクセスが発生した場合には、分散ストレージシステムは、まず、第2のデータ構造の複製に付随する更新情報保持部に存在する更新情報を、更新情報が保持された順に第2のデータ構造に適用し、第2のデータ構造を最新のデータとする。その後、第2のデータ構造向けのアクセスが、最新データとなった第2のデータ構造で処理され、結果がクライアント計算機に返却される。
このとき、アクセスに要する時間は、蓄積された更新情報を第2のデータ構造に適用するのに要する時間と、第2のデータ構造にアクセスするのに要する時間とを足し合わせたものとなる。
ここで、更新情報保持部に蓄積された更新情報を適用するタイミングが、第2のデータ構造向けのアクセスが到達したときのみである場合、更新情報の量が多いとアクセス時間が長大化する。また、更新情報保持部における更新情報の格納量は有限であるため、第2のデータ構造向けのアクセスの発行頻度が低い場合、更新情報保持部における更新情報が溢れるおそれがある。
そこで、更新情報保持部には、更新情報を吐き出すための条件として更新条件を設け、更新条件が真となった場合、第2のデータ構造向けのアクセス到達の有無に依らず、格納された更新情報の全部または一部を第2のデータ構造に適用する。更新条件として、例えば、更新情報の合計データ量が一定量となった場合が考えられる。また、他の更新条件として、更新情報の更新数が一定数となった場合が考えられる。さらに、他の更新条件として、前回の更新情報適用からの経過時間が定められた一定時間を経過した場合が考えられる。
第2のデータ構造向けアクセスの一度のアクセスが微小時間であることが多い場合には、更新情報を頻繁に適用することで、更新情報保持部に蓄積される更新情報の数を少なくしないと、第2のデータ構造向けのアクセス性能が低下するおそれがある。これは、更新情報を第2のデータ構造に適用する時間の全部または一部が第2のデータ構造へのアクセス時間に含まれるからである。
一方、第2のデータ構造向けのアクセスの発生頻度が低く、かつ、一度のアクセスが長大である場合には、第2のデータ構造は少量の更新のアクセス性能が悪いため、更新情報の適用頻度が高いと、第2のデータ構造の複製を保持する計算機のリソースをより多く消費してしまう。また、同一の計算機上に第1のデータ構造の複製が存在する場合や、同一の計算機を他の用途に利用していた場合にも、性能が低下する。
これらのアクセスの発生率や時間は、運用時間の経過とともに変化することが多い。したがって、第1のデータ構造向けアクセスの頻度および量、ならびに、第2のデータ構造向けアクセスの頻度および量の変化によって、更新条件を適切に設定しないと、分散ストレージシステムの性能が低下するという問題がある。
そこで、同一のデータを異なる複数のデータ構造で保持する分散ストレージシステムにおいて、各データ構造に適したアクセスの頻度および量の変化に従って、データの更新を各データ格納部に反映させるタイミングを適切に調整できるようにすることが課題となる。本発明の目的は、かかる課題を解決する分散ストレージシステム、ストレージ制御方法およびプログラムを提供することにある。
本発明の第1の視点に係る分散ストレージシステムは、
第1のデータ構造でデータを保持する第1のデータ格納部と、
前記第1のデータ構造とは異なる第2のデータ構造で、前記データを保持する第2のデータ格納部と、
前記データの更新内容を表す更新情報を保持するとともに、所定の更新条件が満たされた場合、前記更新情報を前記第2のデータ格納部に適用して、前記更新内容を前記第2のデータ格納部に反映させる更新情報保持部と、
前記更新情報保持部が保持する前記更新情報を監視し、前記第2のデータ格納部への前記更新情報の適用状態を更新状況として抽出する更新状況監視部と、
前記更新状況に応じて決定された、前記所定の更新条件の変更命令に基づいて、前記所定の更新条件を変更する更新条件変更部と、を備える。
本発明の第2の視点に係るストレージ制御方法は、
第1のデータ構造でデータを保持する第1のデータ格納部と、前記第1のデータ構造とは異なる第2のデータ構造で前記データを保持する第2のデータ格納部と、前記データの更新内容を表す更新情報を保持する更新情報保持部と、を備えた分散ストレージシステムを制御するストレージ制御方法であって、
所定の更新条件が満たされた場合、前記更新情報を前記第2のデータ格納部に適用して、前記更新内容を前記第2のデータ格納部に反映させる工程と、
前記更新情報保持部が保持する前記更新情報を監視し、前記第2のデータ格納部への前記更新情報の適用状態を更新状況として抽出する工程と、
前記更新状況に応じて決定された、前記所定の更新条件の変更命令に基づいて、前記所定の更新条件を変更する工程と、を含む。
本発明の第3の視点に係るプログラムは、
第1のデータ構造でデータを保持する第1のデータ格納部と、前記第1のデータ構造とは異なる第2のデータ構造で前記データを保持する第2のデータ格納部と、前記データの更新内容を表す更新情報を保持する更新情報保持部と、を備えた分散ストレージシステムを制御するコンピュータに対して、
所定の更新条件が満たされた場合、前記更新情報を前記第2のデータ格納部に適用して、前記更新内容を前記第2のデータ格納部に反映させる処理と、
前記更新情報保持部が保持する前記更新情報を監視し、前記第2のデータ格納部への前記更新情報の適用状態を更新状況として抽出する処理と、
前記更新状況に応じて決定された、前記所定の更新条件の変更命令に基づいて、前記所定の更新条件を変更する処置と、を実行させる。
なお、プログラムは、非トランジエントなコンピュータ読み取り可能な記録媒体(non-transitory computer-readable recording medium)に記録されたプログラム製品として提供することができる。
本発明に係る分散ストレージシステム、ストレージ制御方法およびプログラムによると、同一のデータを異なる複数のデータ構造で保持する分散ストレージシステムにおいて、各データ構造に適したアクセスの頻度および量の変化に従って、データの更新を各データ格納部に反映させるタイミングを適切に調整することが可能となる。
第1の実施形態に係る分散ストレージシステムの構成を一例として示すブロック図である。 第1の実施形態に係る分散ストレージシステムにおいて、各ストレージノードが第1および第2のデータ格納部を有する場合の構成を一例として示すブロック図である。 第2の実施形態に係る分散ストレージシステムの構成を一例として示すブロック図である。 第2の実施形態に係る分散ストレージシステムにおいて、各ストレージノードが第1および第2のデータ格納部を有する場合の構成を一例として示すブロック図である。 第3の実施形態に係る分散ストレージシステムの構成を一例として示すブロック図である。 第3の実施形態に係る分散ストレージシステムにおけるストレージノードの構成を一例として示すブロック図である。 関連技術である行指向保存形式を説明する図である。 関連技術である列指向保存形式を説明する図である。 関連技術であるハッシュマップ形式を説明する図である。 第3の実施形態に係る分散ストレージシステムにおけるランダムリードアクセス動作を一例として示すシーケンス図である。 第3の実施形態に係る分散ストレージシステムにおけるライトアクセス動作を一例として示すシーケンス図である。 第3の実施形態に係る分散ストレージシステムにおけるシーケンシャルリードアクセス動作を一例として示すシーケンス図である。 第3の実施形態に係る分散ストレージシステムにおけるデータ解析アクセス動作を一例として示すシーケンス図である。 第3の実施形態に係る分散ストレージシステムにおける更新状況表示部の表示内容を一例として示す図である。 第3の実施形態に係る分散ストレージシステムにおける更新条件入力部の構成を一例として示す図である。 第3の実施形態に係る分散ストレージシステムにおける更新条件入力部の構成を一例として示す図である。 第3の実施形態に係る分散ストレージシステムにおける更新状況表示部および更新条件入力部を同時に実装したときの構成を一例として示す図である。 第3の実施形態に係る分散ストレージシステムにおける更新条件入力部の構成を一例として示す図である。 第4の実施形態に係る分散ストレージシステムの構成を一例として示すブロック図である。 第4の実施形態に係る分散ストレージシステムにおける更新情報制御部の実装アルゴリズムの一例について説明するための図である。 第4の実施形態に係る分散ストレージシステムにおける更新情報制御部の実装アルゴリズムの一例について説明するための図である。
はじめに、一実施形態に係る分散ストレージシステムの概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
図1は、一実施形態に係る分散ストレージシステムの構成を一例として示すブロック図である。図1を参照すると、分散ストレージシステムは、第1のデータ構造でデータを保持する第1のデータ格納部(12a)と、第1のデータ構造とは異なる第2のデータ構造で、前記データを保持する第2のデータ格納部(12b)と、前記データの更新内容を表す更新情報を保持するとともに、所定の更新条件が満たされた場合、前記更新情報を第2のデータ格納部(12b)に適用して、前記更新内容を第2のデータ格納部(12b)に反映させる更新情報保持部(23)と、更新情報保持部(23)が保持する前記更新情報を監視し、第2のデータ格納部(12b)への前記更新情報の適用状態を更新状況として抽出する更新状況監視部(24)と、前記更新状況に応じて決定された、前記所定の更新条件の変更命令に基づいて、前記所定の更新条件を変更する更新条件変更部(27)と、を備える。
図1を参照すると、分散ストレージシステムは、更新状況監視部(24)によって抽出された前記更新状況を表示する更新状況表示部(33)と、前記変更命令を受け付ける更新条件入力部(41)と、を備えていてもよい。
かかる分散ストレージシステムによると、分散ストレージシステムが同一のデータを異なる複数のデータ構造で保持する場合に、各データ構造に適したアクセスの頻度および量の変化に従って、データの更新を各データ格納部に反映させるタイミングを適切に調整することが可能となる。なぜなら、分散ストレージシステムの管理者は、更新状況表示部(33)に表示された更新状況、すなわち、第2のデータ格納部(12b)への更新情報の適用状態を把握することができ、必要に応じて、更新条件を変更するための変更命令を、更新条件入力部(41)に入力することで、更新条件を調整することができるからである。
図3を参照すると、分散ストレージシステムは、前記更新状況に応じて、前記変更命令を生成する更新情報制御部(34)を備えていてもよい。ここで、更新情報制御部(34)は、前記更新状況に基づいて、更新情報保持部(23)が将来保持する更新情報の個数を予測し、予測した個数に応じて前記変更命令を生成してもよい。また、更新情報制御部(34)は、前記更新情報が第2のデータ格納部(12b)に適用される頻度を変更する命令を、前記変更命令として生成してもよい。さらに、更新情報制御部(34)は、予測した個数が所定の上限値よりも多い場合、前記更新情報が第2のデータ格納部(12b)に適用される頻度が高くなるように前記変更命令を生成し、一方、予測した個数が所定の下限値よりも少ない場合、前記頻度が低くなるように前記変更命令を生成してもよい。
かかる分散ストレージシステムによると、分散ストレージシステムが同一のデータを異なる複数のデータ構造で保持する場合に、各データ構造に適したアクセスの頻度および量の変化に従って、データの更新を各データ格納部に反映させるタイミングを自動で調整することが可能となる。なぜなら、更新情報制御部(34)は、更新状況、すなわち、第2のデータ格納部(12b)への更新情報の適用状態に応じて、更新条件を変更するための変更命令を生成し、更新条件を自動で調整するからである。
なお、本発明において、下記の形態が可能である。
[形態1]
上記第1の視点に係る分散ストレージシステムのとおりである。
[形態2]
前記分散ストレージシステムは、前記更新状況監視部によって抽出された前記更新状況を表示する更新状況表示部と、
前記変更命令を受け付ける更新条件入力部と、を備えていてもよい。
[形態3]
前記分散ストレージシステムは、前記第1のデータ格納部、前記第2のデータ格納部、前記更新情報保持部、前記更新状況監視部、および、前記更新条件変更部を有する複数の計算機を備え、
前記更新状況表示部は、前記複数の計算機のそれぞれに設けられた前記更新状況監視部によって抽出された前記更新状況を表示してもよい。
[形態4]
前記更新条件入力部は、前記複数の計算機のそれぞれに設けられた前記更新条件変更部に対する前記変更命令を受け付けてもよい。
[形態5]
前記更新状況表示部は、前記更新情報を円グラフ、棒グラフおよび折れ線グラフの少なくともいずれかを用いて表示してもよい。
[形態6]
前記分散ストレージシステムは、前記更新状況に応じて、前記変更命令を生成する更新情報制御部を備えていてもよい。
[形態7]
前記更新情報制御部は、前記更新状況に基づいて、前記更新情報保持部が将来保持する更新情報の個数を予測し、前記個数に応じて前記変更命令を生成してもよい。
[形態8]
前記更新情報制御部は、前記更新情報が前記第2のデータ格納部に適用される頻度を変更する命令を、前記変更命令として生成してもよい。
[形態9]
前記更新情報制御部は、前記個数が所定の上限値よりも多い場合、前記更新情報が前記第2のデータ格納部に適用される頻度が高くなるように前記変更命令を生成し、前記個数が所定の下限値よりも少ない場合、前記頻度が低くなるように前記変更命令を生成してもよい。
[形態10]
前記更新情報制御部は、前記更新情報保持部が保持する更新情報の個数を時刻の多項式で近似し、前記更新情報保持部が将来保持する更新情報の個数を前記多項式に基づいて推定してもよい。
[形態11]
前記第1のデータ格納部は、前記データを行指向で保持する行指向データベースであり、
前記第2のデータ格納部は、前記データを列指向で保持する列指向データベースであってもよい。
[形態12]
前記第1のデータ格納部は、主記憶上に設けられたキーバリューストア(Key-Value Store)であり、
前記第2のデータ格納部は、主記憶上に設けられた列指向データベースであってもよい。
[形態13]
前記第1のデータ格納部に格納された前記データは、CPU(Central Processing Unit)によって処理され、
前記第2のデータ格納部に格納された前記データは、GPU(Graphics Processing Unit)によって処理されてもよい。
[形態14]
前記更新情報保持部は、レコードに対する更新ログを前記更新情報として保持し、
前記更新状況監視部は、前記更新情報保持部に存在する更新ログの個数を、前記更新状況として抽出してもよい。
[形態15]
前記更新状況監視部は、前記更新情報保持部に存在する更新ログの個数の時間平均を、前記更新状況として抽出してもよい。
[形態16]
前記第2のデータ格納部は、オブジェクト、タプル、ブロック等の所定の単位で前記データを管理し、
前記更新情報保持部が保持する更新情報の個数は、前記所定の単位による更新アクセスまたは削除アクセスに応じて増加し、前記所定の単位による参照アクセスによっては変動しないようにしてもよい。
[形態17]
前記更新情報保持部が保持する更新情報の個数は、複数の単位の参照アクセスが前記第2のデータ格納部に到達した場合、ゼロに戻るようにしてもよい。
[形態18]
前記更新情報保持部が保持する更新情報の個数は、前記所定の更新条件が満たされた場合、ゼロに戻るようにしてもよい。
[形態19]
前記更新情報保持部は、レコードに対する更新ログを第1のFIFO(First-In First-Out)形式で保持し、前記第2のデータ格納部へのアクセスが生じた場合、更新情報を保持しない第2のFIFO形式に切り替え、前記第1のFIFO形式の更新ログを前記第2のデータ格納部に適用しつつ、クライアント計算機からのライトアクセスを前記第2のFIFO形式に保持してもよい。
[形態20]
上記第2の視点に係るストレージ制御方法のとおりである。
[形態21]
前記ストレージ制御方法は、抽出された前記更新状況を表示する工程と、
前記変更命令を受け付ける工程と、を含んでもよい。
[形態22]
前記ストレージ制御方法は、前記更新状況に応じて、前記変更命令を生成する工程を含んでもよい。
[形態23]
前記ストレージ制御方法において、前記更新状況に基づいて、前記更新情報保持部が将来保持する更新情報の個数を予測し、前記個数に応じて前記変更命令を生成してもよい。
[形態24]
前記ストレージ制御方法において、前記更新情報が前記第2のデータ格納部に適用される頻度を変更する命令を、前記変更命令として生成してもよい。
[形態25]
前記ストレージ制御方法において、前記個数が所定の上限値よりも多い場合、前記更新情報が前記第2のデータ格納部に適用される頻度が高くなるように前記変更命令を生成し、前記個数が所定の下限値よりも少ない場合、前記頻度が低くなるように前記変更命令を生成してもよい。
[形態26]
前記ストレージ制御方法において、前記第1のデータ格納部は、前記データを行指向で保持する行指向データベースであり、
前記第2のデータ格納部は、前記データを列指向で保持する列指向データベースであってもよい。
[形態27]
前記ストレージ制御方法において、前記更新情報保持部は、レコードに対する更新ログを前記更新情報として保持し、
前記更新情報保持部に存在する更新ログの個数を、前記更新状況として抽出してもよい。
[形態28]
前記ストレージ制御方法において、前記第2のデータ格納部は、オブジェクト、タプル、ブロック等の所定の単位で前記データを管理し、
前記更新情報保持部が保持する更新情報の個数は、前記所定の単位による更新アクセスまたは削除アクセスに応じて増加し、前記所定の単位による参照アクセスによっては変動しないようにしてもよい。
[形態29]
上記第3の視点に係るプログラムのとおりである。
[形態30]
前記プログラムは、抽出された前記更新状況を表示する処理と、
前記変更命令を受け付ける処置と、を前記コンピュータに実行させてもよい。
[形態31]
前記プログラムは、前記更新状況に応じて、前記変更命令を生成する処理を、前記コンピュータに実行させてもよい。
(実施形態1)
第1の実施形態に係る分散ストレージシステムについて、図面を参照して説明する。図1は、本実施形態に係る分散ストレージシステムの構成を一例として示すブロック図である。
図1を参照すると、分散ストレージシステムは、第1のデータ格納部12a、第2のデータ格納部12b、更新情報保持部23、更新状況監視部24、更新状況送信部25、更新状況受信部32、更新状況表示部33、更新条件入力部41、更新条件送信部42、更新条件受信部26、および、更新条件変更部27、を備える。
第2のデータ格納部12bは、第1のデータ格納部12aとは異なる特徴(例えば、データ構造)を持つ。更新情報保持部23は、第2のデータ格納部12bへの適用前の更新情報を更新条件が偽(false)の間保持し、当該条件が真(true)のとき第2のデータ格納部12bに適用する。更新状況監視部24は、更新情報保持部23が保持する更新情報の状態を監視する。更新状況送信部25は、更新状況監視部24から出力される更新状況を送信する。更新状況受信部32は、当該更新状況を受信する。更新状況表示部33は、当該更新状況を表す情報を表示する。更新条件入力部41は、更新条件変更命令を受け付ける。更新条件送信部42は、当該更新条件変更命令を送信する。更新条件受信部26は、当該更新条件変更命令を受信する。更新条件変更部27は、当該更新条件変更命令に基づいて更新情報保持部23の更新条件を変更する。
また、図2に示すように、分散ストレージシステムは、第1のデータ格納部12aと第2のデータ格納部12bを備える1つ以上のシステム計算機21を備え、更新状況受信部32は1つ以上の更新状況送信部25から更新状況を受信し、更新状況表示部33は1つ以上の更新状況を表示するようにしてもよい。
また、図2に示すように、更新条件入力部41は、1つ以上の更新条件変更命令を受け付け、更新条件送信部42は、1つの更新条件変更命令につき、1つ以上の更新条件受信部26に送信するようにしてもよい。
本実施形態に係る分散ストレージシステムによると、第1のデータ構造向けアクセスの頻度および量、ならびに、第2のデータ構造向けアクセスの頻度および量の変化に応じて、更新条件を適切に設定することが可能となる。
なぜなら、分散ストレージシステムの管理者は、更新状況表示部33を通して、第1のデータ構造向けアクセスと第2のデータ構造向けアクセスのリソース振り分けのパラメータとなる、1つ以上の更新情報保持部23の状態を観測・確認し、その結果に応じて、管理者が次に設定するのが適切と考える更新条件に設定し、更新条件入力部41を通して1つ以上の変更命令を入力できるからである。これにより、更新情報保持部23は、分散ストレージシステムへのアクセスの傾向が変化したとしても、変更命令に従うことで適切な更新条件に設定でき、更新情報を適用する際の計算機負荷を低減することができる。
(実施形態2)
第2の実施形態に係る分散ストレージシステムについて、図面を参照して説明する。図3は、本実施形態に係る分散ストレージシステムの構成を一例として示すブロック図である。
図3を参照すると、分散ストレージシステムは、第1のデータ格納部12a、第2のデータ格納部12b、更新情報保持部23、更新状況監視部24、更新状況送信部25、更新情報制御部34、更新条件入力部41、更新条件送信部42、更新条件受信部26、および、更新条件変更部27を備える。
第2のデータ格納部12bは、第1のデータ格納部12aとは異なる特徴(例えば、データ構造)を持つ。更新情報保持部23は、第2のデータ格納部12bへの適用前の更新情報を更新条件が偽(false)の間保持し、当該条件が真(true)のとき第2のデータ格納部12bに適用する。更新状況監視部24は、更新情報保持部23が保持する更新情報の状態を監視する。更新状況送信部25は、更新状況監視部24から出力される更新状況を送信する。更新状況受信部32は、当該更新状況を受信する。更新情報制御部34は、当該更新状況を少なくとも利用し、必要に応じて更新条件変更命令を生成する。更新条件入力部41は、当該更新条件変更命令を受け付ける。更新条件送信部42は、当該更新条件変更命令を送信する。更新条件受信部26は、当該更新条件変更命令を受信する。更新条件変更部27は、当該更新条件変更命令に基づいて更新情報保持部23の更新条件を変更する。
また、図4を参照すると、分散ストレージシステムは、第1のデータ格納部12aと第2のデータ格納部12bを備える1つ以上のシステム計算機21を備え、更新状況受信部32は、1つ以上の更新状況送信部25から更新状況を受信するようにしてもよい。
また、図4に示すように、更新条件入力部41は、1つ以上の更新条件変更命令を受け付け、更新条件送信部42は、1つの更新条件変更命令につき、1つ以上の更新条件受信部26に送信するようにしてもよい。
本実施形態の分散ストレージシステムでは、変更命令を更新情報制御部34により生成することで、24時間365日連続稼動するようなシステムにおいても、管理者が常に更新状況を監視し続けることなく、更新条件を適切に設定することが可能となる。
(実施形態3)
第3の実施形態に係る分散ストレージシステムについて、図面を参照して説明する。図5は、本実施形態に係る分散ストレージシステムの構成を一例として示すブロック図である。
図5を参照すると、本実施形態の分散ストレージシステムは、ネットワーク70を介して結合された分散制御の分散ストレージ装置、クライアント計算機50、監視計算機30、および、制御計算機40を備える。
クライアント計算機50上のデータ利用プロセス51は、分散ストレージ装置に対して、データ識別子とデータ操作を表す識別子を含むアクセスを行うことで、1つまたは複数のデータに対するデータの格納、格納されたデータの取得、格納されたデータの更新、格納されたデータの消去を行う。
監視計算機30は、表示装置を備え、前述の更新状況受信部32および更新状況表示部33が実装される。ここで、表示装置は、計算機内の情報を、人が五感の1つ以上で確認できる物理現象に変換する装置であり、例えば、ディスプレイ、プリンタ、スピーカ等である。
制御計算機40は、入力装置を備え、前述の更新条件入力部41および更新条件送信部42が実装される。ここで、入力装置は、人の挙動を計算機内の情報に変換する装置であり、例えば、キーボード、マウス、タッチパネル、カメラ、マイク、熱センサ等である。
ストレージノードNx(x=a、b、c、…)は、図6に示すように1つ以上のCPU15、1つ以上のメモリ16、1つ以上のI/Oコントローラ17、1つ以上のデータ格納部12x、1つ以上の通信コントローラ18を備える計算機である。ストレージノードNxは、通信コントローラ18を介してネットワーク70とデータの送受信を行い、必要なデータの格納・読み出しを、I/Oコントローラ17を介してデータ格納部12xと行う。分散ストレージ装置は、ストレージノードNa〜Ncを含んで構成される。ストレージノードNxを制御するソフトウェアは、メモリ16に格納され、CPU15で実行される。
データ格納部12x(x=a、b、c、…)は、例えば、ハードディスクドライブ、フラッシュメモリ、DRAM、MRAM(Magnetoresistive RAM)、FeRAM(Ferroelectric RAM)、RAID(Redundant Arrays of Inexpensive(Independent) Disks)コントローラに結合された1つ以上の記憶装置、磁気テープ等のデータを記録可能な物理媒体、または、ストレージノードの外部に設置された当該媒体へデータを記録可能な制御装置である。
また、メモリ16とデータ格納部12xとは、同一のハードウェアであってもよい。
ストレージノードNx(x=a、b、c、…)は、ネットワーク70によって相互に接続され、ネットワーク70を通してデータの送受信を行う。
ネットワーク70は、例えば、Fibre Channel、FCoE(Fibre Channel over Ethernet(登録商標))、Infiniband、Ethernet上のTCP/IP(Transmission Control Protocol/Internet Protocol)等の上位プロトコル等により実現される。ただし、ネットワーク70の実現方法は、これらに限定されない。
分散ストレージ装置に記録されるデータは、ストレージノードNx中のデータ格納部12xに分散格納される。データは、固定長または任意長のデータ塊の集合と、当該データ塊を表すデータ識別子とによって管理され、データ管理部14xで実装されるアクセス分配部60によって、各データへのアクセスは当該データを保持するストレージノードNxに到達する。例えば、データ塊はファイルであり、データ識別子はi-node番号である。また、他の例では、データ塊は4キロバイト長のブロックであり、データ識別子はボリューム名とブロック番号の組である。さらに、他の例では、データ塊はレコードであり、データ識別子は主キーである。
格納されるデータは、複数の複製が作られ、それぞれ異なるストレージノードNxに格納される。データ管理部14xは、格納するデータのデータ構造を決定し、データ格納部12xに格納する。
ここで、データ構造とは、データ格納部12xのデバイス上のどのアドレスに格納するデータをどの順で記録するかを決める指標である。
例えば、データ構造が行指向データベースであり、データ格納部12xが主記憶である場合には、図7に示すように、格納するデータはレコードごとに区切られ、主記憶アドレス空間に連続に記録される。連続に記録する方法として、主記憶を4KBごとのページという固定長に区切り、固定長の末尾から順にデータを配置し、データの先頭位置をページの先頭から順に格納する方式が知られている。また、行指向データベースでは、B-Treeに代表される索引データ構造をさらに格納することで、高速にアクセスできることも知られている。
また、データ構造が列指向データベースであり、データ格納部12xが主記憶である場合には、図8に示すように、格納するデータはレコード内の属性やカラムという単位で区切られ、主記憶アドレス空間には同じカラムごとに連続に記録される。連続に記録する方法として、ページ内にカラム内容を順に記載する方法のほか、カラムの同じ値を省略して記載する方法もある(非特許文献1)。
さらに、データ構造がハッシュマップまたはキーバリューストアであり、データ格納部12xが主記憶である場合には、図9に示すように、格納するデータのデータ塊をあるアドレスに連続で記録し、その先頭アドレスを、データ識別子のハッシュ値を元に計算する添え字を持つメモリ内の配列に格納することができる。
なお、データ構造の例は、これらに限定されない。例えば、データ格納部12xがHDD、SSD等である場合でも、一意に連続したアドレス空間を提供可能なデバイスであれば、上記のデータ構造を採用することができる。
各データ構造に対して、性能の良いアクセス方法と、性能の悪いアクセス方法とが存在する。
例えば、行指向データベースでは、各レコードごとの挿入、各レコードごとの参照は、索引構造が利用できるため、高速である。一方、行指向データベースでは、各レコードのうち一部のカラムだけを、すべての格納データについて取り出すようなアクセスは性能が悪い。
また、列指向データベースでは、各レコードのうち一部のカラムだけを、すべての格納データについて取り出すようなアクセスや、関係データベースにおいてJOINとして知られるような、あるカラムの値について各レコード相互をつき合わせるようなアクセスは高速に処理できる。一方、列指向データベースでは、各レコードの更新や各レコードのデータ識別子を指定してのアクセスは、全レコードのデータ識別子総当りのアクセスとなるため、処理に時間を要する。
さらに、データ構造がハッシュマップである場合、データ識別子を指定してのレコード参照やレコード挿入は高速である。一方、データ構造がハッシュマップである場合、データ識別子以外の値を指定してのデータ取得や、データ識別子の範囲を指定してのレコードアクセスは低速である。
本実施形態において、性能が良い、または、性能が悪いとは、相対的な指標である。ここでは、あるデータ構造1で格納されたデータと他のデータ構造2で格納されたデータについて、データ構造1についてあるアクセス方法Aでアクセスした場合のスループットまたはレイテンシが、同一のデータを異なるデータ構造2で格納したデータ格納部に同一のアクセス方法Aでアクセスした場合のスループットまたはレイテンシよりも良い場合、アクセス方法Aについてデータ構造1の方が「性能が良い」という。
なお、「性能が良い」ことの定義として、スループットまたはレイテンシが良いこととする代わりに、次のようにしてもよい。すなわち、スループット、レイテンシなどのように、アクセス量やアクセス速度が早いこととしてもよい。また、消費電力が少ない、廃棄物が少ないなどのように、アクセス量による環境負荷が少ないこととしてもよい。さらに、アクセスやデータ転送量の課金量が少ない、消耗品の消耗速度が少ないなどのように、運用コストが低いこととしてもよい。また、部品の精度が良い、内部にさらに冗長構成を有するなどのように、データ喪失率が低いこととしてもよい。さらに、これらを組み合わせたものを、性能が良いことの定義としてもよい。
以下では、異なる2つのデータ構造1およびデータ構造2について、データ構造1の方が性能が良いアクセス方法を、データ構造1向きのアクセス方法といい、データ構造2の方が性能が良いアクセス方法を、データ構造2向きのアクセス方法という。3つ以上のデータ構造についても、2つのデータ構造のときと同様に、相対的な性能を比較する。
ここでは、格納される同一のデータの複製のうちの一部は、異なるデータ構造で格納されるものとする。
例えば、データ1は3つに複製され、それぞれ、ストレージノードNa、Nb、Ncに格納されるとする。このとき、ストレージNaおよびNbではデータ構造1で格納され、ストレージNcではデータ構造2で格納されるようにしてもよい。また、他の例として、データ2は4つに複製され、ストレージノードNd〜Ngに格納されるとする。このとき、ストレージNdではデータ構造3で格納され、ストレージNeではデータ構造4で格納され、ストレージNfではデータ構造5で格納され、ストレージNgはデータ構造6で格納されるようにしてもよい。
また、あるデータ1とデータ2の複製の1つをそれぞれストレージNaに格納するとき、データ1はデータ構造1で格納され、データ2はデータ構造2で格納されるようにしてもよい。
同一のデータの複製が異なるストレージノードに作成(または更新)されるとき、それらは同期的に更新されるものとする。すなわち、ストレージノードNa上のデータ格納部12aとストレージノードNb上のデータ格納部12bの両方で、記録とアクセス可能なデータ構造の作成が完了した後、クライアント計算機50に更新終了通知が送出される。
ここで、2つ以上の複製が2つ以上の異なるデータ構造1、2、…で格納され、データ識別子単位での更新アクセスがデータ構造1向けである場合、データ構造2、…に格納する前に、ストレージノードは更新情報保持部23にデータの更新を格納して更新終了通知を返すことができる。
更新情報保持部23は、データ構造の一種で、更新情報、すなわち、更新を表す情報を追記するアクセスがデータ構造2よりも向いているデータ構造を有する。更新情報とは、あるデータを変更するアクセス(作成、更新、削除)を時間を置いて、後段のデータ構造2上のデータに適用することができる情報のことである。例えば、更新情報保持部23は、主記憶上のFIFOに更新されるデータ自体を、更新情報として保持してもよい。また、他の例として、更新情報保持部23は、HDD上のログ構造ファイルシステムにデータの更新前の値と更新後の値、データ識別子の組を更新情報としてアクセスの順に記録するようにしてもよい。更新情報保持部23は、上記定義を満たすものであればよく、これらの例に限定されない。なお、適用された更新情報は、更新情報保持部23から除去される。
更新情報保持部23には、ある時間ごとに真または偽となる更新条件が設定される。更新情報保持部は、更新条件が真となると、格納された更新情報の一部または全部をデータ構造2に適用して、データ構造2を更新する。
更新条件は、アルゴリズムとパラメータを含む。更新条件のアルゴリズムの例として、更新情報の合計データ量が一定量になった場合が考えられる。このとき、一定量の値がパラメータとなる。また、更新条件のアルゴリズムの他の例として、更新情報の更新数が一定数になった場合が考えられる。このとき、一定数の値がパラメータとなる。さらに、更新条件のアルゴリズムの他の例として、前回の更新情報適用からの経過時間が定められた一定時間経過した後である場合が考えられる。このとき、一定時間の値がパラメータとなる。また、更新条件のアルゴリズムの他の例として、第2のデータ格納部を持つ計算機のCPUの利用率がある一定割合以上になった場合または一定割合以下になった場合が考えられる。このとき、一定割合がパラメータとなる。ただし、更新条件は、これらに限定されない。
また、更新情報保持部23は、更新条件の真偽に依らず、第2のデータ構造向けのアクセスが当該ストレージノードに到達した場合には、そのアクセスを処理する前に更新情報を第2のデータ構造に適用する。
図10ないし図13は、第1のデータ構造によるデータ(第1のデータ格納部12a)、第2のデータ構造によるデータ(第2のデータ格納部12b)、更新情報保持部23を用いた場合のアクセスのシーケンスを示す。
図10ないし図13では、一例として、ランダムリード、ランダムライトを第1のデータ格納部12a向けアクセスとし、シーケンシャルリードや複雑なクエリを第2のデータ格納部12b向けアクセスとする。ただし、これらのアクセスは説明の便宜上のものに過ぎず、各データ格納部向けのアクセスはこれらに限定されない。
図10は、ランダムリードアクセスを示す。アクセス分配部60によって、ランダムリードアクセスは第1のデータ格納部12a向けであることが解決される。したがって、クライアント計算機50からのランダムリードアクセスは、第1のデータ格納部12aに到達し、当該リクエストの返答となるデータは第1のデータ格納部12aから返却される。
図11は、ライトアクセス(データの作成、更新あるいは削除アクセス)のシーケンスを示す。アクセス分配部60によって、ライトアクセスは当該データのすべての複製を保持するデータ格納部をもつ計算機に投入される。ランダムライトは第1のデータ格納部12a向けアクセスであるため、第1のデータ格納部12aは更新をそのまま適用する。一方、第2のデータ格納部12bでは、その前段に位置する更新情報保持部23が当該データへのランダムライトから更新情報を作成して保持する。次に、更新条件が真になると、当該更新情報は第2のデータ格納部12bに適用される。
図12は、シーケンシャルリードアクセスのシーケンスを示す。シーケンシャルリードアクセスは第2のデータ格納部12b向けのアクセスであるため、アクセス分配部60によって、クライアント計算機50からのシーケンシャルリードアクセスは第2のデータ格納部12bに到達する。第2のデータ格納部12bは、アクセスを処理する前に、前段にある更新情報保持部23に格納された一部または全部の更新情報を、更新情報保持部23によって定められた順番がある場合はその順に従いつつ、第2のデータ格納部12bに適用してデータを更新する。次に、アクセスを処理して、アクセスの結果をクライアント計算機50に返す。図12では、更新の適用後にアクセスを処理している。ただし、更新が適用されないデータからアクセスを処理したり、適切に排他制御をすることにより、アクセスを処理しながら更新を適用することもできる。
図13は、複雑なデータ解析のシーケンスを示す。データ解析は第2のデータ格納部向けのアクセスであるため、図12に示したシーケンシャルリードの場合と同様、第2のデータ格納部で処理され、結果はクライアント計算機に返却される。
更新情報保持部23を実装するストレージノードは、更新状況監視部24および更新状況送信部25を備える。
更新状況監視部24は、更新情報保持部23の更新情報の量の増減を表す情報として「更新状況」を生成する。例えば、第2のデータ格納部12bがオブジェクト、タプル、ブロック等のデータ単位で格納データを管理している場合、更新状況は、データ単位の更新アクセスまたは削除アクセスが更新情報保持部23に格納されると増加するようにしてもよい。また、データ単位の参照アクセスは更新情報保持部23に格納されないか、または、格納されたとしても、更新状況は増加しないようにしてもよい。さらに、複数のデータ単位の参照アクセスが第2のデータ格納部12bに到達すると、更新状況はゼロに戻るようにしてもよい。
更新状況は、更新条件が真に到達するとゼロに戻る値としてもよい。
また、更新状況は、更新情報保持部23に格納された更新情報の数としてもよい。さらに、更新状況は、更新情報保持部に格納された更新情報の数の単位時間当たりの平均としてもよい。
また、更新状況は、更新情報保持部23に格納された更新情報の更新データサイズの合計としてもよい。
さらに、更新状況は、更新情報保持部23に格納された更新情報の数の最近一定時間当たりの最大数としてもよい。また、更新状況は、更新情報保持部23に格納された更新情報の数の最近一定時間当たりの最小数としてもよい。
さらに、更新状況は、更新情報保持部23に格納された更新情報の数を、更新情報保持部23に格納可能な最大の更新情報数で割った%値としてもよい。
また、更新状況は、更新情報保持部23に格納された最新の更新情報と最古の更新情報の格納時刻の差で更新情報の数を割った値としてもよい。
さらに、更新状況は、上記で例示した更新状況をxとしたとき、xに対して単調に増加する関数f(x)の値としてもよい。また、更新状況は、上記で例示した更新状況をxとしたとき、xに対して単調に減少する関数g(x)の値としてもよい。
さらに、更新状況は、上記で例示した更新状況を一定時間ごとに採取した時系列x1、x2、…、x_nに対し、変化時点推定を行った結果、最近一定時間以内に変化があった可能性を表す確率値としてもよい。なお、変化時点推定アルゴリズムは、一例として、非特許文献4に記載されている、時系列の複数の小区間ごとにAIC(Akaike's Information Criterion、赤池情報量規準)を計算する手法を用いることができる。
また、更新状況は、上記で例示した更新状況を一定時間ごとに採取した時系列x1、x2、…、x_nに対し、最新のx_nが、それ以前のx1、x2、…、x_n−1の平均よりある定められた割合だけ外れていた際に1となるような値としてもよい。
更新状況送信部25は、更新状況監視部24によって採取された更新状況を、監視計算機30に実装された更新状況受信部32に送信する。更新状況送信部25は、定期的に更新状況を送信してもよい。更新状況送信部25は、更新状況受信部32から要求があった場合、最新の更新状況を送信してもよい。また、更新状況送信部25は、更新状況として、最近の値だけを送信してもよい。さらに、更新状況送信部25は、更新状況として、最近一定時間以内に採取されたゼロ個以上の値を送信してもよい。また、更新状況送信部25は、更新状況として、最近一定数採取された1つ以上の値を送信してもよい。
監視計算機30では、受信した更新状況を更新状況表示部33によって表示する。表示は、更新状況の大小、または、時間的変化の有無が人に分かる形式に変換して実行される。
図14は、更新状況表示部33による表示例を示す。図14では、更新状況表示部33は、Web等の画面を介して、更新状況の大小を含む情報を提示している。図14では、更新状況表示部33は、更新状況を棒グラフとして表示している。このとき、棒グラフの横方向の長さに基づいて、更新状況の大小を把握することができる。
また、更新状況表示部33は、更新状況を、折れ線グラフで過去の値とともに表示してもよい。さらに、更新状況表示部33は、更新状況を、ある定められた値を100%とする円グラフで表現してもよい。また、更新状況表示部33は、最近一定時間に傾向に変化があったことを示すアイコンで、更新状況を表示してもよい。さらに、更新状況表示部33は、数値を読み上げる音声合成で、更新状況を表現してもよい。
更新状況表示部33から更新状況を読み取った人(多くの場合、システム管理者であるがこれに限られない)は、必要に応じて、制御計算機40の更新条件入力部41より、更新条件を入力する。更新条件入力部41は、人が更新条件をどのように変更するか入力するための機能を提供する。
図15は、更新条件入力部41の構成を一例として示す。図15に示した更新条件入力部41によると、Web等の画面を介して、現在設定されている更新条件のパラメータを変更することができる。図15では、ストレージノードごとに更新条件を設定可能であり、当該ストレージノードのラベルがついているテキストボックスの現在の値を変更し、送信ボタンを選択することで、更新条件変更命令を入力することができる。
図16は、更新条件入力部41の他の構成を例示する。図16に示した更新条件入力部41によると、Web等の画面を介して、更新条件のアルゴリズムを変更することができる。図16では、ストレージノード番号を指定するテキストボックスでストレージノードを指定し、アルゴリズムを選択する排他ラジオボタンでアルゴリズムの変更を指定して、送信ボタンを選択することで、更新条件変更命令を入力することができる。さらに、個々のストレージノードごとに更新条件変更命令を設定するのみならず、図16に例示するように、複数のストレージノードで動作する更新情報保持部23の更新条件を、まとめて設定することもできる。
図17は、更新条件入力部41の他の構成を例示する。図17では、監視計算機30と制御計算機40が同一の計算機である場合に、更新状況表示部33と更新条件入力部41とが同一画面において提供される場合を示す。
更新条件入力部41の他の例として、変更パラメータは音声でマイクから入力され、音声合成された値を基に更新条件変更命令を入力するようにしてもよい。
図18は、更新条件入力部41の他の構成を例示する。図18では、制御計算機40のコマンドプロンプトから変更値を入力し、OS(Operating System)の持つプロセス間通信機能により、送信先であるnodeaを引数として、更新条件送信部42に相当するchange_conditionコマンドに入力している。
更新条件入力部41の他の例として、変更パラメータは音声でマイクから入力され、音声合成された値を基に更新条件変更命令を入力するようにしてもよい。
入力された更新条件変更命令は、制御計算機40の更新条件送信部42から、ストレージノードの更新条件受信部26を介して、更新条件変更部27に入力される。
更新条件変更部27は、更新情報保持部23が更新情報を適用するタイミングである更新条件のアルゴリズムもしくはパラメータ、または、その両方を変更する。
以上の構成を備えた本実施形態の分散ストレージシステムによると、更新条件をアクセスの傾向の変化に応じて、適切に変更することができる。
例えば、ランダムリードとランダムライトのみで既に運用されている分散ストレージ装置が、新たにデータ分析アクセスが投入されることになった場合、管理者はアクセス傾向が変化することを知っているため、アクセス傾向が変化する時点において、更新状況に基づいて更新情報保持部23の内部の更新情報量を把握することができ、更新条件を変更すべきか否か、変更する場合にはどの程度更新頻度を上げればよいかを判断することができる。また、管理者は、変更後の更新状況を更新状況表示部33から取得することができるため、変更した更新条件が適切でなかった場合に、更新状況が適切でないことを把握でき、再度、更新条件を変更することができる。
また、監視計算機30が、更新状況のみならずクライアント計算機50のアクセス性能その他の性能指標も表示可能な場合には、本実施形態の分散ストレージシステムの有用性がさらに向上する。例えば、クライアント計算機50のアクセス性能が減退した場合、更新状況表示部33に基づいて、更新情報保持部23の状況が以前とどのように異なるかを把握することができ、更新情報保持部23がアクセス性能減退の要因である場合には、更新条件変更部27を介して更新情報保持部23の更新情報を変更し、アクセス性能を回復することができる。
(実施形態4)
第4の実施形態に係る分散ストレージシステムについて、図面を参照して説明する。図19は、本実施形態に係る分散ストレージシステムの構成を一例として示すブロック図である。
図19を参照すると、本実施形態に係る分散ストレージシステムは、第3の実施形態に係る分散ストレージシステム(図5)における制御計算機40および監視計算機30の代わりに、更新状況受信部32、更新条件送信部42および更新情報制御部34を実装する監視・制御計算機31を備える。
本実施形態の分散ストレージシステムのその他の要素は、第3の実施形態に係る分散ストレージシステム(図5)と同様である。
本実施形態の更新情報制御部34は、更新状況受信部32が受けた更新状況を元に、必要があれば更新条件変更命令を作成し、更新条件送信部42を介して、ストレージノードの更新条件変更部27に入力する。
更新情報制御部34の一例として、更新状況の上限・下限を利用したアルゴリズムを用いることが考えられる。図20を参照して、更新情報制御部34の動作について説明する。あるストレージノード(ストレージノードNxとする)のデータ格納部12xに対する更新情報保持部23に、その更新状況の値の上限と下限を定める。例えば、更新状況が、更新情報保持部23内の更新情報の数であった場合、下限を0、上限を更新情報保持部23内に格納可能な更新情報の最大数とすることができる。
更新情報制御部34は、更新状況を観測し続け、その値を時系列として、未来の値を予測する。例えば、更新情報制御部34は、最小二乗法を用いて時系列が入力が観測時刻t、出力がs*t+uとなる1次関数と近似することで、将来の値を予測することができる。
また、他の例として、更新情報制御部34は、より複雑な時系列解析に基づいて、更新状況を予測するようにしてもよい。一例として、非特許文献4には、状態空間モデルにトレンドモデルと周期モデルを当てはめ、最尤推定や情報量規準を用いることにより、各モデルで最も時系列をよく近似するパラメータを求める時系列予測手法が記載されている。更新情報制御部34は、かかる時系列予測手法を用いて、更新状況を予測するようにしてもよい。
更新情報制御部34は、予測された未来の値が、ある時間以内に上記の上限を上回る場合、更新条件が真となる頻度が高くなるように、更新条件変更命令を生成し、更新条件送信部42に発行することが好ましい。
更新情報制御部34は、例えば、更新条件がある定められた時間t1ごとに真となる条件である場合、t1>t2なる時間t2へ変更する命令を発行する。また、更新情報制御部34は、更新条件がある定められた数n1個の更新情報が更新情報保持部23に格納されたときに真となる条件である場合、n1>n2なる個数n2が新たに設定されるような命令を発行する。
更新情報制御部34は、予測された未来の値が、ある時間以内に前記の下限を下回る場合、更新条件が真となる頻度が低下するように、更新条件変更命令を生成し、更新条件送信部42に発行することが好ましい。
更新情報制御部34は、例えば、更新条件がある定められた時間t1ごとに真となる条件である場合、t1<t3なる時間t3へ変更する命令を発行する。また、更新情報制御部34は、更新条件がある定められた数n1個の更新情報が更新情報保持部23に格納されたときに真となる条件である場合、n1<n3なる個数n3が新たに設定されるような命令を発行する。
更新情報制御部34の他の例として、各ストレージノードの更新状況の乖離を是正するアルゴリズムを用いることが考えられる。更新情報制御部34は、分散ストレージシステムに存在する2つ以上のストレージノードから更新状況を取得する。更新情報制御部34は、取得した更新状況の値の平均を算出し、平均値より大きく外れた更新状況を示すストレージノードが存在する場合、当該ストレージノードの更新条件を変更する更新条件変更命令を発行する。
更新情報制御部34は、平均値から大きく外れたことを検出する際、例えば、ある定められた割合を超える、ある定められた固定値を超える、ある定められた割合を一定時間越え続ける等の条件で検出するようにしてもよい。
図21は、ストレージノードNa〜Neの更新状況を示す。更新情報制御部34は、図21に示した更新状況の場合、ストレージノードNa〜Neの更新状況を観測することで、ストレージノードNeの更新状況が平均から乖離していることを検出する。このとき、更新情報制御部34は、ストレージノードNeの更新情報保持部23に対し、更新条件変更命令を発行する。
本実施形態に係る分散ストレージ装置によると、第3の実施形態の分散ストレージ装置と同様に、アクセスの傾向の変化に応じて更新条件を適切に変更することができる。
また、本実施形態によると、第3の実施形態のようにシステム管理者が常にシステムを監視する必要がないため、人的なコストを削減することできる。また、本実施形態によると、第3の実施形態と比較して、時間的に細粒度の更新条件の再設定が可能となる。ただし、更新情報制御部34への入力情報や、その計算能力が限られていることを考慮した場合には、人間の知識に基づいて適切な値を設定することができる第3の実施形態の方が好ましい。
上記実施形態に係る分散ストレージシステムは、例えば、並列データベース、並列データ処理システム、分散ストレージ、並列ファイルシステム、分散データベース、データグリッド、クラスタコンピュータ等に適用することができる。
なお、上記の特許文献等の先行技術文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
10、20、21 システム計算機
12、12a〜12c、12x、22 データ格納部
14a〜14c、14x データ管理部
15 CPU(Central Processing Unit)
16 メモリ
17 I/Oコントローラ
18 通信コントローラ
23 更新情報保持部
24 更新状況監視部
25 更新状況送信部
26 更新条件受信部
27 更新条件変更部
30 監視計算機
31 監視・制御計算機
32 更新状況受信部
33 更新状況表示部
34 更新情報制御部
40 制御計算機
41 更新条件入力部
42 更新条件送信部
50 クライアント計算機
51 データ利用プロセス
60 アクセス分配部
70 ネットワーク
Na〜Nf、Nx ストレージノード

Claims (19)

  1. 第1のデータ構造でデータを保持する第1のデータ格納部と、
    前記第1のデータ構造とは異なる第2のデータ構造で、前記データを保持する第2のデータ格納部と、
    前記データの更新内容を表す更新情報を保持するとともに、所定の更新条件が満たされた場合、前記更新情報を前記第2のデータ格納部に適用して、前記更新内容を前記第2のデータ格納部に反映させる更新情報保持部と、
    前記更新情報保持部が保持する前記更新情報を監視し、前記第2のデータ格納部への前記更新情報の適用状態を更新状況として抽出する更新状況監視部と、
    前記更新状況に応じて決定された、前記所定の更新条件の変更命令に基づいて、前記所定の更新条件を変更する更新条件変更部と、を備える分散ストレージシステム。
  2. 前記更新状況監視部によって抽出された前記更新状況を表示する更新状況表示部と、
    前記変更命令を受け付ける更新条件入力部と、を備える、請求項1に記載の分散ストレージシステム。
  3. 前記更新状況に応じて、前記変更命令を生成する更新情報制御部を備える、請求項1に記載の分散ストレージシステム。
  4. 前記更新情報制御部は、前記更新状況に基づいて、前記更新情報保持部が将来保持する更新情報の個数を予測し、前記個数に応じて前記変更命令を生成する、請求項3に記載の分散ストレージシステム。
  5. 前記更新情報制御部は、前記更新情報が前記第2のデータ格納部に適用される頻度を変更する命令を、前記変更命令として生成する、請求項4に記載の分散ストレージシステム。
  6. 前記更新情報制御部は、前記個数が所定の上限値よりも多い場合、前記更新情報が前記第2のデータ格納部に適用される頻度が高くなるように前記変更命令を生成し、前記個数が所定の下限値よりも少ない場合、前記頻度が低くなるように前記変更命令を生成する、請求項5に記載の分散ストレージシステム。
  7. 前記第1のデータ格納部は、前記データを行指向で保持する行指向データベースであり、
    前記第2のデータ格納部は、前記データを列指向で保持する列指向データベースである、請求項1ないし6いずれか1項に記載の分散ストレージシステム。
  8. 前記更新情報保持部は、レコードに対する更新ログを前記更新情報として保持し、
    前記更新状況監視部は、前記更新情報保持部に存在する更新ログの個数を、前記更新状況として抽出する、請求項1ないし7のいずれか1項に記載の分散ストレージシステム。
  9. 前記第2のデータ格納部は、オブジェクト、タプル、ブロック等の所定の単位で前記データを管理し、
    前記更新情報保持部が保持する更新情報の個数は、前記所定の単位による更新アクセスまたは削除アクセスに応じて増加し、前記所定の単位による参照アクセスによっては変動しない、請求項1ないし8のいずれか1項に記載の分散ストレージシステム。
  10. 第1のデータ構造でデータを保持する第1のデータ格納部と、前記第1のデータ構造とは異なる第2のデータ構造で前記データを保持する第2のデータ格納部と、前記データの更新内容を表す更新情報を保持する更新情報保持部と、を備えた分散ストレージシステムを制御するストレージ制御方法であって、
    所定の更新条件が満たされた場合、前記更新情報を前記第2のデータ格納部に適用して、前記更新内容を前記第2のデータ格納部に反映させる工程と、
    前記更新情報保持部が保持する前記更新情報を監視し、前記第2のデータ格納部への前記更新情報の適用状態を更新状況として抽出する工程と、
    前記更新状況に応じて決定された、前記所定の更新条件の変更命令に基づいて、前記所定の更新条件を変更する工程と、を含むストレージ制御方法。
  11. 抽出された前記更新状況を表示する工程と、
    前記変更命令を受け付ける工程と、を含む、請求項10に記載のストレージ制御方法。
  12. 前記更新状況に応じて、前記変更命令を生成する工程を含む、請求項10に記載のストレージ制御方法。
  13. 前記更新状況に基づいて、前記更新情報保持部が将来保持する更新情報の個数を予測し、前記個数に応じて前記変更命令を生成する、請求項12に記載のストレージ制御方法。
  14. 前記更新情報が前記第2のデータ格納部に適用される頻度を変更する命令を、前記変更命令として生成する、請求項13に記載のストレージ制御方法。
  15. 前記個数が所定の上限値よりも多い場合、前記更新情報が前記第2のデータ格納部に適用される頻度が高くなるように前記変更命令を生成し、前記個数が所定の下限値よりも少ない場合、前記頻度が低くなるように前記変更命令を生成する、請求項14に記載のストレージ制御方法。
  16. 前記第1のデータ格納部は、前記データを行指向で保持する行指向データベースであり、
    前記第2のデータ格納部は、前記データを列指向で保持する列指向データベースである、請求項10ないし15のいずれか1項に記載のストレージ制御方法。
  17. 前記更新情報保持部は、レコードに対する更新ログを前記更新情報として保持し、
    前記更新情報保持部に存在する更新ログの個数を、前記更新状況として抽出する、請求項10ないし16のいずれか1項に記載のストレージ制御方法。
  18. 前記第2のデータ格納部は、オブジェクト、タプル、ブロック等の所定の単位で前記データを管理し、
    前記更新情報保持部が保持する更新情報の個数は、前記所定の単位による更新アクセスまたは削除アクセスに応じて増加し、前記所定の単位による参照アクセスによっては変動しない、請求項10ないし17のいずれか1項に記載のストレージ制御方法。
  19. 第1のデータ構造でデータを保持する第1のデータ格納部と、前記第1のデータ構造とは異なる第2のデータ構造で前記データを保持する第2のデータ格納部と、前記データの更新内容を表す更新情報を保持する更新情報保持部と、を備えた分散ストレージシステムを制御するコンピュータに対して、
    所定の更新条件が満たされた場合、前記更新情報を前記第2のデータ格納部に適用して、前記更新内容を前記第2のデータ格納部に反映させる処理と、
    前記更新情報保持部が保持する前記更新情報を監視し、前記第2のデータ格納部への前記更新情報の適用状態を更新状況として抽出する処理と、
    前記更新状況に応じて決定された、前記所定の更新条件の変更命令に基づいて、前記所定の更新条件を変更する処置と、を実行させるプログラム。
JP2014506275A 2012-03-22 2013-03-21 分散ストレージシステム、ストレージ制御方法およびプログラム Pending JPWO2013141308A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014506275A JPWO2013141308A1 (ja) 2012-03-22 2013-03-21 分散ストレージシステム、ストレージ制御方法およびプログラム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012065190 2012-03-22
JP2012065190 2012-03-22
JP2014506275A JPWO2013141308A1 (ja) 2012-03-22 2013-03-21 分散ストレージシステム、ストレージ制御方法およびプログラム

Publications (1)

Publication Number Publication Date
JPWO2013141308A1 true JPWO2013141308A1 (ja) 2015-08-03

Family

ID=49222764

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014506275A Pending JPWO2013141308A1 (ja) 2012-03-22 2013-03-21 分散ストレージシステム、ストレージ制御方法およびプログラム

Country Status (4)

Country Link
US (1) US20150058293A1 (ja)
EP (1) EP2829976A4 (ja)
JP (1) JPWO2013141308A1 (ja)
WO (1) WO2013141308A1 (ja)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10176184B2 (en) 2012-01-17 2019-01-08 Oracle International Corporation System and method for supporting persistent store versioning and integrity in a distributed data grid
US9514007B2 (en) * 2013-03-15 2016-12-06 Amazon Technologies, Inc. Database system with database engine and separate distributed storage service
US9471710B2 (en) 2013-06-14 2016-10-18 International Business Machines Corporation On-the-fly encoding method for efficient grouping and aggregation
CN104426926B (zh) * 2013-08-21 2019-03-29 腾讯科技(深圳)有限公司 定时发布数据的处理方法及装置
JP6336302B2 (ja) * 2014-03-11 2018-06-06 株式会社電通国際情報サービス 情報処理装置、情報処理方法及びプログラム
JP5832592B1 (ja) * 2014-06-02 2015-12-16 三菱電機株式会社 データ管理装置
JP6549704B2 (ja) 2014-09-25 2019-07-24 オラクル・インターナショナル・コーポレイション 分散コンピューティング環境内でゼロコピー2進基数木をサポートするためのシステムおよび方法
US10664495B2 (en) 2014-09-25 2020-05-26 Oracle International Corporation System and method for supporting data grid snapshot and federation
US9916275B2 (en) * 2015-03-09 2018-03-13 International Business Machines Corporation Preventing input/output (I/O) traffic overloading of an interconnect channel in a distributed data storage system
US9922064B2 (en) 2015-03-20 2018-03-20 International Business Machines Corporation Parallel build of non-partitioned join hash tables and non-enforced N:1 join hash tables
US10650011B2 (en) * 2015-03-20 2020-05-12 International Business Machines Corporation Efficient performance of insert and point query operations in a column store
US10108653B2 (en) 2015-03-27 2018-10-23 International Business Machines Corporation Concurrent reads and inserts into a data structure without latching or waiting by readers
US10831736B2 (en) 2015-03-27 2020-11-10 International Business Machines Corporation Fast multi-tier indexing supporting dynamic update
US10585599B2 (en) 2015-07-01 2020-03-10 Oracle International Corporation System and method for distributed persistent store archival and retrieval in a distributed computing environment
US11163498B2 (en) * 2015-07-01 2021-11-02 Oracle International Corporation System and method for rare copy-on-write in a distributed computing environment
US10860378B2 (en) 2015-07-01 2020-12-08 Oracle International Corporation System and method for association aware executor service in a distributed computing environment
JP6677072B2 (ja) 2016-05-13 2020-04-08 富士通株式会社 情報処理装置、情報処理システム、情報処理プログラム、及び情報処理方法
WO2017212525A1 (ja) * 2016-06-06 2017-12-14 株式会社日立製作所 計算機、及びデータベース処理方法
US10726009B2 (en) 2016-09-26 2020-07-28 Splunk Inc. Query processing using query-resource usage and node utilization data
US11663227B2 (en) 2016-09-26 2023-05-30 Splunk Inc. Generating a subquery for a distinct data intake and query system
US11222066B1 (en) 2016-09-26 2022-01-11 Splunk Inc. Processing data using containerized state-free indexing nodes in a containerized scalable environment
US11593377B2 (en) 2016-09-26 2023-02-28 Splunk Inc. Assigning processing tasks in a data intake and query system
US11874691B1 (en) 2016-09-26 2024-01-16 Splunk Inc. Managing efficient query execution including mapping of buckets to search nodes
US11106734B1 (en) 2016-09-26 2021-08-31 Splunk Inc. Query execution using containerized state-free search nodes in a containerized scalable environment
US11281706B2 (en) 2016-09-26 2022-03-22 Splunk Inc. Multi-layer partition allocation for query execution
US11269939B1 (en) 2016-09-26 2022-03-08 Splunk Inc. Iterative message-based data processing including streaming analytics
US11604795B2 (en) 2016-09-26 2023-03-14 Splunk Inc. Distributing partial results from an external data system between worker nodes
US11567993B1 (en) 2016-09-26 2023-01-31 Splunk Inc. Copying buckets from a remote shared storage system to memory associated with a search node for query execution
US11620336B1 (en) 2016-09-26 2023-04-04 Splunk Inc. Managing and storing buckets to a remote shared storage system based on a collective bucket size
US11126632B2 (en) 2016-09-26 2021-09-21 Splunk Inc. Subquery generation based on search configuration data from an external data system
US20180089324A1 (en) 2016-09-26 2018-03-29 Splunk Inc. Dynamic resource allocation for real-time search
US11461334B2 (en) 2016-09-26 2022-10-04 Splunk Inc. Data conditioning for dataset destination
US12013895B2 (en) 2016-09-26 2024-06-18 Splunk Inc. Processing data using containerized nodes in a containerized scalable environment
US10776355B1 (en) 2016-09-26 2020-09-15 Splunk Inc. Managing, storing, and caching query results and partial query results for combination with additional query results
US11599541B2 (en) 2016-09-26 2023-03-07 Splunk Inc. Determining records generated by a processing task of a query
US10795884B2 (en) 2016-09-26 2020-10-06 Splunk Inc. Dynamic resource allocation for common storage query
US11550847B1 (en) * 2016-09-26 2023-01-10 Splunk Inc. Hashing bucket identifiers to identify search nodes for efficient query execution
US11232100B2 (en) 2016-09-26 2022-01-25 Splunk Inc. Resource allocation for multiple datasets
US10984044B1 (en) 2016-09-26 2021-04-20 Splunk Inc. Identifying buckets for query execution using a catalog of buckets stored in a remote shared storage system
US11023463B2 (en) 2016-09-26 2021-06-01 Splunk Inc. Converting and modifying a subquery for an external data system
US11442935B2 (en) 2016-09-26 2022-09-13 Splunk Inc. Determining a record generation estimate of a processing task
US10353965B2 (en) 2016-09-26 2019-07-16 Splunk Inc. Data fabric service system architecture
US10977260B2 (en) 2016-09-26 2021-04-13 Splunk Inc. Task distribution in an execution node of a distributed execution environment
US11243963B2 (en) 2016-09-26 2022-02-08 Splunk Inc. Distributing partial results to worker nodes from an external data system
US11294941B1 (en) 2016-09-26 2022-04-05 Splunk Inc. Message-based data ingestion to a data intake and query system
US11860940B1 (en) 2016-09-26 2024-01-02 Splunk Inc. Identifying buckets for query execution using a catalog of buckets
US11250056B1 (en) 2016-09-26 2022-02-15 Splunk Inc. Updating a location marker of an ingestion buffer based on storing buckets in a shared storage system
US11615104B2 (en) 2016-09-26 2023-03-28 Splunk Inc. Subquery generation based on a data ingest estimate of an external data system
US11562023B1 (en) 2016-09-26 2023-01-24 Splunk Inc. Merging buckets in a data intake and query system
US11586627B2 (en) 2016-09-26 2023-02-21 Splunk Inc. Partitioning and reducing records at ingest of a worker node
US11416528B2 (en) 2016-09-26 2022-08-16 Splunk Inc. Query acceleration data store
US11314753B2 (en) 2016-09-26 2022-04-26 Splunk Inc. Execution of a query received from a data intake and query system
US10956415B2 (en) 2016-09-26 2021-03-23 Splunk Inc. Generating a subquery for an external data system using a configuration file
US11580107B2 (en) 2016-09-26 2023-02-14 Splunk Inc. Bucket data distribution for exporting data to worker nodes
US11003714B1 (en) 2016-09-26 2021-05-11 Splunk Inc. Search node and bucket identification using a search node catalog and a data store catalog
US11321321B2 (en) 2016-09-26 2022-05-03 Splunk Inc. Record expansion and reduction based on a processing task in a data intake and query system
CN106708592B (zh) * 2017-01-25 2021-12-03 北京鸿智电通科技有限公司 一种微控制器以及用于微控制器的代码烧录方法
JP6849910B2 (ja) * 2017-02-09 2021-03-31 富士通株式会社 差分ログ適用プログラム、差分ログ適用装置及び差分ログ適用方法
US11550820B2 (en) 2017-04-28 2023-01-10 Oracle International Corporation System and method for partition-scoped snapshot creation in a distributed data computing environment
US10769019B2 (en) 2017-07-19 2020-09-08 Oracle International Corporation System and method for data recovery in a distributed data computing environment implementing active persistence
US11921672B2 (en) 2017-07-31 2024-03-05 Splunk Inc. Query execution at a remote heterogeneous data store of a data fabric service
US11989194B2 (en) 2017-07-31 2024-05-21 Splunk Inc. Addressing memory limits for partition tracking among worker nodes
US10896182B2 (en) 2017-09-25 2021-01-19 Splunk Inc. Multi-partitioning determination for combination operations
US11151137B2 (en) 2017-09-25 2021-10-19 Splunk Inc. Multi-partition operation in combination operations
US10721095B2 (en) 2017-09-26 2020-07-21 Oracle International Corporation Virtual interface system and method for multi-tenant cloud networking
US11176091B2 (en) * 2017-09-29 2021-11-16 Intel Corporation Techniques for dynamic multi-storage format database access
US10862965B2 (en) 2017-10-01 2020-12-08 Oracle International Corporation System and method for topics implementation in a distributed data computing environment
TWI673615B (zh) * 2018-01-24 2019-10-01 中華電信股份有限公司 用於智慧營運中心之資料檢核系統與方法
US11662910B2 (en) * 2018-02-02 2023-05-30 International Business Machines Corporation Workload and interface cognizant heat-tiered storage
US10719508B2 (en) * 2018-04-19 2020-07-21 Risk Management Solutions, Inc. Data storage system for providing low latency search query responses
US11334543B1 (en) 2018-04-30 2022-05-17 Splunk Inc. Scalable bucket merging for a data intake and query system
KR101903726B1 (ko) * 2018-05-04 2018-10-02 주식회사 포딕스시스템 Cctv 영상 데이터를 분산하여 저장하는 cctv 시스템
JP7137072B2 (ja) * 2018-12-10 2022-09-14 富士通株式会社 情報処理システム、負荷分散処理装置および負荷分散処理プログラム
WO2020220216A1 (en) 2019-04-29 2020-11-05 Splunk Inc. Search time estimate in data intake and query system
US11715051B1 (en) 2019-04-30 2023-08-01 Splunk Inc. Service provider instance recommendations using machine-learned classifications and reconciliation
US11494380B2 (en) 2019-10-18 2022-11-08 Splunk Inc. Management of distributed computing framework components in a data fabric service system
US11922222B1 (en) 2020-01-30 2024-03-05 Splunk Inc. Generating a modified component for a data intake and query system using an isolated execution environment image
US11704313B1 (en) 2020-10-19 2023-07-18 Splunk Inc. Parallel branch operation using intermediary nodes

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0877053A (ja) * 1994-09-08 1996-03-22 Nippon Telegr & Teleph Corp <Ntt> 複製データベース反映装置及び複製データベース反映方法
JP2009266147A (ja) * 2008-04-30 2009-11-12 Internatl Business Mach Corp <Ibm> データベースと仮想テーブルの整合性を維持する方法および装置。
JP2011248852A (ja) * 2010-04-27 2011-12-08 Hitachi Ltd システム連携装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050055382A1 (en) * 2000-06-28 2005-03-10 Lounas Ferrat Universal synchronization
JP3974538B2 (ja) * 2003-02-20 2007-09-12 株式会社日立製作所 情報処理システム
JP4374953B2 (ja) * 2003-09-09 2009-12-02 株式会社日立製作所 データ処理システム
US20070094308A1 (en) * 2004-12-30 2007-04-26 Ncr Corporation Maintaining synchronization among multiple active database systems
US7509467B2 (en) * 2006-01-13 2009-03-24 Hitachi, Ltd. Storage controller and data management method
JP4890048B2 (ja) * 2006-02-24 2012-03-07 株式会社日立製作所 記憶制御装置及び記憶制御装置を用いたデータマイグレーション方法
JP4481338B2 (ja) * 2008-03-28 2010-06-16 株式会社日立製作所 バックアップシステム、ストレージ装置及びデータのバックアップ方法
JP4874368B2 (ja) * 2009-06-22 2012-02-15 株式会社日立製作所 フラッシュメモリを用いたストレージシステムの管理方法及び計算機
JP5560007B2 (ja) 2009-08-26 2014-07-23 アイチエレック株式会社 電動機および圧縮機
EP2534570A1 (en) * 2010-02-09 2012-12-19 Google, Inc. Method and system for providing efficient access to a tape storage system
JP2011169588A (ja) 2011-06-06 2011-09-01 Toshiba Corp 空調最適制御システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0877053A (ja) * 1994-09-08 1996-03-22 Nippon Telegr & Teleph Corp <Ntt> 複製データベース反映装置及び複製データベース反映方法
JP2009266147A (ja) * 2008-04-30 2009-11-12 Internatl Business Mach Corp <Ibm> データベースと仮想テーブルの整合性を維持する方法および装置。
JP2011248852A (ja) * 2010-04-27 2011-12-08 Hitachi Ltd システム連携装置

Also Published As

Publication number Publication date
EP2829976A4 (en) 2015-11-11
EP2829976A1 (en) 2015-01-28
US20150058293A1 (en) 2015-02-26
WO2013141308A1 (ja) 2013-09-26

Similar Documents

Publication Publication Date Title
WO2013141308A1 (ja) 分散ストレージシステム、ストレージ制御方法およびプログラム
CN102521269B (zh) 一种基于索引的计算机连续数据保护方法
US9612758B1 (en) Performing a pre-warm-up procedure via intelligently forecasting as to when a host computer will access certain host data
US10789228B2 (en) Data presence/absence determination apparatus and computer-readable storage medium storing program for determination of data presence/absence
US8234470B2 (en) Data repository selection within a storage environment
CN103116661A (zh) 一种数据库的数据处理方法
KR101023585B1 (ko) 객체기반 스토리지 시스템에서 클라이언트 요청빈도에 따른데이터 관리 방법
CN102662992A (zh) 一种海量小文件的存储、访问方法及装置
Canim et al. Buffered Bloom Filters on Solid State Storage.
KR20100048130A (ko) 메타데이터 클러스터 기반의 분산형 스토리지 시스템 및 그동작 방법
WO2010084754A1 (ja) データベースシステム、データベース管理方法、データベース構造および記憶媒体
Niazi et al. Size matters: Improving the performance of small files in hadoop
Wang et al. Metakv: A key-value store for metadata management of distributed burst buffers
Nguyen et al. Zing database: high-performance key-value store for large-scale storage service
Carniel et al. A generic and efficient framework for spatial indexing on flash-based solid state drives
Cao et al. Timon: A timestamped event database for efficient telemetry data processing and analytics
CN104052824A (zh) 分布式缓存方法及系统
Takatsu et al. PPFS: A scale-out distributed file system for post-petascale systems
Wang et al. The design of data storage system based on Lustre for EAST
KR101629395B1 (ko) 데이터 분석 장치, 데이터 분석 방법 및 데이터를 분석하는 프로그램을 저장하는 저장매체
US20180165380A1 (en) Data processing system and data processing method
Liu et al. masfs: File system based on memory and ssd in compute nodes for high performance computers
Zhu et al. Time Series Database Optimization Based on InfluxDB
JP2013004067A (ja) ストレージシステム、ストレージ制御方法、プログラム
JP2016149049A (ja) 情報処理装置、情報処理システム、ペアデータ更新方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170404

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20171010