近年,大量のデータを高速に処理することが必要な場面が増え,分散KVS(Key Value Store)と呼ばれるNoSQL型データベース管理システムが注目され始めた.分散KVSに格納された大容量データを効率よく活用するには,データの並列処理が必要となるが,分散KVSから対象データを取り出した後,再度データを分散させて並列処理を行うと,処理効率が悪くなってしまう.そこで本研究では,大規模データを扱う分散KVSであるApache Cassandraに着目し,大規模データをより高速に処理するための手法を提案する.Cassandraに保存された値に対して任意の処理を行うには,値を取得し,その後処理を行うのが通常である.しかし,Cassandraの読み出し性能があまり高くない上に,取得する値のデータ量が大きくなると通信量が多くなり処理が遅くなることが予想される.そこで本研究では,Cassandraに保存された値に対し任意の処理を効率よく行えるようにするために,まず,UDFと類似した機能をCassandraに追加する.この機能を利用し,各データノード上でユーザが指定した処理を行い結果のみをクライアントに返す手法を提案する.これにより通信データ量を抑えることができ,また,異なる複数の値に対して並列に処理を実行可能になり,より高速化できる.本稿では提案手法の実装の第一段階として,1つの値に対し,任意の処理を行い結果のみを取得する機能を実装し,その特性を評価した.その結果,本提案手法は処理対象の値のサイズが比較的大きい場合には有効であることが示せたと同時に,その一貫性レベルを調整することで処理の高速化が可能であることを確認した.
展开▼