3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

HarperDBとは何か、Akamai Cloud Computingと連携した強みを理解する

Last updated at Posted at 2024-08-02

HarperDB とは

image.png

HarperDBとは、SQL、NewSQL、および MongoDB などの NoSQL 製品の機能を拡張および融合するためにゼロから構築されたDistributed Edge Databaseです。
Akamai Cloud Computing上で展開することができ、HarperDBのインスタンスは複数のリージョンに跨いで構成することができるため、グローバルに分散されたデータベースを簡単に用意することができます。
また、HarperDBは単なるデータベースだけではなく、HarperDBインスタンス上にクラスタリングされたアプリケーションの展開も行うことができます。
そのため、グローバルで同一のデータを利用して低レイテンシーでAPIを提供したいサービスなどの基盤に最適なプラットフォームです。

Akamai Cloud Computing に展開できるHarperDB

HarperDBは、Windows, Linux, Mac 上でも構築することができ(Install HarperDB
)、ネットワークを意識せず、様々な基盤を跨いだデータベースを構築することができるのが特徴です。

AkamaiとHarperDBはテクノロジーパートナーであり、Akamaiにて提供するHarperDBでは HarperDB Cloud としてAkamai Cloud Computing 上に展開されるマネージドサービスとして統合されております。
HarperDB Cloud はマネージド・サービスなのでインストールスクリプトを実行したり、OS等のメンテナンスを行う必要がありません。HarperDB の管理はHarperDB Studioから行うこともできます。。

image.png

HarperDBの仕組み

HarperDBのストレージアルゴリズムは、HarperDBのコアの要素となり、ダイナミックスキーマやその他すべてのユーザー向け機能を実現しています。HarperDBは、キーバリューストアであるLightning Memory-Mapped Database (LMDB)の上に構築されており、ストレージアルゴリズムによってデータを行/オブジェクトとしてテーブルに格納することができます。
このアルゴリズムは、個々のクエリ言語に対応できるようデータベースを抽象化して設計されており、SQLやNoSQLの言語を利用してデータを取り出す事が可能です。データベースへのアクセスには様々な言語からアクセスするためのSDK libraries、 BIツールなどから接続するためのDriversが用意されています。
また、HarperDBは各ノードごとにACIDに独立して準拠しています。
そのため、各ノードは読み込み、書き込みが独立して動作し、他のノードから読み書きをロックされることもありません。
HarperDBの各ノードは単一な書き込みプロセスを持ち、書き込みが受信された順序で処理が行われることを保証します。
書き込みされたデータはメモリに保存し、すぐにディスクにフラッシュされ、耐久性が確保されます。
ただし、ノード間でのACID準拠は保証されず、最終的な一貫性が「最後に書き込まれたデータが優先される」という方式で変更が伝播されます。

HarperDB Storage Algorithm

harperdb1

分散されたHarperDBインスタンス間のデータの同期はNATSを利用することでレプリケーションを実現しています。
そのため、メッシュ構成でデータベースを構築することが可能です。

harperdb3

データが取り込まれた際には自動的にDynamic Schemaによりインデックスが付与されます。データ型に依存することがないため、様々なデータでHarperDBを活用することができます。

インデックスの付与された単一テーブルの例

harperdb2

Akamai Cloud Computing 上にHarperDBを構築するメリット

HarperDBをAkamai Cloud Computingに構築することによりグローバルで低レイテンシーのアプリケーションを展開することができます。

Akamai Cloud Computingは執筆時点で27リージョンに展開しており、Generalized Edge Compute(Gecko)という構想を立ち上げ数多くの都市にコンピューティングを展開する予定です。

各HarperDBへのインスタンスはAkamai GTMによるDNSロードバランシングにより最適なロケーションへアクセスすることができるようになります。

image.png

HarperDB Applicationの活用

HarperDBは単なる分散データベースだけではなく、データベースが構築されるインスタンスにアプリケーションを構築することもできます。
HarperDB Applicationは、データベースの内容を取得するためのRestAPIを作成したり、JWT認証を行ったりなど、簡単に構築できるスキーマが用意されております。
また、カスタム機能を実装したい場合にはJavascriptにてコードを記載することで、要件に応じたアプリケーションも作成することができます。

Akamai CDNと親和性の高いHarperDB Applicationの1つの機能としてCachingがあります。
一部のAPIでは頻繁に値が変更されるため、長いTTLを設定できず、CDNのキャッシュによる高いオフロード率が確保できないケースがあります。
HarperDB上にキャッシュレイヤーを構築することで、APIやGraphQL、DBキャッシュなどを行うことができ、複数のユーザーや異なる地域でのデータ提供のユースケースに対して、低レイテンシーでデータを提供することができるようになります。

キャッシュ機能の実装はHarperDB Distributed Cacheとして提供しておりますので、ぜひご相談ください。

harperdb3

image.png

パフォーマンス

HarperDBはパフォーマンスにも優れており、人気のあるNoSQL製品であるMongoDBと比較しても引けを取らない性能を発揮します。

HarperDB vs. MongoDB

MongoDBはとても素晴らしい性能ですが、HarperDBはMongoDBより「読み取りが最大98倍」「書き込みが最大20倍」高速であることが上記リンク先のレポートから確認ができます。

このベンチマークはHarperDBとMongoDBの単一ノードに対して、データの読み取りと書き込みを複数パターン試験したものです。
また、テストにはApache JMeterを利用しており、HarperDBの接続はREST API、MongoDBの接続はMongoDB Java Driversを利用しています。

レポート結果から、書き込み性能に関しても優れているのですが、HarperDBは特に読み込み性能が優れており、参照負荷の高いサービスにも向いていることがわかります。

image.png

レポートのダウンロード

まとめ

AkamaiとHarperDBを組み合わせることで、分散されたコンピューティングリソースを活かして、グローバルで低レイテンシーなサービスを提供することが可能になります。
HarperDB Cloudの環境はAkamaiから纏めてご提供することができますので、ぜひ様々なユースケースにてご相談いただければと思います。

Akamai はCDN、セキュリティ、クラウドサービスを通じ、オンラインライフの力となり守っています。本稿でご紹介したような課題やご相談があれば、お気軽にお問い合わせください

関連記事

アカマイ・テクノロジーズ合同会社はQiitaでAkamai Cloud Computing Services関連など開発者向けの記事を掲載しております。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?