Web Application Development - SitePen

WebアプリケーションのクライアントサイドのみならずサーバサイドもJavaScriptで実装しようという試みがあり、サーバサイドJavaScriptの標準化作業が進められているなど、一定の支持を集めている。こうした試みのひとつに、データの永続化を実現するために従来のRDBMSではなく、JSONをやりとりするデータ形式としたWebアプリケーション向けのデータベース開発が進められており、実装自身もJavaScriptで実装されているものがある。そうした取り組みのひとつがPersevereだ。Dojo関連プロジェクトのひとつと位置づけられている。

Webアプリケーションに特化したデータベースは今にはじまったものではないが、そうしたデータベースとしては代表的なもののひとつであるApache CouchDBをJavaScriptで実装してみてはどうかという試みBrowserCouchが発表されるなど、ここのところ活発さを増している。クライアントサイドもサーバサイドもJavaScriptで実装されたシステムで、従来のRDBMSと比較して高速に動作する、またはそうなるだろうと期待されている。

Kris Zyp氏はSitePen BlogにおいてJavaScriptDB: Persevere’s New High-Performance Storage Engineのタイトルのもと、最新のベータ版に実装された新しいオブジェクトストレージエンジンJavaScriptDBが高いパフォーマンスとスケーラビリティを実現したと発表した。比較対象としてPHP+MySQLとCouchDBを使った結果が掲載されているが、MySQLよりも40%、CouchDBよりも249%性能が優れていたと説明されている。なお、CouchDBの結果に関してはバージョンが古く、しかもパフォーマンス試験に使うのに適した環境だったとえはいえなかったという補説が入っており、もっと高速な結果が期待できるようだ。

ブログではJavaScriptDBで高速化が実現できた理由として次の技術が紹介されている。

  • ダイレクトデータバウンドオブジェクトレプリゼンテーション
  • Copy-on-Wirteを使ったオブジェクトの共有キャッシュ
  • アペンドベースのデータベースストレージ
  • アダプティブオンデマンドコンカレントインデックス
  • インテグリティモードにおけるバッチ書き込み
  • プラガブルストレージ

公開されたJavaScriptDBは今回がはじめての公開で、今後さらに改善を実施していく余地があるという。JavaScriptDBはスケーラビリティも実現されており、9,000ペタバイトまでのJSON/JSやバイナリデータがサポートされている。