[go: up one dir, main page]

JP6260359B2 - データ分割処理プログラム,データ分割処理装置及びデータ分割処理方法 - Google Patents

データ分割処理プログラム,データ分割処理装置及びデータ分割処理方法 Download PDF

Info

Publication number
JP6260359B2
JP6260359B2 JP2014045042A JP2014045042A JP6260359B2 JP 6260359 B2 JP6260359 B2 JP 6260359B2 JP 2014045042 A JP2014045042 A JP 2014045042A JP 2014045042 A JP2014045042 A JP 2014045042A JP 6260359 B2 JP6260359 B2 JP 6260359B2
Authority
JP
Japan
Prior art keywords
data
binary data
file
record
detected
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.)
Expired - Fee Related
Application number
JP2014045042A
Other languages
English (en)
Other versions
JP2015170170A (ja
Inventor
恭也 立岩
恭也 立岩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014045042A priority Critical patent/JP6260359B2/ja
Priority to US14/613,442 priority patent/US10102217B2/en
Publication of JP2015170170A publication Critical patent/JP2015170170A/ja
Application granted granted Critical
Publication of JP6260359B2 publication Critical patent/JP6260359B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching

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

Description

本発明は、データ分割処理プログラム,データ分割処理装置及びデータ分割処理方法に関する。
近年、ウェブデータ等の大量のデータを処理するための処理システムとして、マップ−リデュース(Map-Reduce)型の分散処理システムが知られている。
マップ−リデュース型の分散処理システムにおいては、分散処理システム上のデータをデータブロックと呼ばれる単位に分割し、これらのデータブロックに対してマップ処理及びリデュース処理を順次適用する。
このようなマップ−リデュース型の分散処理システムによれば、各データブロックに対する一連の計算処理を複数の計算ノードで同時に分散して実行することが可能となる。
Hadoop(登録商標)は大規模データを効率的に分散処理・管理するためのOSS(Open Source Software)のフレームワークであり、主に分析処理で活用されている。このHadoopを基幹系のバッチ処理に適用することにより、データを複数のマシンに分散して処理させ、処理時間が課題となっている大規模バッチ処理の高速化が実現できる。
Hadoopにおいては、マスタノードが複数のスレーブノードにタスクをそれぞれ割り当て、スレーブノードは、マスタノードから割り当てられたマップタスク(Mapタスク)を実行する。
Hadoopでは、ファイルを一定のサイズのブロックに分割し、そのブロック毎にマップタスクで処理を行う。
図15はHadoopのマップ−リデュースフレームワークの動作概要を示す図である。図15に示す例においては、Hadoop分散ファイルシステム(HDFS:Hadoop Distributed File System)によって管理される196MBのファイルが64MBのデータサイズを有する3つのブロックに分割され、それらを3つのマップタスクで並列に処理している。マップタスクから出力されたデータは、Shuffle&sortやReduceタスクを経て、ソートされた結果ファイルとして出力され、HDFSに戻される。
このような分散処理システムにおいて、ファイルが分割されてもデータ自体は分割されないことが重要である。例えるならば、マップタスクに渡される「みかん」というデータが、「みか」と「ん」に分かれてはならない。このように一体として扱われるべきデータが分割されてしまうことを泣き別れという場合がある。
このため、64MBでファイル分割が行なわれた後、データの区切り位置を調整する必要がある。Hadoopのデフォルトでは、データの区切りとして改行コードを用い、この改行コードの位置を区切りとして処理することで、データの泣き別れを防いでいる。この区切りの調整処理はカスタマイズ可能であり、例えば任意の文字を区切りとするような、カスタマイズが可能になっている。
図16はNetCOBOLの可変長レコード順ファイルのフォーマットを例示する図である。
NetCOBOLの可変長レコード順ファイルは、この図16に示すように、データの前後に4バイトのレコード長情報を有する可変長レコードを複数連続することにより構成されている。データは利用者が設定する任意のバイナリ値である。また、データの前後に配置されるレコード長には同一の値が格納される。
なお、利用者はレコード長情報を設定・参照する必要はなく、COBOLランタイムシステムが参照・設定を行なう。
図17はNetCOBOLの可変長レコード順ファイルのレコードイメージを示す図である。
この図17に示す例においては、1つの可変長レコード毎に改行して見やすくしているが、実際は複数の可変長レコードが連続している。
NetCOBOLの可変長レコード順ファイルをHadoopで利用する場合、ブロック単位でファイル分割が行われた後、データの区切りを調整することができない。これは、データが利用者が任意に設定可能なバイナリ値であり、改行コードや任意の文字を区切りとする場合に、データ内にこれらの改行コードや区切り文字と同じ情報が含まれるおそれがあり、データの区切り位置を特定できないためである。
図18はNetCOBOLの可変長レコード順ファイルを2つに分割する場合のレコードイメージを示す図である。
この図18に示す例においては、ファイルを64MBのブロックサイズ単位で分割する場合に、データ長が105バイトのデータが、その途中で分断されてしまうことを示す。
そこで、NetCOBOLでは、レコードの位置を正しく求めてデータ区切り位置を調整するために、ブロックサイズによる分断位置から次の可変長レコードの先頭位置までの距離(バイト長)を保持する情報ファイルを予め作成し、この情報ファイルを区切りの調整処理で参照する手法が用いられる。
図19はNetCOBOLの可変長レコード順ファイルと情報ファイルとを示す図である。
情報ファイルは、入力ファイルである可変長レコード順ファイルを読み込んでレコード長を加算し、ブロックサイズで分断される位置から次のレコード先頭位置までの情報を保持する。
図19に示す例においては、情報ファイルにおいて、例えばファイルを先頭から64MBの位置で分割する場合に、その分断位置から次の可変長レコード(データ長が20バイト)の先頭までのデータ長が55バイトであることを示す。なお、情報サイズ作成時には、ブロックサイズもパラメータで指定する必要がある。
特開2012−118669号公報 特表平10−500793号公報 特開平3−62137号公報
しかしながら、このような従来の分散処理システムにおいては、上述した情報ファイルを作成するために、処理対象ファイル全体を、その先頭から可変長レコードのレコード長を順次取り出して加算することで区切り位置を求める。このため、例えば、データサイズが数十〜数百GBであり、レコード件数が数百万件程度の大きなサイズのファイルでは、情報ファイルの作成処理に時間がかかってしまう。例えば80GBのデータサイズのファイルにおいては、情報ファイルの作成に例えば15分程度の時間を要する場合もある。
これにより、本来は処理時間の高速化を目的としてHadoopを導入するにもかかわらず、情報ファイルの作成に時間を要し、全体の処理時間で考えるとHadoopによる時間短縮効果が薄れてしまうという課題がある。
1つの側面では、本発明は、分割処理を高速化できるようにすることを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
このため、このデータ分割処理方法は、バイナリデータを複数に分割して複数の処理部
により処理する分割処理方法であって、前記複数の処理部のそれぞれに、前記バイナリデータの一部である部分バイナリデータをそれぞれ割り当て、前記複数の処理部はそれぞれ、割り当てられた部分バイナリデータのデータ区切り位置を、前記バイナリデータを構成
する所定のデータの特性に基づき検出するとともに、検出したデータ区切り位置を示す情
報を記憶手段に登録し、前記複数の処理部はそれぞれ、他の処理部により前記記憶手段に
登録されたデータ区切り位置を示す情報に基づき、前記部分バイナリデータにおいて検出
したデータ区切り位置が正当であるかを判定し、前記処理対象の部分バイナリデータについて検出したデータ区切り位置と、前記記憶手段に登録された、前記バイナリデータにおいて前記処理対象の部分バイナリデータと隣接する部分バイナリデータについてのデータ区切り位置とが連続する場合に、検出したデータ区切り位置が正当であると判断する
一実施形態によれば、分割処理を高速化することができる。
実施形態の一例としての分散処理システムの機能構成を模式的に示す図である。 実施形態の一例としての分散処理システムのサーバのハードウェア構成を例示する図である。 実施形態の一例としての分散処理システムにおけるノード間共有情報を例示する図である。 実施形態の一例としての分散処理システムにおける特定部による区切り位置の特定方法を説明するための図である。 実施形態の一例としての分散処理システムにおける分割ファイルの区切り位置の調整方法を説明するフローチャートである。 実施形態の一例としての分散処理システムにおけるファイル読込部によるファイルの読み込み処理を説明するフローチャートである。 実施形態の一例としての分散処理システムにおけるファイル先頭記録部による処理を説明するフローチャートである。 実施形態の一例としての分散処理システムにおける整合性判定部及びファイル終端記録部による処理を説明するフローチャートである。 実施形態の一例としての分散処理システムにおける解析対象ファイルを例示する図である。 実施形態の一例としての分散処理システムにおける解析対象ファイルの分割処理を説明するための図である。 実施形態の一例としての分散処理システムにおける解析対象ファイルの分割処理を説明するための図である。 実施形態の一例としての分散処理システムにおける解析対象ファイルの分割処理を説明するための図である。 実施形態の一例としての分散処理システムの特定部が犯しうる区切り位置の誤検知を例示する図である。 MicroFocusのレコード順ファイルの構成を例示する図である。 Hadoopのマップ−リデュースフレームワークの動作概要を示す図である。 NetCOBOLの可変長レコード順ファイルのフォーマットを例示する図である。 NetCOBOLの可変長レコード順ファイルのレコードイメージを示す図である。 NetCOBOLの可変長レコード順ファイルを2つに分割する場合のレコードイメージを示す図である。 NetCOBOLの可変長レコード順ファイルと情報ファイルとを示す図である。
以下、図面を参照して本データ分割処理プログラム,データ分割処理装置及びデータ分割処理方法に係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
図1は実施形態の一例としての分散処理システム1の機能構成を模式的に示す図、図2はそのサーバのハードウェア構成を例示する図である。
本分散処理システム1は、複数(図1に示す例では4つ)のサーバ(計算ノード,ノード)10−1〜10−4をそなえ、これらの複数のサーバ10−1〜10−4で分散して処理を行なう。本分散処理システム1は、例えばHadoop(登録商標)を用いて分散処理を実現するマップ−リデュースシステムである。Hadoopはデータ(ファイル)を複数のマシンに分散して処理させるオープンソースのプラットフォームであり、公知の技術であるので、その詳細な説明は省略する。
また、本実施形態においては、処理対象のファイルが、図16,図17等に例示したNetCOBOLの規格に沿った可変長レコードファイル(以下、単にファイルという)である例について説明する。すなわち、処理対象のファイルはバイナリデータであり、また、処理対象のファイルは、複数の可変長レコード(単位レコード)を連続することにより構成されている。さらに、個々の可変長レコードにおいては、データの前後に当該データのデータ長を示すレコード長情報が配置されているというデータ構造上の特性(規則性)を有する。なお、可変長レコードにおけるデータよりも前側のレコード長情報を前側レコード長情報といい、データよりも後側に位置するレコード長情報を、後側レコード長情報という場合がある。
各サーバ10−1〜10−4はネットワーク50を介して相互に通信可能に接続されている。ネットワーク50は、例えばLAN(Local Area Network)等の通信回線である。
サーバ10−1〜10−4は、それぞれサーバ機能をそなえたコンピュータ(情報処理装置,処理部)である。各サーバ10−1〜10−4は、同様の構成を備える。以下、サーバを示す符号としては、複数のサーバのうち1つを特定する必要があるときには符号10−1〜10−4を用いるが、任意のサーバを指すときには符号10を用いる。
また、図1に示す例においては、サーバ10−1がマスタノードとして機能し、サーバ10−2〜10−4がスレーブノードとして機能する。以下、サーバ10−1をマスタノードMNという場合があり、サーバ10−2〜10−4をそれぞれスレーブノードSNという場合がある。
マスタノードMNは、本分散処理システム1における処理を管理する装置であり、複数のスレーブノードSNにタスクをそれぞれ割り当てる。スレーブノードSNは、マスタノードMNから割り当てられたマップタスク(Mapタスク;以下、単にタスクという)を実行する。タスクを分散して割り当てられた複数のスレーブノードSNが、それぞれ割り当てられたタスクを並行して実行することによりジョブの処理時間を短縮する。
なお、図1に示す例においては、マスタノードMNもタスクトラッカ13(後述)としての機能を備えており、このマスタノードMNにおいても割り当てられたタスクの実行を行なう機能を備えている。従って、図1に例示する分散処理システム1においては、サーバ10−1もスレーブノードSNとして機能する。
また、本実施形態においては、各スレーブノードSNが、それぞれマップタスクを実行するものとする。
サーバ10は、例えばサーバ機能をそなえたコンピュータ(情報処理装置,データ分割装置,処理部)である。サーバ10は、図2に示すように、CPU(Central Processing Unit)201,メモリ202,表示装置205,キーボード206,マウス207及び記憶装置208を備える。
メモリ202はROM(Read Only Memory)及びRAM(Random Access Memory)を含む記憶装置である。メモリ202のROMには、分散処理制御に係るソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ202上のソフトウェアプログラムは、CPU201に適宜読み込まれて実行される。また、このメモリ202のRAMには、後述するノード間共有情報15が格納される。
また、メモリ202のRAMは、一次記憶メモリあるいはワーキングメモリとして利用される。さらに、メモリ202のRAMは、分割するファイルを格納する図示しないバッファ領域としても機能する。
表示装置205は、例えば、液晶ディスプレイやCRT(Cathode Ray Tube)ディスプレイであり、種々の情報を表示する。
キーボード206及びマウス207は入力装置であり、利用者がこれらの入力装置を用いて、種々の入力操作を行なう。例えば、マスタノードMNにおいて、利用者は、これらのキーボード206やマウス207を用いて、例えば、処理対象のファイルの指定や処理内容の指定(入力)を行なう。
記憶装置208は種々のデータやプログラムを格納する記憶装置であって、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)である。又、記憶装置208は、例えば、複数のHDDを組み合わせて、冗長化された1つのストレージとして管理するRAID(Redundant Arrays of Inexpensive Disks)装置であってもよい。
CPU201は、種々の制御や演算を行なう処理装置であり、メモリ202に格納されたプログラムを実行することにより、種々の機能を実現する。
マスタノードMNにおいて、CPU201は、図1に示す、ユーザアプリケーション機能部11,ファイル管理部12,ジョブトラッカ14及びタスクトラッカ13として機能する。
なお、これらのユーザアプリケーション機能部11,ファイル管理部12,ジョブトラッカ14及びタスクトラッカ13としての機能を実現するためのプログラムは、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RW等),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供してもよい。
ユーザアプリケーション機能部11,ファイル管理部12,ジョブトラッカ14及びタスクトラッカ13としての機能を実現する際には、内部記憶装置(本実施形態ではメモリ202)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態ではCPU201)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行してもよい。
同様に、スレーブノードSNにおいても、CPU201が、プログラムを実行することにより、タスクトラッカ13及びファイル管理部12として機能する。
ユーザアプリケーション機能部11は、ユーザからのジョブ依頼を受け付け、マップリデュースジョブ(Map-Reduceジョブ;以下、単にジョブという)を生成し、ジョブトラッカ14にジョブを投入(ジョブ登録)する。
ユーザアプリケーション機能部11は、ユーザがキーボード206やマウス207を用いて処理対象ファイルの指定や処理内容(指示内容)を入力すると、この入力された情報に基づいてジョブを生成する。
ジョブトラッカ14は、ユーザアプリケーション機能部11によって行なわれたジョブ登録に基づいて、クラスタ中の利用可能なタスクトラッカ13にタスクを割り当てる、割り当て制御部としての機能を備える。
タスクトラッカ13は、ジョブトラッカ14から割り当てられたタスクを処理する。
なお、これらのユーザアプリケーション機能部11,ジョブトラッカ14及びタスクトラッカ13としての機能は既知の種々の手法で実現することができ、その詳細な説明は省略する。
ファイル管理部12は、処理対象のファイルを複数のサーバ10の記憶装置208に分散して格納させる。以下、サーバ10の記憶装置208にデータを格納することを、単にサーバ10にデータを格納すると表現する。図1に示す例においては、サーバ10−1にファイル1が、サーバ10−2にファイル4が、サーバ10−3にファイル2,5が、サーバ10−4にファイル3が、それぞれ格納されている。
また、ファイル管理部12は、処理対象のファイル(データ)を所定サイズ(例えば64MB)の断片(データブロック,ブロック)に分割して、各ノードの記憶装置208に格納させる。すなわち、ファイル管理部12はバイナリデータであるファイルを複数のブロック(部分バイナリデータ)に分割する分割処理部20としての機能を備える。また、この分割処理部20としての機能を備えるサーバ10は、ファイルを複数に分割した分割ファイルを処理するデータ分割処理装置として機能する。以下、分割されたファイルの個々の部分を分割ファイルという場合がある。
さらに、分割処理部20は、割り当てられた分割ファイルに含まれる全ての可変長レコードが、その途中で分断されることがないように、分割ファイルの区切り位置を調整する機能を備える。
分割処理部20は、割り当てられた分割ファイルが可変長レコードの途中で分断されている場合、すなわち、分割ファイルの先頭や終端の区切り位置が可変長レコードの途中に位置する場合には、その区切り位置をずらす。これにより、分割ファイル中に含まれる全ての可変長レコードが、それぞれ2つのレコード長とデータ(レコードデータ)とを含むようにする。つまり、分割ファイル中の可変長レコードが連続する2つの分割ファイルに分かれて格納される(いわゆる泣き別れ状態)となることがないように、区切り位置を調整する。
分割処理部20は、図1に示すように、ファイル読込部21,ファイル先頭記録部22,特定部23,ファイル終端記録部24及び整合性判定部25を備える。
ファイル読込部21は、メモリ202の図示しないバッファ領域に、ユーザアプリケーション機能部11によって指定されたファイルのデータを格納する。また、ファイル読込部21は、ファイルのデータをバッファ領域に読み込むに際して、バッファ領域の初期化も行なう。
ファイル先頭記録部22は、ファイルの先頭位置を示す情報をノード間共有情報15に記録する。
ノード間共有情報15は、サーバ10(ノード)間で共有される情報であって、各サーバ10が、自らに割り当てられた分割ファイル(タスク)について区切り位置の調整後の先頭位置と終端位置とをそれぞれ記録する。
図3は実施形態の一例としての分散処理システム1におけるノード間共有情報15を例示する図である。
この図3に示す例においては、ノード間共有情報15は、タスク番号に対して開始位置及び終端位置を関連付けて構成されている。
タスク番号は、サーバ10に割り当てられるタスクを特定する識別情報であり、タスクとは分割ファイルを示す。図3に示す例においてはタスク番号として1〜3の整数が用いられている。ただし、タスク番号は整数に限定されるものではなく、任意の文字列等を用いてもよく、種々変形して実施することができる。なお、以下、タスク番号のことをタスクIDという場合がある。
開始位置は分割ファイルの開始位置を示す情報であり、終端位置は分割ファイルの終端位置を示す情報である。これらの開始位置及び終了位置としては、例えば、分割前のファイルの先頭位置を基準(例えば0)とするアドレス情報が用いられる。
このように、ノード間共有情報15を格納するメモリ202は、検出した区切り位置を示す情報(確定レコード先頭位置,確定レコード終端位置)を記憶する記憶手段として機能する。また、このノード間共有情報15に開始位置(確定レコード先頭位置)や終端位置(確定レコード終端位置)を記憶するファイル先頭記録部22やファイル終端記録部24は、検出した区切り位置を示す情報をメモリ202に登録する登録部として機能する。
なお、ノード間共有情報15は、例えば、マスタノードMNのメモリ202に格納され、各サーバ10はこのマスタノードMNに格納されたノード間共有情報15に対して更新や参照を行なう。すなわち、各サーバ10がノード間共有情報15を共用する。
ただし、ノード間共有情報15の格納場所はマスタノードMNに限定されるものではなく、種々変形して実施することができる。例えば、いずれかのスレーブノードSNにノード間共有情報15を格納してもよく、又、図示しない他の情報処理装置がノード間共有情報15を格納してもよい。また、各サーバ10が、それぞれノード間共有情報15を備え、サーバ間通信を行なうことで各サーバ10が有するノード間共有情報15を同期させてもよい。
ファイル先頭記録部22は、後述する特定部23により特定される分割ファイル(タスク)の先頭位置を、ノード間共有情報15にその分割ファイルのタスク番号に対応付けて開始位置として記録する。
ファイル終端記録部24は、特定部23が特定した分割ファイルの終端位置(確定レコード終端位置)を示す情報を、ノード間共有情報15に終端位置として記録する。
特定部23は分割ファイルのデータ構成上の特性(規則性)に基づき、分割ファイルに含まれる可変長レコードの位置(レコード位置,データ区切り位置)を特定するものであり、分割ファイルを構成する可変長レコード(所定のデータ)の特性に基づき、データ区切り位置を検出する。
特定部23は、可変長レコードのヘッダに含まれるデータ長情報に基づき、当該可変長レコードと、後続する可変長レコードとの境界位置を特定する。すなわち、特定部23は、可変長レコードのヘッダに含まれるデータ長情報に基づき、当該可変長レコードの位置を特定する。つまり、特定部23は、可変長レコードにおいては、データの前後に当該データのデータ長を示すレコード長情報が配置されているというデータ構造上の特性に基づき、可変長レコードの位置を特定する。
特定部23がバッファ領域に格納された分割ファイルをその先頭から走査し、この分割ファイル内において、先頭の可変長レコードの位置を特定すると、当該可変長レコードに後続する各可変長レコードについては、そのデータ長を順次参照することでそれぞれの位置を特定することができる。従って、分割ファイルに含まれる複数の可変長レコードのうち、その先頭の可変長レコードの前側レコード長情報の開始位置を特定することにより、当該分割ファイルに含まれる全ての可変長レコードの位置を特定することができる。これにより、分割ファイルの最後尾に位置する可変長レコードの終端位置も特定することができる。すなわち、特定部23は、バッファ領域に格納された分割ファイルについて、当該分割ファイルに含まれる各可変長レコードを順次認識することで、その終端位置を特定する。
なお、バッファ領域における分割ファイルの走査位置は、例えば、図示しないポインタにより特定することができる。又、バッファ領域において、分割ファイルの先頭から終端に向かう方向を走査方向という場合がある。
特定部23は、例えば、以下の(A1)〜(A6)の処理を行なうことで、分割ファイルの区切り位置を特定する。
図4は実施形態の一例としての分散処理システム1における特定部23による区切り位置の特定方法を説明するための図である。なお、図4中においては、便宜上、マップタスク2について示し、マップタスク1,3についての図示を省略する。
(A1)特定部23は、分割ファイルが格納されたバッファ領域の先頭から4バイトを読み出す。処理対象のファイル中における、この読み出した4バイトのデータ位置を仮先頭位置とする。
(A2)特定部23は、4バイトの値(X)を解析して、このデータがレコード長であるか否かを確認する。
具体的には、特定部23は、先ず、取得した4バイトの値(X)を符号なし整数値として、0<X<32768 の範囲内かどうか確認する。ここで、Xの上限値として32767と比較するのは、COBOLのレコード長の最大値が32767だからである。
4バイトの値が0<X<32768の範囲外の場合は、この4バイトの値(X)はレコード長を表すものではないと判断できる。この場合、特定部23は、バッファ領域において読み出しの先頭位置を走査方向に1バイトずらして、新たな4バイトのデータを読み出し、再度(A2)の処理を実施する。4バイトの値が0<X<32768の範囲内の場合は、(A3)の処理に移行する。
(A3)取得した4バイトの値(図4に示す例では“2000”)がレコード長情報であると仮定して、バッファ領域において、走査方向に、このレコード長情報が示すレコード長分進んだ位置(バッファ位置)に、同一の値のレコード長情報(後側レコード長情報)が存在するか確認する。
すなわち、バッファ領域において、走査方向に、このレコード長分進んだ位置から4バイトのデータを読み出し、先に取得した4バイトの値と同一であるか否かを確認する。
レコード長(2000バイト)だけ進んだバッファ位置に同じレコード長(“2000”)が存在しない場合は、取得した4バイトの値はレコード長ではなかったと判断され、(A2)の処理に戻る。一方、レコード長(2000バイト)だけ進んだバッファ位置に同じレコード長(“2000”)が存在する場合は、レコード位置が検出できたものとして(A4)の処理に移行する。
(A4)取得した4バイトの値がレコード長であると想定し、そのレコード先頭位置(確定レコード先頭位置)をファイル先頭記録部22に通知する。
(A5)ファイル先頭記録部22は、通知された確定レコード先頭位置を、当該分割ファイルに相当するタスク番号に関連づけてノード間共有情報15に記録する。
また、正しいレコードの開始位置が判明したものとしてレコードの読み込み処理を行なう。すなわち、分割ファイルを構成する各可変長レコードのデータを、先頭から順次読み出す。この際、各可変長レコードについて、ヘッダに含まれるレコード長とデータのレコード長との整合性を確認しながら読み込みを行なう。
不整合が検出された場合には、上記(A3)〜(A5)における処理結果を破棄し、バッファ領域において読み出しの先頭位置を1バイトずらして、新たな4バイトのデータを読み出し、(A2)の処理からやり直す。
(A6)解析対象の分割ファイルの終端位置まで到達したら、特定部23は、その終端位置を示す情報を確定レコード終端位置としてファイル終端記録部24に通知する。
上述した確定レコード先頭位置及び確定レコード終端位置が、当該分割ファイルの区切り位置として用いられる。
従って、特定部23は、処理対象の分割ファイル(部分バイナリデータ)のデータ区切り位置を、バイナリデータを構成する可変長レコードの構造上の特性に基づき検出する検出部として機能する。
その後、後述する整合性判定部25が、ノード間共有情報15を参照し、他のマップタスクで検出し記録した分割ファイルの位置との整合性チェックを行なう。
整合性判定部25は、特定部23によって特定された分割ファイルの位置と、他のマップタスクにおいて特定された分割ファイルの位置とを比較することにより、特定した分割ファイルの区切り位置の整合性を判定する。
整合性判定部25は、ノード間共有情報15を参照することで、特定部23によって特定された確定レコード先頭位置と、他のマップタスクで検出し記録した分割ファイルの終端位置との整合性を確認する。
具体的には、整合性判定部25は、特定部23によって特定された確定レコード先頭位置を、処理対象のファイルにおいて、当該分割ファイルよりも前側(先行して)に隣接する他の分割ファイルを処理するマップタスクについてノード間共有情報15に記録されている分割ファイルの終端位置(確認レコード終端位置)と比較する。この比較の結果、先行する分割ファイルの確認レコード終端位置が、当該マップタスクにおいて特定される確定レコード先頭位置と連続している場合に、整合性判定部25は整合性があると判断する。
従って、整合性判定部25は、メモリ202に登録された他の分割ファイル(部分バイナリデータ)に関する区切り位置を示す情報に基づき、検出した区切り位置が正当であるかを判定する判定部として機能する。
整合性判定部25により整合性があると判定されると、分割処理部(確定部)20は、確定レコード先頭位置と確定レコード終端位置とを分割ファイルのデータ区切り位置として確定する。すなわち、分割ファイルのデータ範囲は、確定レコード先頭位置が先頭であり、且つ、確定レコード終端位置が終端となるよう修正される。
従って、分割処理部20は、判定されたデータ区切り位置に基づき処理対象のファイル(バイナリデータ)の区切り位置を確定する確定部として機能する。
このようにファイル管理部12(分割処理部20)によりデータの区切り位置が修正された分割ファイルは、タスクトラッカ13に受け渡され、処理される。
上述の如く構成された実施形態の一例としての分散処理システム1における分割ファイルの区切り位置の調整方法を、図5に示すフローチャート(ステップB1〜B12)に従って説明する。
ステップB1において、ファイル読込部21は、メモリ202の図示しないバッファ領域に、ユーザアプリケーション機能部11によって指定されたファイルのデータを格納する。
このステップB1における、ファイル読込部21によるファイルの読み込み処理を、図6に示すフローチャート(ステップB101〜B102)に従って説明する。
ファイル先頭記録部22は、ステップB101においてメモリ202のバッファ領域を初期化した後、ステップB102において、ユーザアプリケーション機能部11によって指定されたファイルからバッファ単位でバッファ領域にデータを読み込む。
次に、図5のステップB2において、ファイル先頭記録部22が、ファイルの先頭位置を示す情報をノード間共有情報15に記録する。
このステップB2における、ファイル先頭記録部22による処理を、図7に示すフローチャート(ステップB201〜B203)に従って説明する。
先ず、ステップB201において、ファイル先頭記録部22は、処理中のタスク(分割ファイル)を特定するタスクIDを取得する。このタスクIDは、例えば、ユーザアプリケーション機能部11から取得してもよく、又、ファイル管理部12等が任意に設定してもよい。
ステップB202において、ファイル先頭記録部22は、ノード間共有情報15に接続して、ステップB203において、タスクIDと処理対象の分割ファイルの先頭の位置を示す情報とをノード間共有情報15に記録する。
次に、図5のステップB3において、ファイル読込部21は、処理対象の分割ファイルにおける終端位置であるか否かを確認する。すなわち、バッファ領域に展開された処理対象の分割ファイルにおいて、処理中(走査中)位置を示すポインタが分割ファイルの終端に到達しているか否かを確認する。
確認の結果、分割ファイルの終端に到達していない場合には(ステップB3のNoルート参照)、ステップB4において、特定部23は、ポインタ位置から4バイトの値を読み出し、この4バイトの値に対して終端位置の判定処理を開始する。
ステップB5において、取得した4バイトの値(X)を符号なし整数値として、0<X<32768 の範囲内かどうか確認する。
4バイトの値が0<X<32768の範囲内の場合は(ステップB5のYesルート参照)、ステップB6において、取得した4バイトの値がレコード長(前側レコード長情報)であると仮定して、バッファ領域において、このレコード長分進んだ位置(バッファ位置)から4バイトの値を読み出す。
ステップB7において、ステップB4で取得した4バイトの値と、ステップB6でレコード長だけ進んだバッファ位置から取得した、後側レコード長情報と仮定される4バイトの値とが同一であるか否かを確認する。
ステップB4で取得した4バイトの値と、ステップB6で取得した4バイトの値とが同一である場合には(ステップB7のYesルート参照)、ステップB8に移行する。すなわち、ステップB4において、可変長レコードにおけるレコード長を正しく検出できたものとして、その可変長レコードからデータ(レコードデータ)を読み出し、ステップB3に戻る。
一方、ステップB5において4バイトの値が0<X<32768の範囲外の場合や(ステップB5のNoルート参照)、ステップB4で取得した4バイトの値と、ステップB6で取得した4バイトの値とが同一でない場合には(ステップB7のNoルート参照)、ステップB9において、分割ファイルにおけるポインタ位置(現在位置)を走査方向に1バイト進めた後、ステップB4に戻る。
また、ステップB3において、分割ファイルの終端に到達した場合には(ステップB3のYesルート参照)、ステップB10において、整合性判定部25による終端位置に対する判定(検証)とファイル終端記録部24による終端位置の記録が行なわれる。
このステップB10における、整合性判定部25及びファイル終端記録部24による処理を、図8に示すフローチャート(ステップB111〜B116)に従って説明する。
ステップB111において、整合性判定部25は、処理中のタスク(分割ファイル)を特定するタスクIDを取得する。
ステップB112において、整合性判定部25はノード間共有情報15にアクセスして、ステップB113において、ファイル終端記録部24が、ノード間共有情報15にタスクID及び確定レコード終端位置を記録する。
ステップB114において、整合性判定部25は、ステップB111において取得したタスクIDが1であるか否かを確認する。この確認の結果、タスクIDが1でない場合には(ステップB114のNoルート参照)ステップB115において、整合性判定部25は、ノード間共有情報15から、処理対象ファイルにおいて、処理中の分割ファイルよりも前側において連続する(すなわち、一つ前の)他の分割ファイルについての、確定レコード終端位置を読み出す。
そして、ステップB116において、整合性判定部25は、この取得した一つ前の分割ファイルについての確定レコード終端位置の値に1を加算した値と、当該処理対象ファイルについて特定部23が特定した確定レコード先頭位置とを比較する。
取得した一つ前の分割ファイルについての確定レコード終端位置の値に1を加算した値と、当該処理対象ファイルについて特定部23が特定した確定レコード先頭位置とが一致した場合には(ステップB116のYesルート参照)、整合性があると判断して処理を終了する。
一方、取得した一つ前の分割ファイルについての確定レコード終端位置の値に1を加算した値と、当該処理対象ファイルについて特定部23が特定した確定レコード先頭位置とが一致しない場合には(ステップB116のNoルート参照)、整合性がないと判断して処理を終了する。
なお、整合性の判断結果(整合性ありもしくは整合性なし)は、その旨を示す情報(例えばフラグ)をメモリ202等の所定の記憶領域に記録することが望ましい。
また、ステップB114における確認の結果、タスクIDが1である場合には(ステップB114のYesルート参照)、整合性判定部25は、整合性があると判断して処理を終了する。ファイルの先頭位置については、先行する分割ファイルは存在しないからである。
その後、図5におけるステップB11において、特定部23は、整合性判定部25による判定結果を参照して、整合性があると判断された場合には(ステップB11のYesルート参照)、処理を終了する。
また、整合性がないと判断された場合には(ステップB11のNoルート参照)、ステップB12において、特定部23は、分割ファイルにおけるポインタ位置(現在位置,確定レコード先頭位置)を走査方向に1バイトずらし、ステップB3に戻る。
次に、上述の如く構成された実施形態の一例としての分散処理システム1における解析対象ファイルの分割処理を、図9〜図12を用いて例示する。図9は解析対象ファイルFを例示する図である。解析対象ファイルFは、NetCOBOLの可変長レコード順ファイルであり、以下においては、この図9に示すように、ファイル管理部12が、この解析対象ファイル(ファイル)Fを、3つの分割ファイルDF1〜DF3に分割する例を示す。各分割ファイルDF1〜DF3はそれぞれ64MBのデータサイズを有する。
図10,図11及び図12は、それぞれ分割ファイルDF1,DF2及びDF3に対する処理を示す。
分割ファイルDF1はマップタスク1に(図10参照)、分割ファイルDF2はマップタスク2に(図11参照)、また、分割ファイルDF3はマップタスク3に(図12参照)、それぞれ割り当てられ、各マップタスク1〜3によりそれぞれ処理される。
また、各マップタスク1〜3において、割り当てられた分割ファイルDF1〜DF3は、それぞれに含まれる全ての可変長レコードが、それぞれ途中で分断されることがないように、上述した手法により区切り位置が調整される。
また、その際、各マップタスクにおいては、ファイル先頭記録部22が、区切り位置の調整後の分割ファイルの確定レコード先頭位置をノード間共有情報15の開始位置に格納し、又、確定レコード終端位置を、ノード間共有情報15の終端位置に格納する。
図10に例示するマップタスク1において処理される分割ファイルDF1は、解析対象ファイルFの先頭部分であるので、その確定レコード先頭位置は0であり、ノード間共有情報15のタスク番号1の開始位置には0が登録される。
また、区切り位置の調整後の分割ファイルDF1の終端位置が64MB+904B(バイト)であり、ノード間共有情報15のタスク番号1の終端位置には64MB+904Bが登録される。
図11に例示するマップタスク2において処理される分割ファイルDF2についても同様に、区切り位置の調整後の分割ファイルDF2の確定レコード先頭位置は64MB+905Bであり、ノード間共有情報15のタスク番号2の開始位置には64MB+905Bが登録される。
また、区切り位置の調整後の分割ファイルDF2の終端位置は128MB+381Bであり、ノード間共有情報15のタスク番号2の終端位置には128MB+381Bが登録される。
図12に例示するマップタスク3において処理される分割ファイルDF3についても同様に、区切り位置の調整後の分割ファイルDF3の確定レコード先頭位置は128MB+382Bであり、ノード間共有情報15のタスク番号3の開始位置には128MB+382Bが登録される。
また、区切り位置の調整後の分割ファイルDF3の終端位置は128MB+2079Bであり、ノード間共有情報15のタスク番号3の終端位置には128MB+2079Bが登録される。
このように、実施形態の一例としての分散処理システム1によれば、各マップタスクにおいて、特定部23が、バイナリデータである分割ファイルを、そのデータ構成の規則性を用いることで、その区切り位置を特定する。
例えば、分割ファイルを構成する可変長レコードが、データの前後にデータ長を示す情報を有している場合に、バッファ領域に格納された分割ファイルの先頭から走査して、レコード長を示すデータ(前側データ長情報)と想定される部分を検出する。そして、このレコード長と想定されるデータが示す値(データ長)だけ進んだバッファ位置にも、同一のレコード長と想定されるデータ(後側データ長情報)が検出された場合に、可変長レコードのレコード位置が検出できたとみなす。
この可変長レコードのレコード位置の検出を、分割ファイルの終端まで繰り返し行ない、また、途中で不整合が検出された場合には、開始位置を1バイト進めた位置を新たな確定レコード先頭位置としてレコード位置の検出を再度行なう。これにより、データ区切りを検証することができる。
本分散処理システム1によれば、処理対象ファイル全体をその先頭から可変長レコードのレコード長を順次取り出して加算することなく、分割ファイルの区切り位置(分断位置)を容易に特定することができる。従って、マップタスク処理に要する時間を短縮することができ、処理を高速化することができる。
また、分割ファイルのデータ範囲を、確定レコード先頭位置を先頭とし、確定レコード終端位置を終端とするように修正することで、可変長レコードの途中にデータ区切りが位置することがなく、ブロック分割による泣き別れを防止することができる。
このように、処理対象のデータがバイナリデータであっても、データの規則性を利用し、且つ、規則性によるデータ区切りを検証することで、ブロック分割による泣き別れを防止することができる。
また、各マップタスクにおいて、検証されたデータ区切りに基づき、その確定レコード先頭位置と確定レコード終端位置とをノード間共有情報15に記録する。そして、整合性判定部25が、このノード間共有情報15を参照して、隣り合う分割ファイルの終端位置が、確定レコード先頭位置と連続することを確認する。
分割ファイルがバイナリデータであるので、可変長レコードのデータ部分に、レコード長データに似たデータが存在するおそれがある。特定部23による区切り位置の検証時に、データ中のレコード長に似た値をレコード長と誤認し、更に、そのレコード長に似た値が示すデータ長だけ進んだ位置に、そのレコード長に似た値と同じ値が存在する場合に、区切り位置が誤検知されるおそれがある。
図13は実施形態の一例としての分散処理システム1の特定部23が犯しうる区切り位置の誤検知を例示する図である。
分割ファイルが格納されたバッファ領域から読み出した4バイトの値が32768未満の整数値であると、特定部23は、この値をレコード長と誤検知することになる。なお、図13中においては、便宜上、マップタスク2についてのみ示し、他のマップタスク1,3について図示を省略する。
図13に示す例では、バッファ領域から読み出した4バイトの値が“100”であったとする(符号C1参照)。なお、この図13に示す例においては、本来のデータ長は、図中で“1000”が記載されている部分である。
特定部23は、取得した4バイトの値(“100”)がレコード長であると仮定して、バッファ領域において、このレコード長分進んだ位置(バッファ位置)に、同一のレコード長データが存在するか確認する。
そして、この確認の結果、100バイト進んだ先の4バイトの領域に、偶然、同じく“100”が格納されている場合に(符号C2参照)、特定部23は、レコード位置が検出できたものと判断してしまう。また、これにより、可変長レコードからデータ部分とみなされるデータの読み込みが行なわれる(符号C3参照)。このようにして読み込まれたデータ中は、本来レコード長を示すデータ“1000”が含まれる等、正しいデータではない。
また、当該分割ファイルにおけるそれ以降の部分について、各可変長レコードについて、ヘッダに含まれるレコード長とデータのレコード長との整合性を確認しながら読み込みを行なった結果、その終端まで不整合が検出されなかった場合には(符号C4参照)、読み込まれた誤ったデータが使用されることになる。
このような場合に、特定部23が確定レコード先頭位置及び確定レコード終端位置をノード間共有情報15に記録し、整合性判定部25が、他のノードによってノード間共有情報15に記録された、当該分割ファイルと連続する他の分割ファイルの確定レコード先頭位置や確定レコード終端位置との連続性を調査することで、特定部23による誤検知を検知することができるのである(符号C5参照)。
このように、整合性判定部25がノード間による整合性の確認を行なうことにより、検出したデータ区切りがファイル全体で整合性を有することを確認することができ、信頼性を向上させることができる。
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
例えば、上述した実施形態においては、整合性判定部25は、分割ファイルの先頭位置が、他のマップタスクで検出し記録した分割ファイルの終端位置と連続するか否かを確認することで整合性を確認しているが、これに限定されるものではない。
すなわち、整合性判定部25は、特定部23によって特定された分割ファイルの終端位置が正しいものであるか否かを検証してもよい。
整合性判定部25は、ノード間共有情報15を参照することで、特定部23によって特定された終端位置と、他のマップタスクで検出し記録した分割ファイルの先頭位置との整合性を確認することができる。
具体的には、整合性判定部25は、特定部23が特定した終端位置を、処理対象の分割ファイルに後続する他の分割ファイルを処理するマップタスクについてノード間共有情報15に記録されている分割ファイルの先頭位置(確認レコード先頭位置)と比較する。この比較の結果、後続する分割ファイルの確認レコード先頭位置が、当該マップタスクにおいて到達した終端位置と連続している場合に、整合性判定部25は整合性があると判断してもよい。
また、上述した実施形態においては、処理対象のファイルがNetCOBOLの規格に沿った可変長レコードファイルである例を示しているが、これに限定されるものではなく、種々変形して実施することができる。
図14はMicroFocusのレコード順ファイルの構成を例示する図である。
この図14に例示するレコード順ファイルは、可変長レコードで構成され、各可変長レコードが、書き込まれたデータ(レコード)の前に、レコード長を含むレコードヘッダーを備えるとともに、データの後に最大3文字の埋め込み文字を備える。埋め込み文字は、次のレコードが4バイトの境界で開始されるようにするためのものである。
また、このレコード順ファイルには、128バイトのファイルヘッダーレコードが含まれる。
本分散処理システム1においては、処理対象ファイルがこの図14に例示するようなレコード順ファイルであってもよい。すなわち、特定部23は、そのデータ構造の規則性に基づいて、分割ファイルに含まれる可変長レコードの位置(データ区切り位置)を特定する。
具体的には、特定部23は、バッファ領域に格納された分割ファイルにおいて、ヘッダに含まれるレコード長を読み取り、このレコード長分進んだ位置から所定サイズ(最大3文字)のデータを読み出し、このデータが埋め込み文字であるか否かを確認すればよい。
このように、処理対象のデータ構造に応じて、特定部23が、可変長レコードからのデータ読出位置や比較対象を適宜変更して実施することで、種々の処理対象データに適用することができる。
また、上述した実施形態においては、複数のサーバ10を備え、これらの各サーバ10においてそれぞれマップタスクが実行されるとともに分割処理部20が分割ファイルの区切り位置の特定(修正)を行なっているが、これに限定されるものではない。例えば、1つのサーバ(情報処理装置)10において、複数のマップタスクを実行してもよく、これらのマップタスク毎に分割処理部20としてのプロセスを実行して分割ファイルの区切り位置の特定(修正)を行なってもよい。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
コンピュータに、
処理対象である、バイナリデータが複数に分割された部分バイナリデータのデータ区切
り位置を、前記バイナリデータを構成する所定のデータの特性に基づき検出し、
検出したデータ区切り位置を示す情報を記憶手段に登録し、
前記記憶手段に登録された他の部分バイナリデータに関するデータ区切り位置を示す情
報に基づき、前記部分バイナリデータにおいて検出したデータ区切り位置が正当であるか
を判定する
処理を実行させることを特徴とする、データ分割処理プログラム。
(付記2)
前記処理対象の部分バイナリデータについて検出したデータ区切り位置と、前記記憶手段に登録された、前記バイナリデータにおいて前記処理対象の部分バイナリデータと隣接する部分バイナリデータについてのデータ区切り位置とが連続する場合に、検出したデータ区切り位置が正当であると判断する
処理を前記コンピュータに実行させることを特徴とする、付記1記載のデータ分割処理プログラム。
(付記3)
前記部分バイナリデータを構成する個々の単位レコードに含まれるデータ長情報に基づき、当該部分バイナリデータの位置を特定する
処理を前記コンピュータに実行させることを特徴とする、付記1又は2記載のデータ分割処理プログラム。
(付記4)
正当であると判断された前記データ区切り位置に基づき、前記バイナリデータのデータ区切り位置を確定する
処理を前記コンピュータに実行させることを特徴とする、付記1〜3のいずれか1項に記載のデータ分割処理プログラム。
(付記5)
バイナリデータを複数に分割した部分バイナリデータを処理するデータ分割処理装置であって、
処理対象の部分バイナリデータのデータ区切り位置を、前記バイナリデータを構成する所定のデータの特性に基づき検出する検出部と、
検出したデータ区切り位置を示す情報を記憶手段に登録する登録部と、
前記記憶手段に登録された他の部分バイナリデータに関するデータ区切り位置を示す情報に基づき、前記部分バイナリデータにおいて検出したデータ区切り位置が正当であるかを判定する判定部と、
を備えることを特徴とする、データ分割処理装置。
(付記6)
前記判部が、
前記処理対象の部分バイナリデータについて検出したデータ区切り位置と、前記記憶手段に登録された、前記バイナリデータにおいて前記処理対象の部分バイナリデータと隣接する部分バイナリデータについてのデータ区切り位置とが連続する場合に、検出したデータ区切り位置が正当であると判断する
ことを特徴とする、付記5記載のデータ分割処理装置。
(付記7)
前記検出部が、前記部分バイナリデータを構成する個々の単位レコードに含まれるデータ長情報に基づき、当該部分バイナリデータの位置を特定する
ことを特徴とする、付記5又は6記載のデータ分割処理装置。
(付記8)
正当であると判断された前記データ区切り位置に基づき、前記バイナリデータのデータ区切り位置を確定する確定部
を備えることを特徴とする、付記5〜7のいずれか1項に記載のデータ分割処理装置。
(付記9)
バイナリデータを複数に分割して複数の処理部により処理する分割処理方法であって、
前記複数の処理部のそれぞれに、前記バイナリデータの一部である部分バイナリデータをそれぞれ割り当て、
前記複数の処理部はそれぞれ、割り当てられた部分バイナリデータのデータ区切り位置を、前記バイナリデータを構成する所定のデータの特性に基づき検出するとともに、検出したデータ区切り位置を示す情報を記憶手段に登録し、
前記複数の処理部はそれぞれ、他の処理部により前記記憶手段に登録されたデータ区切り位置を示す情報に基づき、前記部分バイナリデータにおいて検出したデータ区切り位置が正当であるかを判定する
ことを特徴とする、データ分割処理方法。
(付記10)
前記処理対象の部分バイナリデータについて検出したデータ区切り位置と、前記記憶手段に登録された、前記バイナリデータにおいて前記処理対象の部分バイナリデータと隣接する部分バイナリデータについてのデータ区切り位置とが連続する場合に、検出したデータ区切り位置が正当であると判断する
ことを特徴とする、付記9記載のデータ分割処理方法。
(付記11)
前記部分バイナリデータを構成する個々の単位レコードに含まれるデータ長情報に基づき、当該部分バイナリデータの位置を特定する
ことを特徴とする、付記9又は10記載のデータ分割処理方法。
(付記12)
正当であると判断された前記データ区切り位置に基づき、前記バイナリデータのデータ区切り位置を確定する
ことを特徴とする、付記9〜11のいずれか1項に記載のデータ分割処理方法。
1 分散処理システム
10,10−1〜10−4 サーバ(処理部,データ分割処理装置)
11 ユーザアプリケーション機能部
12 ファイル管理部
13 タスクトラッカ
14 ジョブトラッカ
15 ノード間共有情報
20 分散処理部
21 ファイル読込部
22 ファイル先頭記録部(登録部)
23 特定部(検出部,確定部)
24 ファイル終端記録部(登録部)
25 整合性判定部(判定部)
201 CPU
202 メモリ(記憶手段)
205 表示装置
206 キーボード
207 マウス
208 記憶装置
50 ネットワーク

Claims (5)

  1. コンピュータに、
    処理対象である、バイナリデータが複数に分割された部分バイナリデータのデータ区切り位置を、前記バイナリデータを構成する所定のデータの特性に基づき検出し、
    検出したデータ区切り位置を示す情報を記憶手段に登録し、
    前記記憶手段に登録された他の部分バイナリデータに関するデータ区切り位置を示す情報に基づき、前記部分バイナリデータにおいて検出したデータ区切り位置が正当であるかを判定し、
    前記処理対象の部分バイナリデータについて検出したデータ区切り位置と、前記記憶手段に登録された、前記バイナリデータにおいて前記処理対象の部分バイナリデータと隣接する部分バイナリデータについてのデータ区切り位置とが連続する場合に、検出したデータ区切り位置が正当であると判断する
    処理を実行させることを特徴とする、データ分割処理プログラム
  2. 前記部分バイナリデータを構成する個々の単位レコードに含まれるデータ長情報に基づき、当該部分バイナリデータの位置を特定する
    処理を前記コンピュータに実行させることを特徴とする、請求項1記載のデータ分割処理プログラム。
  3. 正当であると判断された前記データ区切り位置に基づき、前記バイナリデータのデータ区切り位置を確定する
    処理を前記コンピュータに実行させることを特徴とする、請求項1又は2記載のデータ分割処理プログラム。
  4. バイナリデータを複数に分割した部分バイナリデータを処理するデータ分割処理装置であって、
    処理対象の部分バイナリデータのデータ区切り位置を、前記バイナリデータを構成する所定のデータの特性に基づき検出する検出部と、
    検出したデータ区切り位置を示す情報を記憶手段に登録する登録部と、
    前記記憶手段に登録された他の部分バイナリデータに関するデータ区切り位置を示す情報に基づき、前記部分バイナリデータにおいて検出したデータ区切り位置が正当であるかを判定する判定部と、
    を備え
    前記判定部は、前記処理対象の部分バイナリデータについて検出したデータ区切り位置と、前記記憶手段に登録された、前記バイナリデータにおいて前記処理対象の部分バイナリデータと隣接する部分バイナリデータについてのデータ区切り位置とが連続する場合に、検出したデータ区切り位置が正当であると判断することを特徴とする、データ分割処理装置。
  5. バイナリデータを複数に分割して複数の処理部により処理する分割処理方法であって、
    前記複数の処理部のそれぞれに、前記バイナリデータの一部である部分バイナリデータをそれぞれ割り当て、
    前記複数の処理部はそれぞれ、割り当てられた部分バイナリデータのデータ区切り位置を、前記バイナリデータを構成する所定のデータの特性に基づき検出するとともに、検出したデータ区切り位置を示す情報を記憶手段に登録し、
    前記複数の処理部はそれぞれ、他の処理部により前記記憶手段に登録されたデータ区切り位置を示す情報に基づき、前記部分バイナリデータにおいて検出したデータ区切り位置が正当であるかを判定し、
    前記処理対象の部分バイナリデータについて検出したデータ区切り位置と、前記記憶手段に登録された、前記バイナリデータにおいて前記処理対象の部分バイナリデータと隣接する部分バイナリデータについてのデータ区切り位置とが連続する場合に、検出したデータ区切り位置が正当であると判断する
    ことを特徴とする、データ分割処理方法。
JP2014045042A 2014-03-07 2014-03-07 データ分割処理プログラム,データ分割処理装置及びデータ分割処理方法 Expired - Fee Related JP6260359B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014045042A JP6260359B2 (ja) 2014-03-07 2014-03-07 データ分割処理プログラム,データ分割処理装置及びデータ分割処理方法
US14/613,442 US10102217B2 (en) 2014-03-07 2015-02-04 Non-transitory computer-readable recording medium having stored therein data dividing program, data dividing apparatus, and data dividing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014045042A JP6260359B2 (ja) 2014-03-07 2014-03-07 データ分割処理プログラム,データ分割処理装置及びデータ分割処理方法

Publications (2)

Publication Number Publication Date
JP2015170170A JP2015170170A (ja) 2015-09-28
JP6260359B2 true JP6260359B2 (ja) 2018-01-17

Family

ID=54017548

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014045042A Expired - Fee Related JP6260359B2 (ja) 2014-03-07 2014-03-07 データ分割処理プログラム,データ分割処理装置及びデータ分割処理方法

Country Status (2)

Country Link
US (1) US10102217B2 (ja)
JP (1) JP6260359B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105205174B (zh) * 2015-10-14 2019-10-11 北京百度网讯科技有限公司 用于分布式系统的文件处理方法和装置
WO2017158802A1 (ja) * 2016-03-17 2017-09-21 株式会社日立製作所 データ変換システム及びデータ変換方法
US11146613B2 (en) * 2016-07-29 2021-10-12 International Business Machines Corporation Distributed computing on document formats
JP6772883B2 (ja) 2017-02-15 2020-10-21 富士通株式会社 読込プログラム、読込方法および情報処理装置
US11314593B2 (en) 2019-06-25 2022-04-26 Western Digital Technologies, Inc. Storage node processing of data functions using overlapping symbols
US11055018B2 (en) * 2019-06-25 2021-07-06 Western Digital Technologies, Inc. Parallel storage node processing of data functions
US11281531B2 (en) * 2019-06-25 2022-03-22 Western Digital Technologies, Inc. Serial storage node processing of data functions
US10990324B2 (en) 2019-06-25 2021-04-27 Western Digital Technologies, Inc. Storage node processing of predefined data functions

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0362137A (ja) 1989-07-28 1991-03-18 Nec Corp 可変長ブロック群による長大データの格納方法
JP2975650B2 (ja) * 1989-11-01 1999-11-10 富士通株式会社 手続管理装置
WO1992001991A1 (fr) 1990-07-23 1992-02-06 Fujitsu Limited Terminal
US5592342A (en) 1994-05-23 1997-01-07 Quantum Corporation Method for packing variable size user data records into fixed size blocks on a storage medium
JP2004287525A (ja) * 2003-03-19 2004-10-14 Ricoh Co Ltd 情報提供装置、情報提供方法、および情報提供プログラム
US8214517B2 (en) * 2006-12-01 2012-07-03 Nec Laboratories America, Inc. Methods and systems for quick and efficient data management and/or processing
US8694703B2 (en) * 2010-06-09 2014-04-08 Brocade Communications Systems, Inc. Hardware-accelerated lossless data compression
JP2012118669A (ja) 2010-11-30 2012-06-21 Ntt Docomo Inc 負荷分散処理システム及び負荷分散処理方法
JP5735654B2 (ja) * 2011-10-06 2015-06-17 株式会社日立製作所 格納データの重複排除方法、格納データの重複排除装置、及び重複排除プログラム
US9164688B2 (en) * 2012-07-03 2015-10-20 International Business Machines Corporation Sub-block partitioning for hash-based deduplication
US9626373B2 (en) * 2012-10-01 2017-04-18 Western Digital Technologies, Inc. Optimizing data block size for deduplication
WO2014184857A1 (ja) * 2013-05-13 2014-11-20 株式会社日立製作所 重複排除システム及びその方法
US9100042B2 (en) * 2013-06-20 2015-08-04 International Business Machines Corporation High throughput decoding of variable length data symbols

Also Published As

Publication number Publication date
JP2015170170A (ja) 2015-09-28
US20150254287A1 (en) 2015-09-10
US10102217B2 (en) 2018-10-16

Similar Documents

Publication Publication Date Title
JP6260359B2 (ja) データ分割処理プログラム,データ分割処理装置及びデータ分割処理方法
US12056583B2 (en) Target variable distribution-based acceptance of machine learning test data sets
CN108681565B (zh) 区块链数据并行处理方法、装置、设备和存储介质
US9116903B2 (en) Method and system for inserting data records into files
US20140365819A1 (en) Rebuilding data of a storage system
JP5825122B2 (ja) 生成プログラム、生成方法、および生成システム
US10838767B2 (en) Distributed computing utilizing a recovery site
JP2021518021A (ja) データ処理方法、装置及びコンピュータ読み取り可能な記憶媒体
US11385823B2 (en) Method, electronic device and computer program product for rebuilding disk array
US8762773B2 (en) Processing apparatus, data migration method, and computer-readable recording medium having data migration program recorded thereon
JP6421568B2 (ja) 情報処理装置及び情報処理プログラム
WO2013108745A1 (ja) ストレージ装置、その制御方法、及びプログラム
US11360710B2 (en) Storage control device, distributed storage system, and non-transitory computer-readable storage medium for storing storage control program
KR20220073951A (ko) 블룸필터를 이용한 분산식별자 검색 방법
JP2009070206A (ja) データ検索システムおよびデータ検索方法ならびにデータ検索装置,検索実行者端末およびプログラム
US20200249871A1 (en) Methods, devices, and a computer program product for processing an access request and updating a storage system
CN117009308B (zh) 基于兼容层的可执行文件加载方法及系统
JP2014206828A (ja) データ直列化装置、データ直列化方法、及びデータ直列化プログラム
JP4865449B2 (ja) 差分生成装置及び差分適用装置及び差分生成プログラム及び差分適用プログラム及び差分生成適用システム及び差分生成適用方法
US20170255499A1 (en) Hybrid quorum system with persistent and non-persistent
JP5842437B2 (ja) 情報処理装置及び情報処理プログラム
US8635699B1 (en) Performance optimization for scanning of digital content on read-only optical media
KR20140046860A (ko) 해쉬 기반의 콘텐츠 파일의 식별자 생성 장치 및 방법, 및 해쉬 코드 생성 방법
JP5183132B2 (ja) ルールベースシステム及びルール適用プログラム
US20170220571A1 (en) Information Processing Device, Information Processing Method, and Non-Transitory Computer Readable Medium Storing Information Processing Program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161102

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170905

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171106

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171127

R150 Certificate of patent or registration of utility model

Ref document number: 6260359

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees