JP2009064095A - 並列可変長ファイル出力装置、及び並列可変長ファイル出力方法 - Google Patents
並列可変長ファイル出力装置、及び並列可変長ファイル出力方法 Download PDFInfo
- Publication number
- JP2009064095A JP2009064095A JP2007229281A JP2007229281A JP2009064095A JP 2009064095 A JP2009064095 A JP 2009064095A JP 2007229281 A JP2007229281 A JP 2007229281A JP 2007229281 A JP2007229281 A JP 2007229281A JP 2009064095 A JP2009064095 A JP 2009064095A
- Authority
- JP
- Japan
- Prior art keywords
- read
- data
- file
- variable
- variable length
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【課題】可変長データの連続性を保証するファイルを出力する並列可変長ファイル出力装置及びその出力方法を提供すること課題とする。
【解決手段】書き込み時に連続的な番号(通番)が付与された複数の可変長データで構成される可変長ファイルを分割して並列的に第1記憶部15a及び第2記憶部15bに記憶しておき、各記憶部から読み出した複数の可変長データを読込用バッファ14に読み込み、その通番に基づいて読込用バッファ14に読み込んだ複数の可変長データを出力する。
【選択図】図1
【解決手段】書き込み時に連続的な番号(通番)が付与された複数の可変長データで構成される可変長ファイルを分割して並列的に第1記憶部15a及び第2記憶部15bに記憶しておき、各記憶部から読み出した複数の可変長データを読込用バッファ14に読み込み、その通番に基づいて読込用バッファ14に読み込んだ複数の可変長データを出力する。
【選択図】図1
Description
本発明は、分割して配置された複数の可変長ファイルを出力する出力装置及びその出力方法の技術に関する。
現在、インターネット上に存在するブログやネットショップなどのサービスや、モバイルネットワークを用いた携帯電話上のコミュニティなどが日々拡大している。通常、それらのサービスの利用を希望するユーザは、サービスの提供元に対してユーザ登録を行い、一方、サービスの提供元は、そのサービスを更に拡充すると共に、登録されたユーザの顧客管理や、サービスを提供するソフトウェアや該ソフトウェアをインストールするハードウェアなどのシステム管理などを行う。
そして、登録された各種データや、BIOS(Basic Input Output System),OS(Operating System),アプリケーションなどのシステム全般により定期的に出力されるジャーナルやシステムログといったファイルを適切に管理することは、サービス提供元の信頼を高める上で最も重要視されている。
一方、コンピュータプログラム上でのファイルは、通常、そのファイルのデータの最初から最後までが1つのハードウェアやメモリなどの記憶領域に連続して保存されるのではなく、その記憶領域内の各アドレスを直接的に命令するBIOSやOSにより、空いているアドレスに分割されて保存されている。また、物理的な記憶領域が複数存在する場合には、分割されたファイルは各記憶領域に保存される場合もある。このように各ファイルを分割して保存する理由は、空いている記憶領域を効率的に利用するために行われるものである。
従って、現在では、分割して配置された複数の可変長ファイルを高い信頼で且つ高いスループットで出力する技術が求められている。
ここで、ファイルをメモリや読み込んで出力する従来技術は特許文献1乃至3に開示されている。特許文献1には、入出力処理部と入出力装置との間にバッファプールを管理する複数のバッファ管理部を備え、入出力要求の内容と処理データの特性に応じてバッファ管理部を最適に選択するキャッシュ機構が開示されている。
また、特許文献2は、複数のディスク機構が各々固有のディスコネクト・リコネクト装置を介してバス装置に接続されて各々のディスク装置にキャッシュメモリを搭載する装置において、CPUから読み込み又は書き込み要求を発行してディスク装置に命令を転送した後に、ディスク装置をバス装置から切り離すことによりディスク媒体からキャッシュメモリの転送時間待ちの間に他のディスクへの命令が転送できる技術が開示されている。
特許文献3は、複数ノードに部分ファイルを配置し、その複数の部分ファイルを束ねる制御を行うことにより、論理的なファイルのサイズを大きくする技術が開示されている。また、この論理的なファイルへのアクセスが集中した場合にも、部分ファイルを複数ノードに分散配置することによりスループットを高くする技術が開示されている。
特開平5−265863号公報
特開平5−250099号公報
特開平9−311810号公報
しかしながら、特許文献1に開示された技術は、大量の入出力処理を他の入出力要求に対して影響を与えることなく処理する技術であるため、分割されたファイルの連続性を保証できないという問題がある。
また、特許文献2に開示された技術は、デバイスとの接続切断方式と命令の転送に関する技術であるため、上記と同様に、分割されたファイルの連続性を保証できないという問題がある。
更に、特許文献3に開示された技術は、書き込みと読み込みとが同時に要求されることを想定していないため、部分ファイルを書き込み中に一連のファイルの読み込み要求がされた場合に、書き込み中の部分ファイルが読み飛ばされる可能性が存在するので、上記と同様に、分割されたファイルの連続性を確実には保証できないという問題がある。
本発明は、上記を鑑みてなされたものであり、可変長データの連続性を保証するファイルを出力する並列可変長ファイル出力装置及びその出力方法を提供すること課題とする。
請求項1に記載の並列可変長ファイル出力装置は、書き込み時に連続的な番号(通番)が付与された複数の可変長データで構成される可変長ファイルを分割して並列的に記憶しておく記憶部と、前記記憶部から読み出した前記複数の可変長データをバッファに読み込み、前記番号に基づいて当該複数の可変長データを出力する読込処理部と、を有することを要旨とする。
本発明にあっては、書き込み時に連続的な番号(通番)が付与された複数の可変長データで構成される可変長ファイルを分割して並列的に記憶部に記憶しておき、この記憶部から読み出した複数の可変長データをバッファに読み込み、その通番に基づいてバッファに読み込んだ複数の可変長データを出力するため、可変長データの連続性を保証したファイルを出力することができる。
請求項2に記載の並列可変長ファイル出力装置は、前記読込処理部が、複数の読込要求にそれぞれ対応した前記複数の可変長データを前記バッファにそれぞれ読み込むことを要旨とする。
本発明にあっては、読込処理部が、複数の読込要求にそれぞれ対応した複数の可変長データをバッファにそれぞれ読み込むため、異なる要求に対するそれぞれの可変長データを迅速に提供することができる。
請求項3に記載の並列可変長ファイル出力装置は、前記読込処理部が、前記可変長ファイルを構成する前記可変長データの一部又は全部が前記記憶部に記憶されていない場合に、記憶されていない前記可変長データの書き込みが終了した後に、前記複数の可変長データを当該記憶部から読み出すことを要旨とする。
本発明にあっては、読込処理部が、可変長ファイルを構成する可変長データの一部又は全部が記憶部に記憶されていない場合に、記憶されていない可変長データの書き込みが終了した後に、複数の可変長データを読み出すため、可変長ファイルの書込処理と読込処理とが同時に発生した場合であっても、可変長データの連続性を確実に保証するファイルを出力することができる。
請求項4に記載の並列可変長ファイル出力装置は、前記読込処理部が、前記可変長ファイルを構成する前記可変長データの一部が前記記憶部に記憶されていない場合に、記憶されている前記複数の可変長データを読み出して、記憶されていない前記可変長データの書き込みが行われる毎に、書き込まれた当該可変長データを読み出すことを要旨とする。
本発明にあっては、読込処理部が、可変長ファイルを構成する可変長データの一部が記憶部に記憶されていない場合に、記憶されている複数の可変長データを読み出して、記憶されていない可変長データの書き込みが行われる毎に、書き込まれた可変長データを読み出すため、可変長データの連続性を確実に保証するファイルを出力することができる。
請求項5に記載の並列可変長ファイル出力装置は、前記可変長データには、当該可変長データの大きさを示すサイズが更に付与されていることを要旨とする。
本発明にあっては、可変長データには、可変長データの大きさを示すサイズが更に付与されているため、分割された各可変長ファイルの各可変長データを正確にバッファに読み込むことができる。
請求項6に記載の並列可変長ファイル出力方法は、書き込み時に連続的な番号(通番)が付与された複数の可変長データで構成される可変長ファイルを分割して並列的に記憶部に記憶しておくステップと、前記記憶部から読み出した前記複数の可変長データをバッファに読み込み、前記番号に基づいて当該複数の可変長データを出力するステップと、を有することを要旨とする。
本発明によれば、可変長データの連続性を保証するファイルを出力する並列可変長ファイル出力装置及びその出力方法を提供することができる。
以下、本発明の実施の形態について図面を用いて説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る並列可変長ファイル出力装置の機能ブロックを示す機能ブロック図である。本実施の形態に係る並列可変長ファイル出力装置1は、読み込み依頼を行う読込依頼部11と、読み込み処理を行う読込処理部12と、読み込んだデータ(ファイル)を保持するデータ保持部13と、読み込まれるファイルが記憶されている第1記憶部15a及び第2記憶部15bとを備えた構成である。
図1は、第1の実施の形態に係る並列可変長ファイル出力装置の機能ブロックを示す機能ブロック図である。本実施の形態に係る並列可変長ファイル出力装置1は、読み込み依頼を行う読込依頼部11と、読み込み処理を行う読込処理部12と、読み込んだデータ(ファイル)を保持するデータ保持部13と、読み込まれるファイルが記憶されている第1記憶部15a及び第2記憶部15bとを備えた構成である。
読込依頼部11は、要求端末2から発行される読込リクエストに基づいて、データ保持部13に対して、第1記憶部15a及び第2記憶部15bに記憶された各ファイルを構成する複数のデータを読み込むための読込用バッファ14の確保を依頼し、読込処理部12に対して、確保された読込用バッファ14にその複数のデータの読み込みを依頼する機能を備えている。また、読込依頼部11は、読込処理部12から通知される読込完了通知、若しくは読込失敗通知を受け取って、要求端末2から発行された読込リクエストに対する処理結果と読込用バッファ14に読み込まれた読込データとを要求端末2に返却(出力)する機能を備えている。
読込処理部12は、読込依頼部11から依頼された読込依頼に基づいて、第1記憶部15a及び第2記憶部15bに記憶された複数のデータを読み出す機能を備えている。また、読み出したデータを読込用バッファ14へ読み込ませ、その読込データを読込依頼部11に返却(出力)する機能も備えている。更に、読込処理部12は、要求端末2から同じデータの読込リクエストが発行された場合に、読込用バッファ14に既に読み込まれているデータを読込依頼部11に返却(出力)する機能を備えている。この返却機能により、第1記憶部15a及び第2記憶部15bからデータを読み出す処理を省くことができるので、読込リクエストに対して迅速にデータを返却することができる。
データ保持部13は、読込依頼部11から依頼された読込用バッファ14の確保依頼に基づいて、その確保依頼で指定されたバッファサイズの読込用バッファ14を確保する機能を備えている。この読込用バッファ14とは、前述したように、第1記憶部15a及び第2記憶部15bに記憶された各ファイルを構成する複数のデータを読み込むためのバッファ領域である。なお、本実施の形態では、データ保持部13や読込用バッファ14は、高速にアクセス可能な(キャッシュ)メモリやファイルなどの一次記憶媒体であり、第1記憶部15a及び第2記憶部15bは、I/O(Input/Output)処理が発生するハードディスクなどの二次記憶媒体として説明する。
次に、本実施の形態に係るファイルについて説明する。1つの論理ファイルは、複数の物理ファイルに並列的に分割可能な並列ファイルという概念を持ち、図1及び図2に示すように、第1ファイル16a〜第5ファイル16eで示す5つの複数のファイルに分割されている。そして、第1ファイル16a〜第3ファイル16cは第1記憶部15aに記憶され、第4ファイル16dと第5ファイル16eとは第2記憶部15bに記憶されている。
各ファイルの先頭には、分割後の複数のファイルを分割前の1つのファイルにするために用いるファイル番号と、各ファイルの大きさを示すファイルサイズと、各ファイルの使用済み領域を示す使用済みサイズと、各ファイルが格納している最初のデータに付与された開始通番と、各ファイルが格納している最後のデータに付与された終了通番とを有するファイルヘッダが付与されている。
また、ファイルヘッダの次列には複数のレコード領域が用意されており、各レコードには、レコードヘッダと、ユーザ等により入力されたデータと、レコードフッタとが格納されている。レコードヘッダとレコードフッタとの構成は共通であり、第1記憶部15a及び第2記憶部15bへの書き込み依頼時に与えられた連続する番号(通番)と、各レコードの大きさを示すレコードサイズとが格納されている。通常、先に書き込み依頼されたデータであっても、そのデータのサイズなどの関係上、そのデータよりも後に書き込み依頼されたデータの方が先に記憶部に書き込まれる場合があり、各ファイルの各データの順番は、書き込み依頼時の順番に必ずしも一致していない。
更に、各ファイルは追記型のファイルシステムの枠組みで構成された可変長ファイルであって、例えば、ユーザ等によりファイルの内容が一部追記された場合に、その追記されたデータを、これまでに記憶部に書き込まれた次の位置にそのデータを追加的に書き込むことができる。例えば、第1ファイル16aの最終レコードの次の位置に追加してもよいし、各レコードのデータ内に追加してレコードサイズを増加してもよい。また、各ファイルは、世代という概念を持ち、複数の世代を保持することができる。
なお、前述したファイルの分割数や、分割された各ファイルが書き込まれている記憶部の数量は一例を示すものであって、書き込み依頼時に連続的な番号(通番)が付与された複数の可変長データで構成される可変長ファイルを分割して並列的に記憶しておく記憶部であれば、単一の記憶部であっても良い。
続いて、並列可変長ファイル出力装置の処理について説明する。図3は、本実施の形態に係る並列可変長ファイル出力装置の処理の流れを示すフローチャートである。
要求端末2は、読込依頼部11に対して、所望のファイルを読み込むための読込リクエストを発行すると共に、読込開始位置と読込データ数とを通知する(ステップS101)。なお、この読込開始位置には、読み込む先頭/末尾の位置や、指定されたデータの通番などが含まれている。
読込依頼部11は、データ保持部13に対して、読み込むデータ用の読込用バッファの確保依頼を発行すると共に、読み込みに必要なバッファサイズを通知する(ステップS102)。
データ保持部13は、読込用バッファの確保依頼に基づいて、読込用バッファが存在しない場合に、通知されたバッファサイズの領域を確保し、その確保結果と確保した読込用バッファの位置(ポインタ)とを読込依頼部11に返却する(ステップS103)。
読込依頼部11は、確保された読込用バッファに対して、要求端末2から通知された読込開始位置と読込データ数とを設定する(ステップS104)。
読込依頼部11は、読込処理部12に対して、ファイルの読込依頼を発行すると共に、データ保持部11から返却された読込用バッファの位置(ポインタ)を通知する(ステップS105)。
読込処理部12は、ファイルの読込依頼を受け取り、通知された読込用バッファの位置(ポインタ)に基づいて、データ保持部13に対して、読込用バッファの設定情報を要求する(ステップS106)。
データ保持部13は、読込処理部12に対して、読込用バッファに設定された設定情報を返却する(ステップS107)。
読込処理部12は、データ保持部13から返却された設定情報に含まれる読込開始位置と読込データ数とに基づいて、第1記憶部15a及び第2記憶部15bに読込依頼を発行する(ステップS108)。
第1記憶部15a及び第2記憶部15bは、読込開始位置に記憶されているデータを返却する(ステップS109)。
読込処理部12は、返却されたデータを取得して、読込用バッファに読み込む(ステップS110)。
ステップS108〜ステップS110を読込要求のあった読込データ数分繰り返し、EOF(End Of File)に到達した場合には読み込みを終了する。なお、読込データ数分繰り返す方法ではなく、各ファイル単位若しくは全ファイル一括で読み込むことも可能である。また、各ファイル単位若しくは全ファイル読込時は、必ずしも一括である必要はなく、一部分を読み込んでも良い。ファイル単位で読み込むことにより、第1記憶部15a及び第2記憶部15bに対するI/O処理を低減するため、要求リクエストに対して高速にデータを返却(出力)することが可能となる。
読込処理部12は、読込完了通知を読込依頼部11に通知すると共に、読込用バッファ14に読み込まれた複数の可変長データ(読込データ)を、通番に基づいて読込依頼部11に返却(出力)する(ステップS111)。
読込依頼部11は、読み込みの処理結果と読込データとを要求端末2に返却(出力)する(ステップS112)。
読込依頼部11は、データ保持部13に対して、読込データの削除依頼を発行する(ステップS113)。このとき、読込データの位置を指定する。
データ保持部13は、読込データの削除依頼を受け取り、所定の期間内に再度読込リクエストがない場合には、読込用バッファに読み込まれた読込データを削除する(ステップS114)。これにより、有限的な資源であるバッファ領域を有効に活用することができる。無論、データ保持部13は、読込データを永続的に読込用バッファに保持しておくことで、前述したように、要求端末2から同じデータの読込リクエストが発行された場合の処理を高速にすることが可能となる。
なお、ステップS102〜ステップS104に記載の処理の要求元は、要求端末2であってもよい。その場合には、ステップS113〜ステップS114の処理は要求端末2が行うことになる。
本実施の形態では、要求端末2から発行された読込リクエストに対応するファイルを構成する複数のデータの全てが第1記憶部15a及び第2記憶部15bに書き込まれていることを前提に説明したが、一部又は全部が書き込まれていない場合であってもよい。
前述したように、本実施の形態におけるファイルのデータは可変長なので、記憶部への書き込み依頼時に通番1,通番2,通番3の番号が付与された各データが、通番1,通番3,通番2の順番で書き込み終了する可能性がある。その場合に、ステップS108〜ステップS110において、読込処理部12は、第1記憶部15a及び第2記憶部15bに記憶されていないデータの書き込みが終了した後に、書き込まれたこのデータをこれら記憶部から読み出す処理を行うことができる。例えば、通番1及び通番3の書き込みが終了した直後に、通番1〜通番3のデータの読込依頼が発生した場合には、通番2の書き込み終了を待って通番1,通番2,通番3のデータを読み出し、読込用バッファへの読み込みと読込依頼部11への返却を行うことで、抜けのないデータの出力が可能となる。
また、読込処理部12は、まず、第1記憶部15a及び第2記憶部15bに記憶されている複数のデータを読み出して、次に、記憶されていないデータの書き込みが行われる毎に、書き込まれたデータを読み出す処理を行うことも可能である。例えば、通番1〜通番50のデータが記憶部に書き込まれた状態において、通番1〜通番100のデータの読込依頼が発生した場合に、最初に、通番1〜通番50のデータを読み出して、残りの通番51〜通番100の各データが記憶部に書き込まれる毎に順次読み出して、読込用バッファに読み込み、読込依頼部11に返却することで、読込リクエストに対するファイルを構成するデータを確実に出力することができる。なお、読込処理部12は、データ保持部13に設定された読込データ数とは関係なく、読込データ数を無限とすることも可能である。その場合、記憶部への書き込みが発生するたびにデータの返却が可能となり、UNIX若しくはLinuxの“tail −f”コマンド相当の機能が実現可能となる。
本実施の形態によれば、書き込み時に連続的な番号(通番)が付与された複数の可変長データで構成される可変長ファイルを分割して並列的に第1記憶部15a及び第2記憶部15bに記憶しておき、各記憶部から読み出した複数の可変長データを読込用バッファ14に読み込み、その通番に基づいて読込用バッファ14に読み込んだ複数の可変長データを出力するので、可変長データの連続性を保証したファイルを出力することができる。
本実施の形態によれば、読込処理部12が、可変長ファイルを構成する可変長データの一部又は全部が第1記憶部15a及び第2記憶部15bに記憶されていない場合に、記憶されていない可変長データの書き込みが終了した後に、複数の可変長データを読み出すため、可変長ファイルの書込処理と読込処理とが同時に発生した場合であっても、可変長データの連続性を確実に保証するファイルを出力することができる。
本実施の形態によれば、読込処理部12が、可変長ファイルを構成する可変長データの一部が第1記憶部15a及び第2記憶部15bに記憶されていない場合に、記憶されている複数の可変長データを読み出して、記憶されていない可変長データの書き込みが行われる毎に、書き込まれた可変長データを読み出すので、可変長データの連続性を確実に保証するファイルを出力することができる。
本実施の形態によれば、可変長データには、可変長データの大きさを示すサイズが更に付与されているので、分割された各可変長ファイルの各可変長データを正確に読み込むことができる。
〔第2の実施の形態〕
図4は、第2の実施の形態に係る並列可変長ファイル出力装置の機能ブロックを示す機能ブロック図である。本実施の形態は、複数の要求端末により複数の読込リクエストが発行された場合の実施の形態を説明するものであって、図4に示す並列可変長ファイル出力装置1は、第1の実施の形態で説明した読込処理部12と同じ機能を備えた第1読込処理部12a及び第2読込処理部12bを備えた構成である。その他の構成については、第1の実施の形態と同様なので、ここでは重複説明は省略する。
図4は、第2の実施の形態に係る並列可変長ファイル出力装置の機能ブロックを示す機能ブロック図である。本実施の形態は、複数の要求端末により複数の読込リクエストが発行された場合の実施の形態を説明するものであって、図4に示す並列可変長ファイル出力装置1は、第1の実施の形態で説明した読込処理部12と同じ機能を備えた第1読込処理部12a及び第2読込処理部12bを備えた構成である。その他の構成については、第1の実施の形態と同様なので、ここでは重複説明は省略する。
続いて、並列可変長ファイル出力装置の処理について説明する。図5は、本実施の形態に係る並列可変長ファイル出力装置の処理の流れを示すフローチャートである。
第1要求端末2aは、読込依頼部11に対して、所望のファイルを読み込むための読込リクエストを発行すると共に、読込開始位置と読込データ数とを通知する(ステップS201)。また、第2要求端末2bも、読込依頼部11に対して、所望のファイルを読み込むための読込リクエストを発行すると共に、読込開始位置と読込データ数とを通知する(ステップS201’)。なお、この読込開始位置には、読み込む先頭/末尾の位置や、指定されたデータの通番などが含まれている。
読込依頼部11は、データ保持部13に対して、読み込むデータ用の第1読込用バッファ14a及び第2読込用バッファ14bの確保依頼を発行すると共に、それら読み込みに必要な各バッファサイズを通知する(ステップS202)。
データ保持部13は、各読込用バッファの確保依頼に基づいて、各読込用バッファが存在しない場合に、通知されたバッファサイズの領域を確保し、その確保結果と確保した第1読込用バッファ14a及び第2読込用バッファ14bの位置(ポインタ)を読込依頼部11に返却する(ステップS203)。
読込依頼部11は、確保された各読込用バッファに対して、第1要求端末2a及び第2要求端末2bから通知された読込開始位置と読込データ数とをそれぞれ設定する(ステップS204)。
読込依頼部11は、第1読込処理部12aに対して、第1要求端末2aからのファイルの読込依頼を発行すると共に、データ保持部11から返却された第1読込用バッファ14aの位置(ポインタ)を通知し、第2読込処理部12bに対しては、第2要求端末2bからのファイルの読込依頼を発行すると共に、データ保持部11から返却された第2読込用バッファ14bの位置(ポインタ)を通知する(ステップS205)。
第1読込処理部12aは、ファイルの読込依頼を受け取り、通知された第1読込用バッファ14aの位置(ポインタ)に基づいて、データ保持部13に対して、第1読込用バッファの設定情報を要求する(ステップS206)。また、第2読込処理部12bも、ファイルの読込依頼を受け取り、通知された第2読込用バッファ14bの位置(ポインタ)に基づいて、データ保持部13に対して、第2読込用バッファの設定情報を要求する(ステップS206’)。
データ保持部13は、第1読込処理部12aに対して、第1読込用バッファ14aに設定された設定情報を返却すると共に、第2読込処理部12bに対しては、第2読込用バッファ14bに設定された設定情報を返却する(ステップS207)。
第1読込処理部12aは、データ保持部13から返却された設定情報に含まれる読込開始位置と読込データ数とに基づいて、第1記憶部15a及び第2記憶部15bに読込依頼を発行する(ステップS208)。また、第2読込処理部12bも、データ保持部13から返却された設定情報に含まれる読込開始位置と読込データ数とに基づいて、第1記憶部15a及び第2記憶部15bに読込依頼を発行する(ステップS208’)。
第1記憶部15a及び第2記憶部15bは、各読込依頼に対して読込開始位置に記憶されているデータをそれぞれ返却する(ステップS209)。
第1読込処理部12aは、返却されたデータを取得して、第1読込用バッファ14aに読み込む(ステップS210)。また、第2読込処理部12bも、返却されたデータを取得して、第2読込用バッファ14bに読み込む(ステップS210’)。
ステップS208−ステップS209−ステップS210、及び、ステップS208’−ステップS209−ステップS210’を読込データ数分繰り返し、EOF(End Of File)に到達した場合には読み込みを終了する。なお、第1の実施の形態で説明したように、読込データ数分繰り返す方法ではなく、各ファイル単位若しくは全ファイル一括で読み込むことも可能である。また、各ファイル単位若しくは全ファイル読込時は、必ずしも一括である必要はなく、一部分を読み込んでも良い。ファイル単位で読み込むことにより、第1記憶部15a及び第2記憶部15bに対するI/O処理を低減するため、要求リクエストに対して高速にデータを返却(出力)することが可能となる。
第1読込処理部12aは、読込完了通知を読込依頼部11に通知すると共に、第1読込用バッファ14aに読み込まれた複数の可変長データ(読込データ)を、通番に基づいて読込依頼部11に返却(出力)する(ステップS211)。また、第2読込処理部12bも、読込完了通知を読込依頼部11に通知すると共に、第2読込用バッファ14bに読み込まれた複数の可変長データ(読込データ)を、通番に基づいて読込依頼部11に返却(出力)する(ステップS211’)。
読込依頼部11は、それぞれの読み込みの処理結果及び読込データを第1要求端末2a及び第2要求端末2bにそれぞれ返却(出力)する(ステップS212)。
読込依頼部11は、データ保持部13に対して、読込データの削除依頼を発行する(ステップS213)。このとき、読込データの位置を指定する。
データ保持部13は、読込データの削除依頼を受け取り、所定の期間内に再度読込リクエストがない場合には、第1読込用バッファ及び第2読込用バッファに読み込まれた読込データを削除する(ステップS214)。無論、データ保持部13は、読込データを永続的に読込用バッファに保持しておくことも可能である。
なお、ステップS202〜ステップS204に記載の処理の要求元は、要求端末2であってもよい。その場合には、ステップS213〜ステップS214の処理は要求端末2が行うことになる。
本実施の形態によれば、第1読込処理部12a及び第2読込処理部12bが、複数の読込要求にそれぞれ対応した複数の可変長データをそれぞれ読み込むので、異なる読込リクエストに対するそれぞれの可変長データを迅速に提供することができる。
最後に、第1の実施の形態及び第2の実施の形態では、各要求端末から発行出力されるそれぞれの読込リクエストに対応するバッファ領域をそれぞれ形成する方法について説明したが、図6(a)や図6(b)に示すように、読込リクエスト毎に各バッファ領域を形成し、且つ、各バッファ領域を、第1ファイル16a〜第5ファイル16eにそれぞれ対応する第1ファイル用バッファ141〜第5ファイル用バッファ145というようにファイル毎に形成してもよい。
また、図7に示すように、複数の要求端末による複数の読込リクエストに対して、1つの共用の読込用バッファ14’を形成してもよい。更には、図8に示すように、図7で示す1つの共用の読込用バッファ14’を形成し、且つ、この共用のバッファ領域をファイル毎に形成してもよい。
各実施の形態で説明した並列可変長ファイル出力装置1の処理をプログラムとして例えばCDやFDなどの記録媒体に記録して、この記録媒体をコンピュータに組み込んだり、または記録媒体に記録されたプログラムを通信回線を介してコンピュータにダウンロードしたり、または記録媒体からインストールし、該プログラムでコンピュータを動作させることにより、上述した処理を並列可変長ファイル出力装置1として機能させることができるのは勿論であり、このような記録媒体を用いることにより、その流通性を高めることができるものである。
1…並列可変長ファイル出力装置
2,2a,2b…要求端末
11…読込依頼部
12,12a,12b…読込処理部
13…データ保持部
14,14a,14b…読込用バッファ
15a…第1記憶部
15b…第2記憶部
16a〜16e…第1ファイル〜第5ファイル
S101〜S114,S201〜S214…ステップ
2,2a,2b…要求端末
11…読込依頼部
12,12a,12b…読込処理部
13…データ保持部
14,14a,14b…読込用バッファ
15a…第1記憶部
15b…第2記憶部
16a〜16e…第1ファイル〜第5ファイル
S101〜S114,S201〜S214…ステップ
Claims (6)
- 書き込み時に連続的な番号が付与された複数の可変長データで構成される可変長ファイルを分割して並列的に記憶しておく記憶部と、
前記記憶部から読み出した前記複数の可変長データをバッファに読み込み、前記番号に基づいて当該複数の可変長データを出力する読込処理部と、
を有することを特徴とする並列可変長ファイル出力装置。 - 前記読込処理部は、
複数の読込要求にそれぞれ対応した前記複数の可変長データを前記バッファにそれぞれ読み込むことを特徴とする請求項1に記載の並列可変長ファイル出力装置。 - 前記読込処理部は、
前記可変長ファイルを構成する前記可変長データの一部又は全部が前記記憶部に記憶されていない場合に、記憶されていない前記可変長データの書き込みが終了した後に、前記複数の可変長データを当該記憶部から読み出すことを特徴とする請求項1又は2のいずれか1項に記載の並列可変長ファイル出力装置。 - 前記読込処理部は、
前記可変長ファイルを構成する前記可変長データの一部が前記記憶部に記憶されていない場合に、記憶されている前記複数の可変長データを読み出して、記憶されていない前記可変長データの書き込みが行われる毎に、書き込まれた当該可変長データを読み出すことを特徴とする請求項1乃至3のいずれか1項に記載の並列可変長ファイル出力装置。 - 前記可変長データには、当該可変長データの大きさを示すサイズが更に付与されていることを特徴とする請求項1乃至4のいずれか1項に記載の並列可変長ファイル出力装置。
- 書き込み時に連続的な番号が付与された複数の可変長データで構成される可変長ファイルを分割して並列的に記憶部に記憶しておくステップと、
前記記憶部から読み出した前記複数の可変長データをバッファに読み込み、前記番号に基づいて当該複数の可変長データを出力するステップと、
を有することを特徴とする並列可変長ファイル出力方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007229281A JP2009064095A (ja) | 2007-09-04 | 2007-09-04 | 並列可変長ファイル出力装置、及び並列可変長ファイル出力方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007229281A JP2009064095A (ja) | 2007-09-04 | 2007-09-04 | 並列可変長ファイル出力装置、及び並列可変長ファイル出力方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009064095A true JP2009064095A (ja) | 2009-03-26 |
Family
ID=40558653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007229281A Pending JP2009064095A (ja) | 2007-09-04 | 2007-09-04 | 並列可変長ファイル出力装置、及び並列可変長ファイル出力方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009064095A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019125264A (ja) * | 2018-01-18 | 2019-07-25 | 富士通株式会社 | Wosのデータ構造、データ変換プログラム、データ変換方法及びデータ変換装置 |
-
2007
- 2007-09-04 JP JP2007229281A patent/JP2009064095A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019125264A (ja) * | 2018-01-18 | 2019-07-25 | 富士通株式会社 | Wosのデータ構造、データ変換プログラム、データ変換方法及びデータ変換装置 |
JP7024432B2 (ja) | 2018-01-18 | 2022-02-24 | 富士通株式会社 | データベース管理システム、データ変換プログラム、データ変換方法及びデータ変換装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6542909B2 (ja) | ファイル操作方法及び装置 | |
JP6106901B2 (ja) | 分散ファイルストレージシステムにおけるデータ処理の方法およびデバイス | |
CN102929786B (zh) | 非易失性存储设备集合的易失性存储器表示 | |
EP3076307A1 (en) | Method and device for responding to a request, and distributed file system | |
US11226778B2 (en) | Method, apparatus and computer program product for managing metadata migration | |
US11263080B2 (en) | Method, apparatus and computer program product for managing cache | |
CN113853778B (zh) | 一种文件系统的克隆方法及装置 | |
CN108563743A (zh) | 一种文件读写方法、系统及设备和存储介质 | |
CN111708738A (zh) | 实现hadoop文件系统hdfs与对象存储s3数据互访方法及系统 | |
US10803109B2 (en) | Method and device for reading and writing video data in NAS device | |
US10387043B2 (en) | Writing target file including determination of whether to apply duplication elimination | |
WO2014153931A1 (zh) | 文件存储方法、装置、访问客户端及元数据服务器系统 | |
CN105808451B (zh) | 一种数据缓存方法以及相关装置 | |
US11429311B1 (en) | Method and system for managing requests in a distributed system | |
JP4271967B2 (ja) | 分散ファイルシステム及び分散ファイルシステムの運用方法 | |
JP4792335B2 (ja) | Raid装置、raid制御プログラムおよびキャッシュ管理方法 | |
CN113032349A (zh) | 数据存储方法、装置、电子设备及计算机可读介质 | |
JP2009064095A (ja) | 並列可変長ファイル出力装置、及び並列可変長ファイル出力方法 | |
CN116303278A (zh) | 文件合并方法、文件读取方法、装置、设备及存储介质 | |
CN113360095B (zh) | 硬盘数据管理方法、装置、设备及介质 | |
JP5494817B2 (ja) | ストレージシステム、データ管理装置、方法及びプログラム | |
US8874726B1 (en) | Automated load balancing | |
CN115525618A (zh) | 存储集群、数据存储方法、系统及存储介质 | |
WO2020151337A1 (zh) | 分布式文件处理方法、装置、计算机设备以及存储介质 | |
CN109416663B (zh) | 用于最小化存储系统和其设备内的ssd中的碎片化的方法 |