(57)【要約】【課題】既存のハードウェアやOSによる長寿命化技術と競合せずに、NANDフラッシュメモリの長寿命化を図ることのできるデータベース装置を提供する。【解決手段】プログラムされたコンピュータを内蔵し、あるいはプログラムされたコンピュータで制御し、NAND フラッシュメモリを搭載したデータベース装置において、アプリケーションプラットフォームが位置するAPプラットフォームレイヤとこのAPプラットフォームレイヤの下位レイヤに、それぞれ、NAND フラッシュメモリの制御機能を組み込み、データベースに取り込むデータを更新頻度に応じて分類化して、分類に対応した修飾語句を付加したSQL文で表現し、APプラットフォームレイヤでSQL文を解釈し、修飾語句に応じて、当該データのうち更新頻度の高いデータテーブルは長寿命のストレージ上に作成し、更新頻度の低いデータテーブルは長寿命のストレージよりも寿命の短いストレージ上に作成する。【選択図】図２
2012014632.tif 000002
【特許請求の範囲】
【請求項１】
プログラムされたコンピュータを内蔵し、あるいはプログラムされたコンピュータで制御し、NAND フラッシュメモリを搭載したデータベース装置において、
アプリケーションプラットフォームが位置するAPプラットフォームレイヤとこのAPプラットフォームレイヤの下位レイヤに、それぞれ、NAND フラッシュメモリの制御機能を組み込み、
データベースに取り込むデータを更新頻度に応じて分類化して、分類に対応した修飾語句を付加したSQL文で表現し、
前記APプラットフォームレイヤで前記SQL文を解釈し、修飾語句に応じて、当該データのうち更新頻度の高いデータテーブルは長寿命のストレージ上に作成し、更新頻度の低いデータテーブルは前記長寿命のストレージよりも寿命の短いストレージ上に作成するデータベース装置。
【請求項２】
前記APプラットフォームレイヤは、データファイルとデータ管理プログラムの組みから成るDBMS（Data Base Management System）である請求項１記載のデータベース装置。
【請求項３】
前記下位レイヤは、OSまたはコントローラである請求項１記載のデータベース装置。
【請求項４】
前記APプラットフォームレイヤに組み込むNANDフラッシュメモリの制御機能は、書き込みブロックの選別であり、前記下位レイヤに組み込むNANDフラッシュメモリの制御機能は、書き込みブロックの管理やエラー訂正、ドライバソフトウエアの管理である請求項２記載のデータベース装置。
【請求項５】
前記長寿命のストレージは、SLC（Single Level Cell）型NANDフラッシュメモリあるいはHDDなどで構成されている請求項２記載のデータベース装置。
【請求項６】
前記寿命の短いストレージは、MLC（Multi Level Cell）型NANDフラッシュメモリなどで構成されている請求項２記載のデータベース装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、データベース装置に関する。
【背景技術】
【０００２】
NAND フラッシュメモリ（NAND型フラッシュメモリ）は機械的な駆動部品が無いため、電力効率が高い、ランダムアクセス（レスポンス）が早い、耐衝撃性が高い、といった利点を有している。NAND フラッシュメモリは、記憶素子内の蓄積電荷量、すなわち、電位の検出区分の違いにより分類できる。1つの記録素子に１ビットのデータを保持するSLC（Single Level Cell）型と、1つの記録素子に２ビット以上のデータを保持するMLC型（Multi Level Cell）である。MLC型はSLC型と比べて書き換え可能な回数とデータ保持期間で劣るが、1セルあたりの記憶容量が倍増する。そのため、MLC型は同じ記憶容量のSLC型と比べて安価であるという利点がある。MLC型とSLC型は、価格と容量や性能とのバランスを考慮して併用されうる。
【０００３】
近年、複数のNANDフラッシュメモリとコントローラを組み合わせたSSD（Flash Solid State Drive)が、HDDの代替品として普及しつつある。
【０００４】
NAND フラッシュメモリの消去回数には寿命があり、多値化や微細化によって寿命は更に短くなっている。消去は1MB程度のブロック単位でしか行えず、データの上書きは出来ないので、「読取り・消去・書込み」の３ステップを踏む必要がある。細かいデータの書換えが頻発すると、SSDとしての寿命が更に短くなる。そのため、書込み・消去の平準化を図ることでSSD全体としての寿命を延ばすことが不可欠である。
【０００５】
システムにおけるNANDフラッシュメモリとSSDは、最上位層に位置するアプリケーションレイヤ、中位層に位置するＯＳレイヤに対して、最下位層であるハードウェアレイアに位置するコントローラと同様、最下位層に位置し、コントローラによって制御されている。
【０００６】
そこで、例えば、コントローラの改良によるSSDの長寿命化が提案されている。コントローラやメモリカード内部にDBMSを持たせ、ファイルI/OやSQL文を解釈させるようにするもの（例えば、特許文献１参照。）や、ページごとに更新頻度を判断し、頻度の高いページと低いページを別のブロックに配置することでマージ操作を削減し、寿命を延ばすものである（例えば、特許文献２参照。）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−１８１３８１号公報
【特許文献２】特開２００７−２２０１０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
NANDフラッシュメモリに対するデータの書き込み頻度の制御判断が上位層になると、データの実際の用途を見抜けるため、インテリジェントな判断が可能である反面、アプリケーションソフトの汎用性は低くなる。一方、判断が下位層になると、上位の構成を問わないため、アプリケーションソフトの汎用性が高い反面、全てのデータがOSを通じてやり取りされるため、実際の用途を見ての判断が難しい。さらに、上位・下位の双方で個別に判断した場合の効率は、的確には判断できず、協調動作、あるいは処理の住み分けが必要となってくる。
【０００９】
そこで、本発明は、上記の問題に鑑みてなされたもので、既存のハードウェア・OSによる長寿命化技術と競合せずに、NAND フラッシュメモリの長寿命化を図ることのできるデータベース装置を提供するものである。
【課題を解決するための手段】
【００１０】
実施形態のデータベース装置は、プログラムされたコンピュータを内蔵し、あるいはプログラムされたコンピュータで制御し、NAND フラッシュメモリを搭載したデータベース装置において、アプリケーションプラットフォームが位置するAPプラットフォームレイヤとこのAPプラットフォームレイヤの下位レイヤに、それぞれ、NAND フラッシュメモリの制御機能を組み込み、データベースに取り込むデータを更新頻度に応じて分類化して、分類に対応した修飾語句を付加したSQL文で表現し、前記APプラットフォームレイヤで前記SQL文を解釈し、修飾語句に応じて、当該データのうち更新頻度の高いデータテーブルは長寿命のストレージ上に作成し、更新頻度の低いデータテーブルは前記長寿命のストレージよりも寿命の短いストレージ上に作成する。
【図面の簡単な説明】
【００１１】
【図１】本実施形態に係るデータベース装置のソフトウェアのレイヤ構成を示す図である。
【図２】ＡＰプラットフォームレイヤとOSレイヤの機能を説明する図である。
【図３】修飾語句を参照して実行されるデータの配置を説明する図である。
【発明を実施するための形態】
【００１２】
以下、本発明の一実施の形態について、図面を参照して説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
【００１３】
データベースは、再利用可能な情報の集合体であり、データファイルとデータ管理プログラムの組みから成る。このデータファイルとデータ管理プログラムの組みはDBMS（Data Base Management System）と呼ばれ、DBMSそのものがデータ管理プログラム、データファイル構造のブラックボックス化、同時アクセス実現の機能を提供している。
【００１４】
データベースを操作する言語として、SQL（Structured Query Language）が使用されている。すなわち、SQLは、 DBMSにデータを読み書きするための言語である。SQL文が与えられたら、DBMSが持つインタプリタがSQL文を解釈し、その内容に応じてデータベースの作成、データファイルの読み書き、アクセス権の設定をDBMSに指示する。DBMSの種類が異なっても、基本的に同じ構文のSQLが使用される。
【００１５】
プログラムされたコンピュータを内蔵し、あるいはプログラムされたコンピュータで制御するデータベース装置で稼働しているソフトウェアの機能は、レイヤ（層）構成で見ることができる。図１は、本実施形態に係るデータベース装置のソフトウェアのレイヤ構成を示す図である。図１に示すように、このレイヤ構成は、アプリケーションレイヤ１０と、ＡＰプラットフォームレイヤ２０と、ＯＳレイヤ３０と、ハードウェアレイヤ４０とから成っている。
【００１６】
アプリケーションレイヤ１０は、最上位のレイヤであって、ＯＳレイヤ３０よりも上位レイヤのソフトウェア群である。
【００１７】
ＡＰプラットフォームレイヤ２０は、各種のアプリケーションから共通に利用されるアプリケーションプラットフォームが位置しているレイヤである。例えば、DBMS（Data Base Management System）、Java（登録商標）VM（ジャバ仮想マシン）、.Net等が該当する。データ形式や利用手順を標準化し、特定のアプリケーションソフトから独立している。Java(登録商標) VM（ジャバ仮想マシン）は、Java(登録商標) バイト形式のソフトウェアをそのプラットフォーム固有形式に変換・実行するソフトウェアである。.Netは、分散計算環境を構築するプラットフォームである。
【００１８】
ＯＳレイヤ３０は、ＡＰプラットフォームレイヤ２０の下位に位置するレイヤであって、ハードウェアの制御をはじめ、タスク（仕事）やファイルシステムの管理、ネットワークへの接続など、システムの基幹的な機能を担う。
【００１９】
ハードウェアレイヤ４０は、ＣＰＵや周辺機器の他に、コントローラ、NAND フラッシュメモリ等のストレージ・デバイスが位置するレイヤである。ストレージ・デバイスには、長寿命のストレージとして、例えば、SLC 型NANDフラッシュメモリあるいはHDD を備え、また短寿命のストレージとしては、例えば、MLC型NAND フラッシュメモリを備えたものが好ましい。
【００２０】
本実施形態においては、ＡＰプラットフォームレイヤ２０に位置付けられるDBMSにNAND制御機能を組み入れる。それに加えて、下位レイヤにNAND制御機能を持たせている。下位レイヤとしては、OSレイヤ３０またはハードウェアレイヤ４０に位置付けられるコントローラが該当する。下位レイヤに持たせるNAND制御機能としては、例えば、書き込みブロックの管理やエラー訂正、ドライバソフトウエアの管理等がある。本実施形態においては、OSレイヤ３０またはハードウェアレイヤ４０に位置付けられるコントローラの下位レイヤと、ＡＰプラットフォームレイヤ２０にNAND制御機能を組み入れる。そのため、ＡＰプラットフォームレイヤ２０に位置付けられるDBMSに組み入れるNAND制御機能が、下位層のNAND制御機能を邪魔しないようにすることが重要である。そこで、DBMSに組み入れるNAND制御機能としては、例えば、書き込みブロックの選別等のメタ的な制御機能のみを組み入れる。
【００２１】
次に、NAND制御機能を組み入れるＡＰプラットフォームレイヤとOSレイヤについて詳述する。図２は、ＡＰプラットフォームレイヤとOSレイヤの機能を説明する図である。
【００２２】
例えば、ＡＰプラットフォーム２０は、コア（Core）２１、バックエンド（Backend）２３、SQLコンパイラ（SQL Compiler）２２、アクセサリ（Accessories）２４に分けることができる。コア２１の中のバーチャルマシン（Virtual Machine）２１１は、“中間命令実行部”として機能する。SQLコンパイラ２２の中のパーサー（Parser）２２１及びコードジェネレータ(Code Generator)２２２は“SQL解釈部”として機能する。バックエンド２３のページャー(Pager)２３１及びOSインターフェイス（OS Interface）２３２は、“OSインターフェイス部”として機能する。
【００２３】
SQL解釈部は、SQL文に付加する語句に応じてデータテーブルを作成する命令にオプションを加え、言わばアセンブラコードを生成する。SQL文に付加する語句は、例えば修飾語句であって、それについては後述する。
【００２４】
中間命令実行部は、中間命令のオプションに応じて内部の変数を変更する。
【００２５】
OSインターフェイス部は、中間命令実行部で変更した引数を見て、OS API（Application Program Interface）やデータテーブルのファイルを作成する場所を変更することによって、NAND フラッシュメモリに対する書き込み回数を管理する。
【００２６】
OSレイヤ３０は、ＡＰプラットフォームレイヤ２０で実行されたファイル作成場所やAPIに与えられた引数を用いてテーブルファイルを適切な場所に配置する。
【００２７】
本実施形態では、データベースを作成するSQL文の基本構文であるCREATE文に対して、データの書き込み頻度に関する修飾語句を付加する。以下に、本実施形態による構文の一例を示す。尚、この構文は例文であって、言うまでもなく、修飾語句の表わし方もこれに限定されることがない。
【００２８】
CREATE  TABLE  テーブル名   DYNAMIC
CREATE  TABLE  テーブル名   STATIC
ここで、修飾語句“DYNAMIC”は、データベースのテーブル内の格納されるデータのうち、更新頻度の高いデータを示すものとして付加される。一方、修飾語句“STATIC”は、データベースのテーブル内の格納されるデータのうち、更新頻度の低いデータを示すものとして付加される。
【００２９】
或るデータが、更新頻度の高いデータに該当するのか、あるいは更新頻度の低いデータに該当するのかは、データベースのテーブル作成時に決定する。例えば、在庫管理のデータベースにおいて、“商品名”は更新頻度の低いデータに該当するであろうし、“在庫数量”は更新頻度の高いデータに該当する。
【００３０】
SQL文に付加された修飾語句に基づいて、DBMSは適切なデータ配置を行う。すなわち、SQL文に付加された修飾語句を参照して、例えば、SLC型NAND フラッシュメモリに記憶させるのか、MLC型NAND フラッシュメモリに記憶させるのかを判別することができる。
【００３１】
図３は、修飾語句を参照して実行されるデータの配置を説明する図である。図３に示すように、テーブル内のデータは、付加された修飾語句にしたがって、記憶させるメモリが選択される。すなわち、更新頻度の高いデータについては、データテーブルを長寿命のストレージ上に作成する。長寿命のストレージとしては、例えば、SLC型NANDフラッシュメモリあるいはHDDが好適である。一方、更新頻度の低いデータについては、データテーブルを短寿命のストレージ上に作成する。短寿命のストレージとしては、例えば、MLC型NAND フラッシュメモリが好適である。また、SSDの構成もSLC型NAND フラッシュメモリとMLC型NAND フラッシュメモリの混載にすることも好適である。
【００３２】
このようにして、DBMSは、データテーブル内のデータの更新頻度の情報に応じた書込制御を行えるOSに対して、頻度情報を伝える等、OSのAPIレベルで可能な対応を採ることができる。
【００３３】
本実施形態によれば、NANDフラッシュメモリの寿命に影響を与える書き換えが頻繁に行われるデータか否かをユーザに近い部分で判断でき、下位層で書き込み頻度を判断する必要が無い。さらに、既存のハードウェアやOSによる長寿命化技術と競合せずに、NAND フラッシュメモリの長寿命化を図ることができる。
【００３４】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００３５】
１０・・・アプリケーションレイヤ、２０・・・ＡＰプラットフォームレイヤ、３０・・・OSレイヤ、４０・・・ハードウェアレイヤ。
【図１】
2012014632.tif 000003
【図２】
2012014632.tif 000004
【図３】
2012014632.tif 000005