BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース ScyllaDBがNoSQLデータベースのメジャーリリースを発表,コンカレントOLTPとOLAPをサポート

ScyllaDBがNoSQLデータベースのメジャーリリースを発表,コンカレントOLTPとOLAPをサポート

原文(投稿日:2018/12/17)へのリンク

毎年開催されるScylla Summitカンファレンスにおいて、ScyllaDBが,同社のフラッグシッププロダクトであるScyllaDB Open Sourceのバージョン3.0をリリースした。プレスリリースによると,

今回のリリースは重要なマイルストンです。Apache Cassandraの代替として,Scylla Open Sourceは,NoSQLコミュニティが待ち望んでいた実運用レベルの機能を加えると同時に,利用性の改善と運用オーバヘッドの最小化を両立する新機能を導入しています。

今回ScyllaDBに導入された新機能としては,コンカレントOLTPおよびOLAP,マテリアライズドビュー,セカンダリインデックス,Cassandra 3.xファイルフォーマットとの互換性などがある。

マルチコアハードウェア上で最大限のパフォーマンスを実現するため,ScyllaDBは,ハイパフォーマンスサーバアプリケーション用の高度なオープンソースフレームワークであるSeastarを採用している。Seastarは次のようなアーキテクチャ上の革新を特徴とする。

始めるには

ScyllaDBのオープンソース版をダウンロードして開始する方法はいくつかあるが,ScyllaDBではDockerの使用を推奨している。例えば,Dockerを使ってScyllaDBの単一インスタンスを起動するには,次のようにすればよい。

    
$ docker run --name scylla -d scylladb/scylla
    

Dockerが必要なファイルをダウンロードして抽出した後,ScyllaDBが使用可能になる。次のDockerコマンドはCassandra Query LanguageシェルのCQLshを起動し,通常の管理ないしデータベース操作を行うScyllaDBコマンドを使用可能にするものだ。

    
$ docker exec -it scylla cqlsh
    

Cassandraを使用しているユーザのために,ScyllaDBでは、Cassandraからの移行プロセスの概要を説明している。

ScyllaDBにはエンタープライズエディションもあり,クラスタ管理やタスクオートメーション,24/7のミッションクリティカルのサポート,長期サポート,独自ライセンスなどのメリットを提供している。ScyllaDBのロードマップは,ScyllaDBオープンソースとエンタープライズエディションで今後提供される機能のプレビューになっている。

CEOのDor Laor氏が,今回の最新リリースについてインタビューに応じてくれた。

InfoQ: 他のNoSQLデータベースではなく,Apache Cassandraに基づいてScyllaDBを開発した発想はどこから来たものなのでしょう?

Dor Laor: よい質問ですね。開発を始めた2014年頃,Cassandraには大きなユーザベースがありました。Cassandraは水平スケーリングなどにおいて優れた能力を持っていましたが,当時の私はパフォーマンスの問題で悩まされていました。そこで私たちは,Cassandraのよい部分をエミュレートすることにしたのです。例えば,

  • マスターレスレプリケーション
  • 線形な水平スケーラビリティ
  • グローバルディストリビューション
  • チューニング可能な一貫性
  • シンプルで分かりやすいデータモデル

これらすべてが,分散データベースの構築に適した機能だったのです。しかし,その一方で,私たちはCassandraの限界にも注目しながら作業を進めました。ベースラインとして優れたものであることは分かっていましたが,改善の余地がたくさんあることも知っていました。

InfoQ: CassandraはJavaで書かれています。ScyllaDBの記述言語としてC++を選んだのはなぜですか?

Laor: C++はパワフルで速く,効率的だからです。大量のメモリを細かい粒度と正確性を持って,低レベルで管理するには,C++が最適なのです。

InfoQ: 他のNoSQLデータベースに比較して,ScyllaDBがユニークな点は何ですか?

Laor: 非常に高いスループットや一貫した低レイテンシといったことを除けば,スケールアップやスケールアウトを念頭に設計された自己最適化データベースである点です。

最適化について説明しましょう。Cassandraやその他の多くのデータベースに見られた大きな問題は,手作業によるパフォーマンスのチューニングを行うために,多くの専門知識と時間が必要なことでした。ですからScyllaでは,最初から自己チューニングと自己最適化の機能を持たせることにしたのです。

Scyllaは,オペレーティングシステムに関する深い知識を持ち,制御理論を十分に理解している人々によって書かれています。このような知識は,Seastar上に構築された非共有,コア単位のシャード,非同期といったアーキテクチャに始まり,適応性に富んだ自動チューニングに代表される管理容易性(ease-of-administration)に至るまで,Scyllaが現代的なマルチコア/マルチCPUシステムのメリットをいかに活用しているか,という点に反映されています。他のデータベース開発者の多くは,これほど低レベルな観点から始めることはまずありません。その結果がパフォーマンスや,水平と垂直両方のスケーラビリティに現れているのです。

これがユーザにとって意味するものは,サーバファームの設置面積の劇的な縮小,運用コストの大幅な削減に加えて,システムからはるかに高いパフォーマンスを引き出すことができる,ということです。

InfoQ: ScyllaDBの今後の展望について教えてください。

Laor: CPUやI/Oスケジューラといったシステムアーキテクチャをさらに深くコントロールして、同一データクラスタ上でOLTPとOLAPの両方を共有できるような、ユニークな手段を新たに提供したいと思っています。これによってデータベース管理者は、ロールを作成してユーザSLA毎にアサインすることで、システム利用に関してどのアクティビティが優先されるかを、これまでよりはるかに詳細に管理できるようになります。

リアルタイムワークロードには最高のプライオリティを設定し、分析など他のワークロードにはベストエフォートのアプローチを適用して、容量に余裕のある場合のみ実行するようにするのです。分析処理がトランザクションデータベースに影響を与えないために、まったく別のクラスタ上にデータセット全体をクローンして管理せざるを得ない現在の状況に比べれば、大きな改善になります。

先日のEarly Access ProgramでローンチしたScylla Cloudで、データベース・アズ・ア・サービス(DBaaS)市場に打って出ることも考えています。Scylla Enterpriseデータベースを基盤とするScylla Cloudは、極めて少ないマシンで高いスループットを実現することで、競争力の高いサービスになるでしょう - 3倍優れたレイテンシ、5分の1のコスト、そして何よりも、ベンダにロックインされることがないのです。

私たちが注目しているもうひとつの分野は、ハイブリッドストレージ・デプロイメントです。私たちはすでに、ミッションクリティカルなデータテーブルの高速読み込みアクセスを実現するインメモリオプションを備えた、Scylla Enterprise 2018.1.7をリリースしています。これは今後数多く現れると私たちが予測している、ソリッドステートドライブと永続化メモリの出現による高密度化とハイパフォーマンスなどを特徴として備えた、ハイブリッドメモリと階層化ストレージによるデプロイメントオプションの最初のひとつに過ぎません、

さらに、特に企業ユーザ向けには、保存データの暗号化(encryption-at-rest)からロールベースのアクセス管理(RBAC)やnodetool接続のセキュア化、さらにはKerberosやLDAP(Lightweight directory access protocol)との統合まで、さまざまなセキュリティ機能を計画しています。

これらを含む将来的な機能については、公開されているロードマップをご覧ください。

この記事に星をつける

おすすめ度
スタイル

BT