JP2013003716A - Data storage device, control method of data storage device, and program - Google Patents

Data storage device, control method of data storage device, and program Download PDF

Info

Publication number
JP2013003716A
JP2013003716A JP2011132279A JP2011132279A JP2013003716A JP 2013003716 A JP2013003716 A JP 2013003716A JP 2011132279 A JP2011132279 A JP 2011132279A JP 2011132279 A JP2011132279 A JP 2011132279A JP 2013003716 A JP2013003716 A JP 2013003716A
Authority
JP
Japan
Prior art keywords
data
optimization
storage device
index
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.)
Withdrawn
Application number
JP2011132279A
Other languages
Japanese (ja)
Inventor
Eiichiro Toshima
英一朗 戸島
Kunihiko Miyoshi
邦彦 三好
Kitahiro Kaneda
北洋 金田
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2011132279A priority Critical patent/JP2013003716A/en
Publication of JP2013003716A publication Critical patent/JP2013003716A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PROBLEM TO BE SOLVED: To properly restart data optimization processing even if data optimization processing is suspended under situations where calculation resources can be not fully used.SOLUTION: In a data storage device, even if data optimization processing is suspended, a data difference quantity for data updates from the time of suspension is used to determine proper restarting of the optimization processing, and thus the data storage device can efficiently perform optimization processing and is excellent in response performance.

Description

本発明はデータ最適化処理を行うデータ記憶装置、その制御方法、及びプログラムに関する。   The present invention relates to a data storage device that performs data optimization processing, a control method thereof, and a program.

近年のフラッシュメモリ容量の増加に伴い、デジタルカメラやフォトフレーム、インクジェット複合機等、計算資源に制約がある省資源機器においても、数万枚から数十万枚のデータを保存できる記憶容量を持つようになっている。また、人名や地名をはじめとした多様な属性値が付与可能となっており、これらの属性値を用いて、多種多量のデータ検索を高速に行う利便性への要求が、省資源機器においても高まっている。   With the increase in flash memory capacity in recent years, even resource-saving devices with limited computing resources, such as digital cameras, photo frames, and inkjet multifunction devices, have a storage capacity that can store tens of thousands to hundreds of thousands of data. It is like that. In addition, various attribute values such as personal names and place names can be assigned. Using these attribute values, there is a demand for the convenience of performing a large amount of data search at high speed even in resource-saving devices. It is growing.

写真データの場合、日付や撮影パラメータ、位置情報であるGPS(Global Positioning System)座標などの属性値が撮影時に付与され、お気に入り度合いや印刷指定等の属性値が再生時に付与される。これらの属性値を格納する枠組みとしては、Exif(Exchangeable image file format)が代表的である。ユーザ所望のデータを検索する場合には、これらの属性値を用いることが有益である。しかしながら、データ、及び属性値が多種多量である場合に、各データに対して全走査を行って検索処理を行うことは照合のための計算量が膨大となり、応答時間の遅延を招いてしまう。   In the case of photo data, attribute values such as date, shooting parameters, and GPS (Global Positioning System) coordinates as position information are given at the time of shooting, and attribute values such as a favorite degree and print designation are given at the time of reproduction. A typical framework for storing these attribute values is Exif (Exchangeable image file format). It is useful to use these attribute values when searching for data desired by the user. However, when there are a large amount of data and attribute values, performing a search process by performing a full scan on each data results in an enormous amount of calculation for collation and a delay in response time.

そこで、検索を高速に行えるようにするため、索引情報を納めたインデックスをあらかじめ構築しておき、検索時にインデックスを利用することで応答時間を短縮する手法が一般的である。しかし、常に正しい検索結果を得るためには、検索対象データが追加・更新された場合に、インデックスも同期して追加・更新する必要がある。このようなデータ更新が頻繁に発生し、インデックスの局所的な更新が続くとインデックス内部に断片化が発生する。即ち、使用されない空き領域が増えデータの格納位置が偏った検索処理に向かないアンバランスな構造が生まれる。この状況で検索を行うと、断片化の少ないインデックスを用いた場合に比べてデータアクセス量が増加し、装置全体の演算性能を低下させる。一般的には、この問題を解決するためにRAMや主記憶部にキャッシュ機構等の中間層を設けて読み書き頻度を抑制する。しかし、省資源機器では計算資源の制約からキャッシュ機構が小容量であり、特に断片化が多いインデックスが装置全体の演算性能を低下させる影響度が大きくなる。   Therefore, in order to perform a search at a high speed, a general technique is that an index containing index information is built in advance and the response time is shortened by using the index during the search. However, in order to always obtain a correct search result, when search target data is added / updated, it is necessary to add / update the index in synchronization. If such data update occurs frequently and the local update of the index continues, fragmentation occurs in the index. That is, an unbalanced structure unsuitable for search processing in which unused space increases and the data storage position is biased is born. When a search is performed in this situation, the amount of data access increases compared to the case where an index with little fragmentation is used, and the calculation performance of the entire apparatus is reduced. In general, in order to solve this problem, an intermediate layer such as a cache mechanism is provided in the RAM or the main storage unit to suppress the read / write frequency. However, in a resource-saving device, the cache mechanism has a small capacity due to the limitation of computing resources, and an index that has a large amount of fragmentation increases the degree of influence that degrades the calculation performance of the entire apparatus.

例えば、デジタルカメラ等においては、撮影した写真に対し、人名辞書等を参照して人名を事後登録する場合がある。このような属性値の事後登録を行う場合、構築済みのインデックスの一部を組み替えるためにインデックスの断片化を誘発する。結果としてデータアクセス時のキャッシュのヒット率が落ち、データベースファイルからのデータ読み出しが頻発しがちである。そのため、インデックスの断片化を解消する最適化処理を適切なタイミングで実施する必要がある。   For example, in a digital camera or the like, a personal name may be registered afterwards with reference to a personal name dictionary or the like for a photograph taken. When post-registration of such attribute values is performed, index fragmentation is induced in order to rearrange a part of the constructed index. As a result, the cache hit rate at the time of data access decreases, and data reading from the database file tends to occur frequently. Therefore, it is necessary to perform an optimization process for eliminating index fragmentation at an appropriate timing.

従来、例えば特許文献1のように、画像データの伝送レートが所定値より下回ったときに画像データの最適化を行うものがある。また、特許文献2のように、機器の載置状態、電源供給状態、及び断片化率を勘案して、最適化を自動実行するものがあった。   Conventionally, as disclosed in Patent Document 1, for example, image data is optimized when the transmission rate of the image data falls below a predetermined value. Further, as disclosed in Patent Document 2, there is an apparatus that automatically executes optimization in consideration of the device mounting state, the power supply state, and the fragmentation rate.

特開2002−84499号公報JP 2002-84499 A 特開2005−242717号公報JP 2005-242717 A

さらに、データの最適化処理が中断された場合には、適切に処理を復帰して再開することが望まれる。最適化処理中断後の再開時には、途中まで最適化した最適化処理の結果を有効利用して継続するか、新たに最適化処理を開始するか判断して、適切に最適化処理を行うことが必要になる。
本発明は上記の問題に鑑みてなされたものであり、計算資源が確保できない状況を検知したときに、最適化処理が中断されても適切に最適化処理を実施することで、応答性能を向上させ、利便性を高めることを目的とする。
Further, when the data optimization process is interrupted, it is desirable to appropriately restore the process and restart it. When resuming after the optimization process is interrupted, it is possible to determine whether to continue using the optimization process result that has been optimized halfway or to start a new optimization process, and perform the optimization process appropriately. I need it.
The present invention has been made in view of the above problems, and improves response performance by appropriately performing optimization processing even when the optimization processing is interrupted when a situation in which computational resources cannot be secured is detected. The purpose is to improve convenience.

本発明に係るデータ記憶装置は、以下の構成を備える。即ち、データの断片化の最適化処理を行う最適化実行手段と、前記最適化処理が中断していることを検出する検出手段と、前記検出手段で検出された、中断している最適化処理を継続して再開可能か前記中断から更新されたデータの量により判定する判定手段。前記最適化実行手段は、前記判定手段により最適化処理が再開可能であると判定された場合に、データの最適化処理を再開する。   The data storage device according to the present invention has the following configuration. That is, an optimization execution unit that performs optimization processing of data fragmentation, a detection unit that detects that the optimization process is interrupted, and an optimization process that is detected by the detection unit that is interrupted Determining means for determining whether the data can be continuously resumed based on the amount of data updated from the interruption. The optimization execution unit restarts the data optimization process when the determination unit determines that the optimization process can be restarted.

本発明に依れば、データ最適化処理が中断されても、適切に最適化処理を再開するので、データの断片化を解消して応答性能を改善でき、ユーザの利便性が高まる。   According to the present invention, even if the data optimization process is interrupted, the optimization process is restarted appropriately, so that the fragmentation of data can be eliminated to improve the response performance, and the convenience for the user is enhanced.

本実施形態によるデータ記憶装置の制御に係る主要部の構成を示す図であるIt is a figure which shows the structure of the principal part which concerns on control of the data storage device by this embodiment. 本実施形態の効果が表れる例を端的に示す図であるIt is a figure which shows simply the example in which the effect of this embodiment appears 本実施形態で用いるフラッシュメモリカードと、データ例としてExifの属性値の代表例と、インデックスをB−Treeで構築した一例を示す図であるIt is a figure which shows the flash memory card used by this embodiment, the typical example of the attribute value of Exif as a data example, and an example which constructed | assembled the index with B-Tree. 本実施形態によるデータ記憶装置の機能ブロック図であるIt is a functional block diagram of the data storage device by this embodiment 本実施形態で用いる検索対象データの例と、検索対象データのインデックスの例を示す図であるIt is a figure which shows the example of the search object data used by this embodiment, and the example of the index of search object data. 本実施形態で用いる検索指示を記述したSQL文の例と、検索処理を実行したときの画面を示す図であるIt is a figure which shows the example of the SQL sentence which described the search instruction | indication used by this embodiment, and a screen when performing a search process 第1の実施形態の電源投入処理の流れを示すフローチャートであるIt is a flowchart which shows the flow of the power-on process of 1st Embodiment. 第1の実施形態の検索処理の流れを示すフローチャートであるIt is a flowchart which shows the flow of the search process of 1st Embodiment. 第1の実施形態のインデックス最適化処理が起動する流れを示すフローチャートであるIt is a flowchart which shows the flow which the index optimization process of 1st Embodiment starts. 第1の実施形態のインデックス最適化処理の詳細の流れを示すフローチャートであるIt is a flowchart which shows the detailed flow of the index optimization process of 1st Embodiment.

以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。   DESCRIPTION OF EXEMPLARY EMBODIMENTS Hereinafter, preferred embodiments to which the invention is applied will be described in detail with reference to the accompanying drawings.

(第1の実施形態) 基本動作
図1は本実施形態を適用する装置を示す構成図である。データ記憶装置1000はデータベース制御装置全体を示している。マイクロプロセッサCPU(Central Processing Unit)1001は,情報処理のための演算,論理判断等を行う。システムバス1010を介して,それらのバスに接続された各構成要素を制御する。読出し専用の固定メモリROM(Read Only Memory)1002は,本実施形態で実行される処理プログラム等の制御プログラムコードを記憶する。書き込み可能なRAM(Random Access Memory)1003は,各構成要素からの各種データの一時記憶に用いられる。入力部1004には,ユーザからの指示が入力される。電源部1005は、データ記憶装置1000に必要な電源を供給し、必要に応じて外部からの給電および充電に対応する。液晶パネル等の表示部1009では,その表示部における画像情報の表示を表示コントローラ1006で制御する。外部記憶部1007では,各種データ及び画像情報が格納される。また,これらのデータを格納する記憶媒体としては,メモリカード,HDD,DVD−RAMなどを用いることができる。通信部1008では,他の機器と接続することができる。
First Embodiment Basic Operation FIG. 1 is a configuration diagram showing an apparatus to which this embodiment is applied. A data storage device 1000 represents the entire database control device. A microprocessor CPU (Central Processing Unit) 1001 performs operations for information processing, logical determination, and the like. Each component connected to these buses is controlled via the system bus 1010. A read-only fixed memory ROM (Read Only Memory) 1002 stores control program codes such as processing programs executed in the present embodiment. A writable RAM (Random Access Memory) 1003 is used for temporary storage of various data from each component. An instruction from the user is input to the input unit 1004. The power supply unit 1005 supplies necessary power to the data storage device 1000, and responds to power supply and charging from the outside as necessary. In a display unit 1009 such as a liquid crystal panel, display of image information on the display unit is controlled by a display controller 1006. The external storage unit 1007 stores various data and image information. As a storage medium for storing these data, a memory card, HDD, DVD-RAM, or the like can be used. The communication unit 1008 can be connected to other devices.

前記の各構成要素からなるデータ記憶装置1000は,入力部1004からの各種の入力及び通信部1008から供給されるネットワーク経由の各種入力に応じて作動する。すなわち,入力部1004からの入力及び通信部1008からの入力が供給されると,まず,インタラプト信号がCPU1001に送られる。そして,そのCPU1001がROM1002,RAM1003,外部記憶部1007に記憶してある各種の制御信号を読出し,それらの制御信号に従って,各種の制御が行われる。   The data storage device 1000 including the above components operates in response to various inputs from the input unit 1004 and various inputs via the network supplied from the communication unit 1008. That is, when an input from the input unit 1004 and an input from the communication unit 1008 are supplied, an interrupt signal is first sent to the CPU 1001. Then, the CPU 1001 reads out various control signals stored in the ROM 1002, RAM 1003, and external storage unit 1007, and various controls are performed according to these control signals.

また,本実施形態に係わるプログラムを格納した記憶媒体をシステムあるいは装置に供給し,そのシステムあるいは装置が,記憶媒体に格納されたプログラムコードを読み出し実行することによっても本実施形態は達成される。   The present embodiment can also be achieved by supplying a storage medium storing a program according to the present embodiment to a system or apparatus, and the system or apparatus reading and executing the program code stored in the storage medium.

図2は本実施形態が効果的な状況を示したB−Tree構造のインデックス例である。例えば、図2(a)に示した初期状態のインデックスに対して、人名「なし」から人名「太郎」に更新するように属性値の付与を行うと、図2(b)に示すように更新前の属性値が格納されていた部分に空き領域が生まれる。検索対象のインデックスデータが分散してしまう。その結果アクセスデータ量が増え、検索及び更新時の応答性能が劣化してしまう。そこで適切なタイミングにおいてインデックス最適化処理を行い、図2(c)に示すように無駄な空き領域を整理する。空き領域を整理することによってアクセスデータ量を減少させ、応答性能を向上させることができる。   FIG. 2 shows an index example of the B-Tree structure in which the present embodiment shows an effective situation. For example, when an attribute value is assigned to the index in the initial state shown in FIG. 2A so as to be updated from the personal name “none” to the personal name “Taro”, the index is updated as shown in FIG. An empty area is created in the part where the previous attribute value was stored. Search target index data is dispersed. As a result, the amount of access data increases, and the response performance at the time of search and update deteriorates. Therefore, index optimization processing is performed at an appropriate timing, and unnecessary empty areas are arranged as shown in FIG. By organizing the free space, the amount of access data can be reduced and the response performance can be improved.

図3(a)は外部記憶部1007の例として、デジタルカメラ向けメモリカードの内部構成を示した図である。メモリカード3000の内部には、写真や映像をはじめとした各種データがDCF(Design rule for Camera File system)に準拠した形で格納される(3001)。また、写真や映像のデータにはデータの内容を説明する付加情報である属性値が付与されている。写真データの場合、日付や撮影パラメータ、GPS座標などを格納する枠組みであるExif(Exchangeable image file format)が代表的な例である(3002)。
図3(b)に示したのはExifが持つ属性値の一例であり、日付、GPS座標、地名、撮影機器メーカー、撮影機器機種名、人名等が格納されている。また、検索処理を高速に行えるようにするため、インデックス格納領域3003に、索引情報を格納した各種インデックス(3004〜3007)をあらかじめ構築し、構築済みのインデックスを検索時に利用することで応答時間を短縮する手法が一般的である。インデックスはB−Treeやハッシュ等の論理構造を持ち、検索キーとデータを紐付けておくことで高速な検索が可能になる。インデックス格納領域3003には、日付のインデックス3004、GPS座標のインデックス3005、地名のインデックス3006、そして人名のインデックス3007を保持している。各インデックス3004〜3007はデータベースファイル等の形式でインデックス格納領域3003に永続化される。
図3(c)は地名インデックス3006が、B−Treeの構造をもつ場合の図である。B−Treeは階層構造を持つデータ構造であり、データの挿入、検索、及び削除が容易に行える特長を持つ。インデックスレコード3008は地名からデータファイル名へのインデックスレコードを表している。
FIG. 3A is a diagram showing an internal configuration of a memory card for a digital camera as an example of the external storage unit 1007. Various types of data such as photographs and videos are stored in the memory card 3000 in conformity with DCF (Design rule for Camera File System) (3001). In addition, attribute values, which are additional information for explaining the contents of the data, are given to the photo and video data. In the case of photo data, Exif (Exchangeable image file format), which is a framework for storing dates, shooting parameters, GPS coordinates, and the like, is a typical example (3002).
FIG. 3B shows an example of attribute values of Exif, in which date, GPS coordinates, place name, photographing device manufacturer, photographing device model name, personal name, and the like are stored. Further, in order to perform the search processing at high speed, various indexes (3004 to 3007) storing index information are built in the index storage area 3003 in advance, and the response time can be reduced by using the built indexes at the time of the search. The method of shortening is common. The index has a logical structure such as B-Tree or hash, and a high-speed search is possible by associating a search key with data. The index storage area 3003 holds a date index 3004, a GPS coordinate index 3005, a place name index 3006, and a person name index 3007. Each index 3004 to 3007 is made permanent in the index storage area 3003 in the form of a database file or the like.
FIG. 3C is a diagram when the place name index 3006 has a B-Tree structure. B-Tree is a data structure having a hierarchical structure and has a feature that data can be easily inserted, searched, and deleted. An index record 3008 represents an index record from a place name to a data file name.

図4(a)はRAM1003の構成を表す図である。おもにファイルキャッシュ4001、及びデータベースキャッシュ4002から構成される。ファイルキャッシュ4001は、外部記憶部1007に対するアクセス要求データをRAM1003経由で受け渡しするようにして、データベースエンジン4004や検索アプリケーション4008からの要求に対して応答速度を向上させるために配置される。
図4(b)は本実施形態に係る機能ブロック図である。機器状態変化検知部4003は、給電状態やリソース状態、通信状態、加速度センサ等を監視して、状態変化に応じた機器の動作を決定する。データ記憶装置の検索処理を実行する検索アプリケーション4008は、データ登録処理部4009及びデータ検索処理部4010から構成される。データベースエンジン4004は、検索処理を高速に行うために利用される。検索アプリケーション4008は、データベースエンジン4004を用いてデータ登録処理、およびデータ検索処理を行う。
FIG. 4A shows the configuration of the RAM 1003. It is mainly composed of a file cache 4001 and a database cache 4002. The file cache 4001 is arranged to improve the response speed to requests from the database engine 4004 and the search application 4008 by passing access request data for the external storage unit 1007 via the RAM 1003.
FIG. 4B is a functional block diagram according to the present embodiment. The device state change detection unit 4003 monitors the power supply state, resource state, communication state, acceleration sensor, and the like, and determines the operation of the device according to the state change. A search application 4008 that executes search processing of the data storage device includes a data registration processing unit 4009 and a data search processing unit 4010. The database engine 4004 is used to perform search processing at high speed. The search application 4008 performs data registration processing and data search processing using the database engine 4004.

図5(a)中のデータ表5001は本実施形態に係る検索データベースの例である。各データを一意に区別するためのキーとしてRowIDを付与し、データベースファイル等に表形式で保存することを想定している。RowIDは、データベースあるいはテーブルにおいて重複しないようにユニークに発番・付与される数値であり、一般的なデータベースエンジンで利用されている。
図5(b)は本実施形態に係るインデックス格納領域3003に格納されたインデックスの例である。各データに付与されたExifデータ3002のインデックスを、インデックス登録処理部4005によって予め生成しておくことで検索条件に合致するデータを素早く発見し、高速に検索処理を実行できる。例えば日付インデックス3004は、日付とRowIDとを結びつけたデータマップを、人名インデックス3007は人名とRowIDとを結びつけたデータマップを保持している。結び付けられたRowIDからデータを一意に特定し、検索結果を提示することが可能である。
A data table 5001 in FIG. 5A is an example of a search database according to the present embodiment. It is assumed that RowID is assigned as a key for uniquely identifying each data and stored in a database file or the like in a table format. The RowID is a numerical value that is uniquely assigned and assigned so as not to be duplicated in the database or table, and is used in a general database engine.
FIG. 5B shows an example of an index stored in the index storage area 3003 according to this embodiment. By generating the index of the Exif data 3002 assigned to each data in advance by the index registration processing unit 4005, it is possible to quickly find data that matches the search condition and execute the search process at high speed. For example, the date index 3004 holds a data map in which a date and RowID are linked, and the person name index 3007 holds a data map in which a person name and RowID are linked. It is possible to uniquely specify data from the associated RowID and present the search result.

データ記憶装置にはデータ検索機能に限らず、データ転送機能やデータ登録機能、撮像機能等さまざまな機能を搭載する場合がある。そのため、データ記憶装置は、機器の状態がどのようになっているかを検知し、適切な機能を選択して動作する。図7に示したのはデータ記憶装置1000の電源投入からの動作を示すフローチャートの例である。電源が投入されるとステップS7001において電源投入後の初期化処理を行う。続いてステップS7002では機器の状態変化あるいはユーザからの入力等のイベントを待機し、検知すると次のステップへ続く。機器の状態変化としては給電状態の変化や通信状態等が考えられる。ステップS7003では検知したイベントが何であるかを判別し、ステップS7004に受け渡す。ステップS7004で判別されたイベントに応じて適切な処理を行い、その結果がステップS7005において表示部1009に表示される。イベントの代表例としては、データ検索処理の起動命令、データ登録処理の起動命令が挙げられる。また、電源スイッチの入れ替え、給電状態の変化、他機器との接続状態の変化、外部記憶部状態変化、加速度変化、電波強度変化、通信状態変化、機器のリソース状態の変化、外部からの指示、時刻変化等も挙げられる。   The data storage device is not limited to the data search function but may be equipped with various functions such as a data transfer function, a data registration function, and an imaging function. Therefore, the data storage device detects the state of the device and operates by selecting an appropriate function. FIG. 7 shows an example of a flowchart showing an operation after power-on of the data storage device 1000. When the power is turned on, initialization processing after the power is turned on is performed in step S7001. In step S7002, an event such as a change in the state of the device or an input from the user is waited for, and if detected, the process proceeds to the next step. A change in the state of the device may be a change in the power supply state or a communication state. In step S7003, it is determined what the detected event is, and the event is passed to step S7004. Appropriate processing is performed according to the event determined in step S7004, and the result is displayed on the display unit 1009 in step S7005. Typical examples of events include a data search processing start command and a data registration processing start command. In addition, replacement of power switch, change in power supply state, change in connection state with other devices, change in external storage state, change in acceleration, change in radio wave intensity, change in communication state, change in device resource state, instructions from outside, A time change etc. are also mentioned.

ここでインデックスを用いたデータ検索処理、データ登録処理、断片化が起こる過程、および断片化を解消するインデックス最適化処理の詳細を述べる。   Here, details of the data search process using the index, the data registration process, the process of fragmentation, and the index optimization process for eliminating fragmentation will be described.

まず、データ検索処理について説明する。例えば、ユーザによってデータ検索処理を指示された場合は、図8に示したデータ検索処理のフローを呼び出し、データ検索処理部4010を起動する。データ検索処理部4010は検索条件入力部4011から受けた検索指示によって検索処理を実行し、検索結果表示制御部4012に検索処理の結果を返却する処理を行う。ステップS8001において検索条件入力部4011からの検索条件入力を受け付ける。続いてステップS8002において前記検索条件に基づき、データ検索処理部4010を発動させて検索処理を実行する。前記データ検索処理部4010は検索条件に応じてデータベースエンジン4004に内包されるインデックス検索処理部4006を呼び出し、検索条件に合致するデータを取得する。続いてステップS8003において取得した結果が検索結果表示制御部4012によってユーザに提示される。   First, the data search process will be described. For example, when the data search process is instructed by the user, the data search process flow shown in FIG. 8 is called to activate the data search processing unit 4010. The data search processing unit 4010 executes a search process according to the search instruction received from the search condition input unit 4011 and performs a process of returning the search process result to the search result display control unit 4012. In step S8001, a search condition input from the search condition input unit 4011 is received. Subsequently, in step S8002, based on the search condition, the data search processing unit 4010 is activated to execute the search process. The data search processing unit 4010 calls the index search processing unit 4006 included in the database engine 4004 according to the search condition, and acquires data that matches the search condition. Subsequently, the search result display control unit 4012 presents the result acquired in step S8003 to the user.

図6(b)に示したのは、前記データ検索処理の検索結果を表示したユーザインターフェースの例である。領域6001は検索条件表示領域である。ボックス6002はユーザが指定した検索条件を選択するドロップダウンボックスである。また、領域6003は検索条件に基づいて領域に検索結果をサムネイルで一覧表示する検索結果表示領域である。領域6004は検索結果のページ数を提示する検索結果情報表示領域である。
図6(a)は検索条件入力部4011に対してユーザが与えた検索指示を表現したSQL(Structured Query Language)文の例である。ユーザが指定した検索条件に応じて検索条件入力部4011等で生成する。生成したSQL文はインデックス検索処理部4006によって解釈・実行され、データ検索処理が行われる。
FIG. 6B shows an example of a user interface that displays the search result of the data search process. An area 6001 is a search condition display area. A box 6002 is a drop-down box for selecting a search condition designated by the user. An area 6003 is a search result display area that displays a list of search results as thumbnails in the area based on the search condition. An area 6004 is a search result information display area that presents the number of pages of search results.
FIG. 6A shows an example of an SQL (Structured Query Language) statement expressing a search instruction given by the user to the search condition input unit 4011. Generated by the search condition input unit 4011 or the like according to the search conditions specified by the user. The generated SQL sentence is interpreted and executed by the index search processing unit 4006, and data search processing is performed.

続いてデータ登録機能について説明する。データ登録処理部4009は、撮像、外部からのデータ複製等のイベント発生時に実行される。前記データ登録処理部4009は、ステップS7004から呼び出されて実行され、データ格納部3001に登録、更新、または削除の要求を受けたデータを永続化する。また、前記データ登録処理部4009はインデックス登録処理部4005を呼び出して、検索処理の高速化のため、必要な各インデックス3004〜3007を更新し、インデックス格納領域3003に格納する処理を行う。このように、ステップS7004で、各種イベントに対応した処理をし、呼び出されたデータ登録処理部4009、インデックス登録処理部4005の処理の結果、インデックスの断片化が生じる。一般的にインデックスを永続化するインデックスファイルは、一定量のブロック単位で管理される。また、その論理構造はハッシュ、AVL Tree、B−Tree、ビットマップ等で表現される。   Next, the data registration function will be described. The data registration processing unit 4009 is executed when an event such as imaging or external data replication occurs. The data registration processing unit 4009 is called and executed from step S7004, and perpetuates data that has received a request for registration, update, or deletion in the data storage unit 3001. Further, the data registration processing unit 4009 calls the index registration processing unit 4005 to update each necessary index 3004 to 3007 and store it in the index storage area 3003 in order to speed up the search process. Thus, in step S7004, processing corresponding to various events is performed, and index fragmentation occurs as a result of the called data registration processing unit 4009 and index registration processing unit 4005. In general, an index file for making an index permanent is managed in units of a certain amount of blocks. The logical structure is represented by a hash, AVL Tree, B-Tree, a bitmap, and the like.

例えば、図2に示すのは人名インデックス3007をB−Tree構造で表現したものである。一般的にB−Tree構造は大きく分けて、ルートノード、中間ノード、リーフノードの3要素からなる。ルートノードからリーフノードに向かって探索を行い、各ノードに格納されているデータを評価することにより、全走査を行うことなく検索条件に対応するデータを検索できる。   For example, FIG. 2 shows a personal name index 3007 expressed in a B-Tree structure. In general, the B-Tree structure is roughly divided into three elements: a root node, an intermediate node, and a leaf node. By searching from the root node toward the leaf node and evaluating the data stored in each node, data corresponding to the search condition can be searched without performing a full scan.

但し、前記データ登録処理部4009で行われるインデックス登録処理において、インデックス内部の断片化に注意する必要がある。正しい検索結果を得るためには、検索対象となるデータが更新されるたびにインデックスも同様に更新する必要がある。図2(a)に示すインデックスでは人名「太郎」が付与されていない状態でインデックスが構築されている。このとき、人名認識処理等が行われて属性値が「なし」であるデータのいくつかに属性値「太郎」が付与されると、図2(b)のようにB−Tree構造が更新される。属性値「太郎」の木が構築される。一方で高速に応答してインデックス更新するため、属性値「なし」の部分に生じた空き領域は詰めずに終了する。このような断片化が生じている状態で検索処理または登録処理を行うと、処理対象のデータが広く分散するため必要なデータアクセス量が増加することにより、キャッシュが枯渇してしまう。その結果、外部記憶部1007へのアクセス要求が増えて処理終了が遅延してしまう。このような論理構造の断片化はB−Treeに限らず、ハッシュ、AVL Tree、ビットマップ等においても発生する。また同様に、インデックスファイル自体についても、細かい更新を繰返すと単位ブロック内の空き領域の再利用率が落ちることによって断片化が発生する。特に書き換えが低速なフラッシュメモリを外部記憶部として利用する場合、既存領域の再利用よりも新規追記を優先する設計が行われることが多く、再利用率の低い更新が累積されて断片化の発生が顕著になる。断片化が多いインデックスファイルは読み出し量を多く必要とするため、機器のキャッシュメモリを枯渇させる原因となる。キャッシュメモリが枯渇すると外部記憶部へのアクセス頻度が高くなり、応答性能が劣化する。   However, in the index registration processing performed by the data registration processing unit 4009, it is necessary to pay attention to fragmentation inside the index. In order to obtain a correct search result, it is necessary to update the index in the same manner every time data to be searched is updated. In the index shown in FIG. 2A, the index is constructed in a state where the personal name “Taro” is not assigned. At this time, when a personal name recognition process or the like is performed and the attribute value “Taro” is given to some of the data having the attribute value “None”, the B-Tree structure is updated as shown in FIG. The The attribute value “Taro” tree is constructed. On the other hand, since the index is updated in response to a high speed, the free area generated in the attribute value “none” portion is finished without being filled. When search processing or registration processing is performed in a state in which such fragmentation occurs, the data to be processed is widely distributed, so that the necessary data access amount increases and the cache is depleted. As a result, the number of access requests to the external storage unit 1007 increases and the processing end is delayed. Such fragmentation of the logical structure occurs not only in the B-Tree but also in a hash, an AVL Tree, a bitmap, and the like. Similarly, when the index file itself is repeatedly updated, fragmentation occurs due to a decrease in the reuse rate of the free area in the unit block. In particular, when flash memory with low rewrite speed is used as an external storage unit, designs that give priority to new appending over reuse of existing areas are often performed, and updates with a low reuse rate are accumulated and fragmentation occurs. Becomes prominent. An index file with much fragmentation requires a large amount of reading, which causes the cache memory of the device to be depleted. When the cache memory is depleted, the frequency of access to the external storage unit increases and the response performance deteriorates.

そこで断片化を解消するため、定期的にデータ最適化処理、すなわちインデックス最適化処理を行う必要がある。しかしながら、構造の組み替え処理はデータ全体を俯瞰する必要があるため、件数に応じてコストが増加し、デジタルカメラ等の計算資源に制限がある環境では写真撮影等の他機能の性能を劣化させる場合がある。加えて外部記憶部にフラッシュメモリを用いた場合には、インデックス対象の属性値のような小容量の読込及び書込処理が低速である。そのため、インデックス最適化処理はさらなる処理負荷となる。よって、デジタルカメラ等においてはインデックスの断片化を許容して検索処理を続行せざるを得ない。   Therefore, in order to eliminate fragmentation, it is necessary to periodically perform data optimization processing, that is, index optimization processing. However, since the restructuring process of the structure requires an overview of the entire data, the cost increases according to the number of cases, and the performance of other functions such as photography is deteriorated in an environment where the computational resources such as a digital camera are limited There is. In addition, when a flash memory is used as the external storage unit, small-capacity reading and writing processes such as index-target attribute values are slow. For this reason, the index optimization process is a further processing load. Therefore, in a digital camera or the like, index search must be allowed to continue and search processing must be continued.

そこで、本実施形態においてはデータ最適化手段を用い、適切なタイミングでインデックス最適化処理を行う。機器状態変化検知部4003を用いて機器の状態を監視し、写真撮影等の他機能への影響がない時間を検知してインデックス最適化部4007を呼び出す。状態を監視する要素とはすなわち、給電状態、電池の残量、他機器との接続状態、データ状態、外部記憶部の状態、加速度センサ値、電波強度、通信状態、機器のリソース状態、外部からの指示、時刻等が挙げられる。前記状態検知結果のいずれかのうち、少なくとも一つを基にインデックス最適化処理を実施する。   Therefore, in this embodiment, data optimization means is used to perform index optimization processing at an appropriate timing. The device state change detection unit 4003 is used to monitor the state of the device, and a time when there is no influence on other functions such as photography is detected and the index optimization unit 4007 is called. The status monitoring elements are: power supply status, remaining battery level, connection status with other devices, data status, external storage status, acceleration sensor value, radio wave intensity, communication status, device resource status, external Instruction, time, and the like. An index optimization process is performed based on at least one of the state detection results.

図9に示したのは、充電状態およびインデックスの更新回数を監視することによってインデックス最適化処理を実施する処理フローの例である。充電が開始されるとインデックス最適化処理を行い、終了すると電源を切る。デジタルカメラ等においては充電処理が行われている間、充電が完了するまで利用されない可能性が高いためである。ステップS9001において充電処理の開始を検知する。検知した場合にはステップS9002においてインデックスの更新回数が所定以上かを確認し、インデックス最適化処理が必要か否かを判断する。インデックスの更新回数が多ければ、インデックスの断片化が大量に発生している可能性が高いからである。インデックス最適化処理が必要である場合にはステップS9003においてインデックス最適化部4007を起動し、そうでない場合には何もしない。そして最後にステップS9004において機器終了処理を行い、機器の電源を切る。なお、インデックス最適化処理が必要か否かを判断する基準として、更新回数に限らず、機器の稼働時間や起動回数等を用いてもよい。インデックス更新頻度がほぼ一定である場合には、稼働時間を用いることにより、起動回数と更新回数の相関が高い場合には、起動回数を基準に用いることにより、それぞれ更新回数の計上コストを省略できる。   FIG. 9 shows an example of a processing flow in which the index optimization process is performed by monitoring the state of charge and the number of index updates. The index optimization process is performed when charging is started, and the power is turned off when the charging is completed. This is because a digital camera or the like is not likely to be used until charging is completed while the charging process is being performed. In step S9001, the start of the charging process is detected. If detected, it is checked in step S9002 if the number of index updates is greater than or equal to a predetermined value, and it is determined whether index optimization processing is necessary. This is because if the number of index updates is large, there is a high possibility that a large amount of index fragmentation has occurred. If index optimization processing is necessary, the index optimization unit 4007 is activated in step S9003, and if not, nothing is done. Finally, in step S9004, device termination processing is performed to turn off the device. Note that, as a criterion for determining whether or not the index optimization process is necessary, not only the number of updates but also the operating time of the device, the number of activations, and the like may be used. When the index update frequency is almost constant, the operating time is used. When the correlation between the number of activations and the number of updates is high, the cost of counting the number of updates can be omitted by using the number of activations as a reference. .

最適化処理の実施を行う他の例を挙げる。他機器と長く繋がっている接続状態のときに行っても良い。データの利用頻度が低い時に行っても良い。外部記憶部の状態が空き容量の少ないときに行っても良い。加速度センサ値の変化が少なく安定して置かれていると判断できる時に行っても良い。電波強度が強くて安定しているときに行っても良い。通信が長く繋がっているときや、通信量が少ない時に行っても良い。機器のリソース状態を監視し負荷の低い時、未使用時に行っても良い。利用者が就寝している夜中に行っても良い。もちろん、利用者が明示的に指示を行ったときでもよい。   Another example in which the optimization process is performed will be given. It may be performed when connected to another device for a long time. It may be performed when the data usage frequency is low. You may perform when the state of the external storage unit is low. It may be performed when it can be determined that the acceleration sensor value is little changed and stable. It may be performed when the radio wave intensity is strong and stable. You may perform when communication is connected for a long time, or when there is little communication volume. It may be performed when the resource status of the device is monitored and the load is low or not used. You may go in the middle of the night when the user is sleeping. Of course, it may be when the user explicitly gives an instruction.

ところで、小型のビューワやデジタルカメラ等において、充電を中断して持ち出し、利用するような状況では主機能の性能に影響を与えないようにするため、インデックス最適化処理を中断する必要がある。一方で中断状態のインデックスを放棄することは、インデックス最適化処理の効率上望ましくない。そのため、適切にデータ最適化中断と、中断後のデータ最適化再開を効率的に可能にする必要がある。   By the way, in a small viewer, digital camera or the like, it is necessary to interrupt the index optimization process in order to avoid affecting the performance of the main function in a situation where charging is interrupted and taken out. On the other hand, abandoning a suspended index is not desirable in terms of the efficiency of index optimization processing. Therefore, it is necessary to efficiently enable data optimization suspension and data optimization restart after interruption appropriately.

図4(c)に示したのはインデックス最適化処理の中断および再開を行うインデックス最適化部4007を詳細化した機能ブロック図の一例である。動作例について、図10のインデックス最適化処理フローチャートを用いて詳細に説明する。   FIG. 4C shows an example of a detailed functional block diagram of the index optimization unit 4007 that suspends and resumes the index optimization process. An example of the operation will be described in detail with reference to the index optimization processing flowchart of FIG.

まずステップS10001において、インデックス最適化スケジュール生成部4013を実行する。ここでは給電状態やリソース状態を参照・分析することによって、機器状態に応じたインデックス最適化スケジューリングを行う。例えば、機器の電池残量が少なく残充電時間が長いと判断できる場合には、機器の利用される頻度が低くなると判断し、大規模なインデックス最適化処理をスケジューリングすることなどが考えられる。続いてインデックス最適化起動部4014においてスケジュールに対応したインデックス最適化処理を起動または再開する。   First, in step S10001, the index optimization schedule generation unit 4013 is executed. Here, index optimization scheduling according to the device state is performed by referring to and analyzing the power supply state and the resource state. For example, if it can be determined that the battery level of the device is low and the remaining charge time is long, it may be determined that the frequency of use of the device will be low and scheduling a large-scale index optimization process. Subsequently, the index optimization starting unit 4014 starts or restarts the index optimization process corresponding to the schedule.

ステップS10002において、以前にインデックス最適化処理が中断されたか否かを検出する。中断を検出した場合には、ステップS10003に遷移して最適化処理を継続して再開することを試み、そうでない場合はステップS10006において最初から新たにインデックス作成を開始する。   In step S10002, it is detected whether the index optimization process has been interrupted before. If an interruption is detected, the process proceeds to step S10003 to attempt to continue the optimization process and restart. If not, index creation is newly started from the beginning in step S10006.

ステップS10003では、検索対象のデータに中断時と比較してデータ更新による差分がどれくらいあるかを抽出する。ステップS10004では、インデックス最適化再開部4015を呼び出し、インデックス最適化処理の再開をする。抽出した差分量を基準に、インデックス最適化処理を継続して再開可能であるか否かを判定する。差分量の基準例としては、インデックスファイルサイズの変化、更新件数、中断時からの経過時間等を用いる。最適化処理の継続した再開可能の可否は、データの更新・削除の件数によって判断する。   In step S10003, it is extracted how much the search target data has a difference due to the data update compared to when the data is interrupted. In step S10004, the index optimization restart unit 4015 is called to restart the index optimization process. Based on the extracted difference amount, it is determined whether or not the index optimization process can be resumed. As a reference example of the difference amount, a change in index file size, the number of updates, an elapsed time since the interruption, and the like are used. Whether or not the optimization process can be resumed is determined by the number of data updates / deletions.

データの更新・削除件数が少ない時には、インデックス最適化済みの部分に対応するデータに対する更新や削除を検出し、それらに対応するインデックスを更新して、続きの最適化を再開する。データの大半が更新または削除されたときには、中断時までに最適化済みのインデックスデータは使わずに、最初から最適化を実行することになる。   When the number of data updates / deletions is small, update / deletion of data corresponding to the index optimized portion is detected, the corresponding index is updated, and the subsequent optimization is resumed. When most of the data is updated or deleted, the optimization is executed from the beginning without using the index data that has been optimized by the time of interruption.

つまり、中断前に最適化済みの部分にデータの差分が存在した場合には、差分量が許容できる範囲内であれば最適化済みの部分に差分の適用を行うことになる。   That is, if there is a data difference in the optimized part before the interruption, the difference is applied to the optimized part if the difference amount is within an allowable range.

ステップS10004の結果が真である場合にはS10005においてインデックス作成を再開し、偽である場合にはステップS10006に遷移して新インデックスを作成する。ステップS10005またはステップS10006からの流れを受け、ステップS10007からステップS10011のループにおいてインデックス作成を行う。   If the result of step S10004 is true, index creation is resumed in step S10005. If false, the process proceeds to step S10006 to create a new index. In response to the flow from step S10005 or step S10006, index creation is performed in the loop from step S10007 to step S10011.

但し、ループ毎にステップS10007およびステップS10008において充電状態等の機器状態を監視し、インデックス最適化処理を中断すべきか否かを判断する。充電中断等によってインデックス最適化処理を中断すると判断された場合にはステップS10012においてインデックス最適化処理を中断する。中断方法としては、例えば最適化終了前の旧インデックスを残したまま新インデックス作成を行い、新インデックス構築完了後に、新旧インデックスを差し替える等の方法が考えられる。   However, for each loop, in step S10007 and step S10008, the device state such as the charging state is monitored to determine whether or not the index optimization process should be interrupted. If it is determined that the index optimization process is to be interrupted due to charging interruption or the like, the index optimization process is interrupted in step S10012. As an interruption method, for example, a new index is created while leaving the old index before the end of optimization, and the new and old indexes are replaced after the new index construction is completed.

図2(c)は、前記インデックス最適化処理によって、図2(b)に示すインデックスの断片化を解消した例である。空き領域となっていた部分が再構築によって埋まり、全体のノード数が減っている。なお、B−Treeに限らず、AVL Tree等他の論理構造を持つインデックスや、インデックスファイル自体に対しても同様に、再利用が行われない空き領域を整理する等の最適化処理を行うことで断片化を解消する。このことにより、検索及び登録時に必要なデータ量が削減され、応答時間が向上する。   FIG. 2C shows an example in which the index fragmentation shown in FIG. 2B is eliminated by the index optimization process. The free space has been filled up by reconstruction, and the total number of nodes has decreased. It should be noted that not only B-Tree but also optimization processing such as organizing free areas that are not reused is performed on indexes having other logical structures such as AVL Tree, and index files themselves. To eliminate fragmentation. This reduces the amount of data required for search and registration, and improves response time.

以上の処理により、インデックス最適化処理を、機器の状態に応じて任意のタイミングで中断および再開可能にする。新インデックス作成中には旧インデックスを上書きしないので突然の電源断や通信断絶時にも中断状態からの復帰が可能である。このことにより、機器の計算資源を効率よく利用してインデックスを最適化させることができる。その結果、データ検索時の応答速度が向上する。   With the above processing, the index optimization processing can be interrupted and restarted at an arbitrary timing according to the state of the device. Since the old index is not overwritten during the creation of a new index, it is possible to recover from a suspended state even in the event of a sudden power interruption or communication interruption. This makes it possible to optimize the index by efficiently using the computing resources of the device. As a result, the response speed during data retrieval is improved.

本実施形態は、フラッシュメモリ等の更新速度が遅い環境を前提にしたが、RAMドライブ、ハードディスクドライブ、或いは速度改善されたフラッシュメモリ等、任意の環境においても応答時間の向上に効果がある。本実施形態の応用例として、他機器との接続時等において、インデックス最適化処理を他機器と分散、あるいは委託して実施することも、計算資源を有効利用する点で効果的である。   This embodiment is based on an environment where the update speed is low, such as a flash memory, but it is effective in improving the response time in any environment such as a RAM drive, a hard disk drive, or a flash memory with improved speed. As an application example of the present embodiment, it is also effective in efficiently using computing resources that index optimization processing is distributed or commissioned with other devices when connected to other devices.

また、本実施形態はインデックス最適化処理に限らず、様々なユースケースにおいて適用できる。例えばファイルシステム最適化処理においても適用可能である。この場合、機器の状態検知結果を基に、適切なタイミングでデータ最適化処理の起動、中断及び再開処理を行う。その結果、主機能の性能を劣化させる事なく、外部記憶部1007の空き領域や登録データの断片化を解消する。こうすることで、データ走査時間や書き込み時間遅延を改善する効果がある。   Further, the present embodiment is not limited to index optimization processing, and can be applied to various use cases. For example, the present invention can be applied to file system optimization processing. In this case, the data optimization process is started, interrupted, and restarted at an appropriate timing based on the device state detection result. As a result, free space in the external storage unit 1007 and fragmentation of registered data are eliminated without degrading the performance of the main function. This has the effect of improving the data scanning time and writing time delay.

(第2の実施形態)
次に、本発明の第2の実施形態として、サムネイル画像構築処理、すなわち縮小画像の作成によって検索応答速度の向上と閲覧画質を両立する方法について詳細に説明する。本実施形態は第1の実施形態と同様の構成を持つ。本実施形態は画像検索等において、閲覧用の縮小画像(サムネイル)の作成を行う。こうすることで、データ閲覧時の画質と、検索時の応答性能とを両立させることを目的とする。
(Second Embodiment)
Next, as a second embodiment of the present invention, a thumbnail image construction process, that is, a method for achieving both improved search response speed and browsing image quality by creating a reduced image will be described in detail. This embodiment has the same configuration as that of the first embodiment. In the present embodiment, a reduced image (thumbnail) for browsing is created in image search or the like. By doing so, an object is to achieve both the image quality at the time of data browsing and the response performance at the time of retrieval.

デジタルカメラ等の撮像機器においては、1000万画素を超える高解像度な画像を記録することができる。一方で、このような高画質な画像を閲覧するにはデータ量に比例した計算量が必要となり、多量のデータを連続閲覧する等のユースケースにおいては計算負荷が大きくなる。そのため、Exif領域にはあらかじめ縮小画像が格納されており、こちらを優先的に表示することで高速な画像切り替えを可能にしている。しかしながら、表示デバイスの進歩によって表示解像度が向上し、従来のExif規格の縮小画像を表示するだけでは十分な画質を確保できない場合がある。   An imaging device such as a digital camera can record a high-resolution image exceeding 10 million pixels. On the other hand, in order to view such high-quality images, a calculation amount proportional to the amount of data is required, and a calculation load increases in use cases such as continuous browsing of a large amount of data. For this reason, a reduced image is stored in advance in the Exif area, and high-speed image switching is enabled by preferentially displaying this. However, the display resolution is improved by the advancement of the display device, and there are cases where sufficient image quality cannot be ensured only by displaying the reduced image of the conventional Exif standard.

そこで、本実施形態では、機器状態検知を行うことにより、適切なタイミングで撮像元画像とExif縮小画像の中間解像度で縮小画像を構築しておき、閲覧時に優先的に閲覧することで画質と応答性能を両立する。   Therefore, in this embodiment, by performing device state detection, a reduced image is constructed at an intermediate resolution between the original image and the Exif reduced image at an appropriate timing, and the image quality and response are preferentially viewed during browsing. Balance performance.

本実施形態も図10に示したフローチャートの例において適用可能である。充電切断等、機器状態の変化を検知し、ステップS10012の中断処理を行う場合には、中間解像度縮小画像の作成進捗状況を保存しておく。次回の中間解像度縮小画像の作成開始時、ステップS10005において、進捗状況に応じて中間解像度縮小画像の作成を再開する。こうすることで中断時の状態を有効利用して中間解像度縮小画像の作成を円滑に実行できるし、検索時の応答性能と閲覧画質を両立することができる。   This embodiment is also applicable in the example of the flowchart shown in FIG. When detecting a change in the device state such as charging disconnection and performing the interruption process in step S10012, the progress of creating the intermediate resolution reduced image is stored. When the creation of the next intermediate resolution reduced image is started, the creation of the intermediate resolution reduced image is resumed in step S10005 according to the progress. In this way, the intermediate resolution reduced image can be smoothly created by effectively using the state at the time of interruption, and both the response performance at the time of retrieval and the browsing image quality can be achieved.

また、動画データのダイジェスト画像作成処理等においても適用可能である。本実施例と同様に機器の状態に応じて作成することで、主機能の性能を劣化させることなくデータ検索時の利便性を向上させる点で効果的である。   The present invention can also be applied to digest image creation processing of moving image data. Similar to the present embodiment, the creation according to the state of the device is effective in improving the convenience during data retrieval without degrading the performance of the main function.

(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
(Other examples)
The present invention can also be realized by executing the following processing. That is, software (program) that realizes the functions of the above-described embodiments is supplied to a system or apparatus via a network or various storage media, and a computer (or CPU, MPU, or the like) of the system or apparatus reads the program. It is a process to be executed.

ファイルキャッシュ 4001
データベースキャッシュ 4002
機器状態変化検知部 4003
データベースエンジン 4004
インデックス登録処理部 4005
インデックス検索処理部 4006
インデックス最適化部 4007
検索アプリケーション 4008
データ登録処理部 4009
データ検索処理部 4010
検索条件入力部 4011
検索結果表示制御部 4012
インデックス最適化スケジュール生成部 4013
インデックス最適化起動部 4014
インデックス最適化再開部 4015
File cache 4001
Database cache 4002
Device state change detection unit 4003
Database engine 4004
Index registration processing unit 4005
Index search processing unit 4006
Index optimization unit 4007
Search application 4008
Data registration processing unit 4009
Data search processing unit 4010
Search condition input part 4011
Search result display control unit 4012
Index optimization schedule generation unit 4013
Index optimization start unit 4014
Index optimization restart unit 4015

Claims (10)

データ記憶装置において、
データの断片化の最適化処理を行う最適化実行手段と、
前記最適化処理が中断していることを検出する検出手段と、
前記検出手段で検出された、中断している最適化処理を継続して再開可能か前記中断から更新されたデータの量により判定する判定手段と、を備え、
前記最適化実行手段は、前記判定手段により最適化処理が再開可能であると判定された場合に、データの最適化処理を再開することを特徴とするデータ記憶装置。
In a data storage device,
An optimization execution means for optimizing data fragmentation;
Detecting means for detecting that the optimization process is interrupted;
A determination unit that is detected by the detection unit, and that determines whether or not the suspended optimization process can be resumed continuously is determined based on the amount of data updated from the interruption, and
The data storage device, wherein the optimization execution unit restarts the data optimization process when the determination unit determines that the optimization process can be restarted.
前記データ記憶装置の状態を検知する検知手段を更に備え、
前記データ最適化実行手段は、前記検知手段で前記データ記憶装置の所定の状態を検知した場合に、データ最適化を中断することを特徴とする請求項1記載のデータ記憶装置。
Further comprising detecting means for detecting the state of the data storage device;
The data storage device according to claim 1, wherein the data optimization execution unit interrupts data optimization when the detection unit detects a predetermined state of the data storage device.
前記データ最適化実行手段は、前記検知手段で検知した前記データ記憶装置の状態に基づいて、データ最適化を計画し実行することを特徴とする請求項2記載のデータ記憶装置。   3. The data storage device according to claim 2, wherein the data optimization execution unit plans and executes data optimization based on the state of the data storage device detected by the detection unit. 前記検知手段が検知する状態は、給電状態、電気の残量、他装置との接続状態、データ状態、外部記憶部の状態、加速度センサ値、電波強度、通信状態、機器のリソース状態、外部からの指示、時刻のいずれか少なくとも1つであることを特徴とする請求項3記載のデータ記憶装置。   The detection means detects the power supply state, the remaining amount of electricity, the connection state with other devices, the data state, the state of the external storage unit, the acceleration sensor value, the radio wave intensity, the communication state, the resource state of the device, from the outside The data storage device according to claim 3, wherein at least one of the instruction and the time is selected. 前記データ最適化実行手段は、前記更新されたデータの量が少ない場合、前記中断前に最適化処理した部分に前記更新されたデータを適用して前記最適化処理した部分を更新することを特徴とする請求項1記載のデータ記憶装置。   The data optimization execution unit updates the optimized part by applying the updated data to the part subjected to the optimization process before the interruption when the amount of the updated data is small. The data storage device according to claim 1. 前記最適化処理を行うデータは、インデックスデータであることを特徴とする請求項1記載のデータ記憶装置。   The data storage device according to claim 1, wherein the data to be optimized is index data. 前記データ最適化実行手段は、最適化終了前の旧インデックスを残して最適化を実行し、最適化終了後に最適化した新インデックスと旧インデックスとを差し替えることを特徴とする請求項6記載のデータ記憶装置。   7. The data according to claim 6, wherein the data optimization execution means performs optimization while leaving the old index before the optimization is completed, and replaces the new index and the old index that are optimized after the optimization is completed. Storage device. 前記最適化処理を行うデータは、サムネイル画像データであることを特徴とする請求項1記載のデータ記憶装置。   The data storage device according to claim 1, wherein the data to be optimized is thumbnail image data. データ記憶装置の制御方法において、
データの断片化の最適化処理を行う最適化実行工程と、
前記最適化処理が中断していることを検出する検出工程と、
前記検出工程で検出された、中断している最適化処理を継続して再開可能か前記中断から更新されたデータの量により判定する判定工程と、を備え、
前記最適化実行工程は、前記判定工程により最適化処理が再開可能であると判定された場合に、データの最適化処理を再開することを特徴とするデータ記憶装置の制御方法。
In a method for controlling a data storage device,
An optimization execution step for performing optimization processing of data fragmentation;
A detection step of detecting that the optimization process is interrupted;
A determination step that is detected in the detection step, and that is determined based on the amount of data updated from the interruption whether the optimization process that has been interrupted can be resumed continuously,
The method for controlling a data storage device, wherein the optimization execution step restarts the data optimization processing when it is determined in the determination step that the optimization processing can be restarted.
データ記憶装置の制御方法をコンピュータに実行させるプログラムであって、
データの断片化の最適化処理を行う最適化実行手順と、
前記最適化処理が中断していることを検出する検出手順と、
前記検出手順で検出された、中断している最適化処理を継続して再開可能か前記中断から更新されたデータの量により判定する判定手順と、を備え、
前記最適化実行手順は、前記判定手順により最適化処理が再開可能であると判定された場合に、データの最適化処理を再開することをコンピュータに実行させることを特徴とするプログラム。
A program for causing a computer to execute a control method for a data storage device,
Optimization execution procedure to optimize data fragmentation,
A detection procedure for detecting that the optimization process is interrupted;
A determination procedure that is determined by the amount of data updated from the interruption whether the optimization process that has been interrupted detected in the detection procedure can be resumed continuously,
The optimization execution procedure causes a computer to restart the data optimization processing when it is determined by the determination procedure that the optimization processing can be restarted.
JP2011132279A 2011-06-14 2011-06-14 Data storage device, control method of data storage device, and program Withdrawn JP2013003716A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011132279A JP2013003716A (en) 2011-06-14 2011-06-14 Data storage device, control method of data storage device, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011132279A JP2013003716A (en) 2011-06-14 2011-06-14 Data storage device, control method of data storage device, and program

Publications (1)

Publication Number Publication Date
JP2013003716A true JP2013003716A (en) 2013-01-07

Family

ID=47672244

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011132279A Withdrawn JP2013003716A (en) 2011-06-14 2011-06-14 Data storage device, control method of data storage device, and program

Country Status (1)

Country Link
JP (1) JP2013003716A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111125120A (en) * 2019-12-30 2020-05-08 广州数锐智能科技有限公司 Stream data-oriented fast indexing method, device, equipment and storage medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111125120A (en) * 2019-12-30 2020-05-08 广州数锐智能科技有限公司 Stream data-oriented fast indexing method, device, equipment and storage medium
CN111125120B (en) * 2019-12-30 2023-08-18 广州数锐智能科技有限公司 Stream data-oriented rapid indexing method, device, equipment and storage medium

Similar Documents

Publication Publication Date Title
US20230244404A1 (en) Managing digital assets stored as components and packaged files
US11099937B2 (en) Implementing clone snapshots in a distributed storage system
KR100760227B1 (en) Image file management apparatus and method and storage medium
EP3170106B1 (en) High throughput data modifications using blind update operations
JP5445463B2 (en) Computer system, data storage method and program
JP5449524B2 (en) Computer, processing method thereof and computer system
US7860909B2 (en) Search engine system using snapshot function of storage system
RU2503054C2 (en) Display control apparatus, display control method
JP5713652B2 (en) Data search apparatus, method, and program
US20150237127A1 (en) Method for client specific database change propagation
JP2013003716A (en) Data storage device, control method of data storage device, and program
JP2007036581A (en) Information management apparatus and method
JP5871497B2 (en) Information processing apparatus, data erasure management method, and computer program
US20090100081A1 (en) Information processing apparatus, information processing method, and program storage medium storing program
JP4481226B2 (en) Image management device
JP2013218431A (en) Optimization processing device, optimization processing method, and program
JP6292796B2 (en) Information processing apparatus, information processing method, and program
JP4412983B2 (en) Archive device and archive processing program
JP2009266026A (en) Data processor, storage device and computer program
CN105468474B (en) Time-dependent metadata-space efficient recovery of recorded data from a failure scenario
JP6381218B2 (en) Network device, network device control method and program thereof
JP2005063139A (en) Computer system and program
JP7166904B2 (en) Information processing system and control method
JP2011029733A (en) Image pickup device, information processor, data communication method, and program
JP2010102411A (en) Content browsing apparatus and method of controlling the same

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140902