説明

データベース装置

【課題】既存のハードウェアやOSによる長寿命化技術と競合せずに、NANDフラッシュメモリの長寿命化を図ることのできるデータベース装置を提供する。
【解決手段】プログラムされたコンピュータを内蔵し、あるいはプログラムされたコンピュータで制御し、NAND フラッシュメモリを搭載したデータベース装置において、アプリケーションプラットフォームが位置するAPプラットフォームレイヤとこのAPプラットフォームレイヤの下位レイヤに、それぞれ、NAND フラッシュメモリの制御機能を組み込み、データベースに取り込むデータを更新頻度に応じて分類化して、分類に対応した修飾語句を付加したSQL文で表現し、APプラットフォームレイヤでSQL文を解釈し、修飾語句に応じて、当該データのうち更新頻度の高いデータテーブルは長寿命のストレージ上に作成し、更新頻度の低いデータテーブルは長寿命のストレージよりも寿命の短いストレージ上に作成する。

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

【特許請求の範囲】
【請求項1】
プログラムされたコンピュータを内蔵し、あるいはプログラムされたコンピュータで制御し、NAND フラッシュメモリを搭載したデータベース装置において、
アプリケーションプラットフォームが位置するAPプラットフォームレイヤとこのAPプラットフォームレイヤの下位レイヤに、それぞれ、NAND フラッシュメモリの制御機能を組み込み、
データベースに取り込むデータを更新頻度に応じて分類化して、分類に対応した修飾語句を付加したSQL文で表現し、
前記APプラットフォームレイヤで前記SQL文を解釈し、修飾語句に応じて、当該データのうち更新頻度の高いデータテーブルは長寿命のストレージ上に作成し、更新頻度の低いデータテーブルは前記長寿命のストレージよりも寿命の短いストレージ上に作成するデータベース装置。
【請求項2】
前記APプラットフォームレイヤは、データファイルとデータ管理プログラムの組みから成るDBMS(Data Base Management System)である請求項1記載のデータベース装置。
【請求項3】
前記下位レイヤは、OSまたはコントローラである請求項1記載のデータベース装置。
【請求項4】
前記APプラットフォームレイヤに組み込むNANDフラッシュメモリの制御機能は、書き込みブロックの選別であり、前記下位レイヤに組み込むNANDフラッシュメモリの制御機能は、書き込みブロックの管理やエラー訂正、ドライバソフトウエアの管理である請求項2記載のデータベース装置。
【請求項5】
前記長寿命のストレージは、SLC(Single Level Cell)型NANDフラッシュメモリあるいはHDDなどで構成されている請求項2記載のデータベース装置。
【請求項6】
前記寿命の短いストレージは、MLC(Multi Level Cell)型NANDフラッシュメモリなどで構成されている請求項2記載のデータベース装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate