TiDB User Day 2024のアーカイブ動画を公開中!詳細を見る

事例公開日:2023年1月31日

NFTSCAN TECHNOLOGY社が提供する「NFTScan」は、Ethereum、Solana、BNB Chainなどの主要なブロックチェーンネットワークへのアクセスをサポートするマルチチェーンNFTデータ基盤です。Web3ユーザー向けの効率的で簡潔なNFT資産検索・クエリサービス、Web3開発者向けのOpenAPIプラットフォーム、さらに金融テクノロジー企業向けのNFTデータ分析サービスを提供しています。

従来のMySQLソリューションでの課題

従来、NFTScanは、Amazon Web Services (AWS) 上のMySQLとElasticsearchを基幹データベース・ソリューションとして使用していました。MySQLには、企業やエンドユーザーからの分析・処理用データを含むすべてのアプリケーションデータが保存されていました。NFTの取引や資産に関連するデータは、多次元クエリに対応するため、完全なインデックスを持つ形でElasticsearchに同期されました。

このソリューションは良かったのですが、NFTScanのビジネスの成長に対応しきれませんでした。以下のような欠点があったのです。

  • スケーラビリティが乏しく、ストレージやメンテナンスのコストが高い。新しいブロックチェーンデータの量は毎日急激に増加しましたが、MySQLは増加するワークロードに対処するために自動的にスケールアウトすることができませんでした。代わりに、NFTScanは手動でテーブルをシャーディングし、新しいMySQLクラスタを追加して、CPUとメモリの使用を共有し、分散させる必要がありました。このため、ストレージとメンテナンスのコストが大幅に増加しました。
  • 稼働率が落ちてコスト高に。ElasticsearchはAWS上に導入されていました。AWSのネイティブクラスタ構成には限界があるため、NFTScanはオンラインクエリサービスを提供するために、Elasticsearch用に高価なデータノードを追加する必要がありました。そのため、コストが上昇し、利用率が低下していたのです。
  • 繰返す精度エラー。Elasticsearchのデータベースは計算よりも検索に特化して設計されているため、集計計算の精度誤差が発生していました。

TiDBを選んだ理由

NFTScanは、1ヶ月近くの調査とテストの末、レガシーデータベースシステムを置き換えるために、次のような理由でTiDBを選択しました。

  • MySQLと高い互換性があります。NFTScanは、TiDBに簡単にデータを移行することができました。また、MySQLとの互換性により、同社の研究開発チームが新しいデータベースを使用するための時間と労力を大幅に削減することができました。
  • 弾力的に拡張できるため、読み取りと書き込みのトラフィックのリアルタイムな変化に応じて、サーバーリソースを柔軟に拡張することができます。これにより、リソース効率を最大化することができました。
  • 演算機能とストレージを分離した分散型アーキテクチャを採用。NFTScanは、変化するビジネスニーズに応じて、演算リソースとストレージリソースを別々にスケールインまたはスケールアウトすることができます。これにより、ストレージの効率が向上し、コストを削減することができました。
  • トランザクションと分析ワークロードの両方を同時に処理できる簡素化されたHTAPアーキテクチャを有しています。これは、NFTScanの増大するビジネスニーズに完璧に対応するだけでなく、全体的な運用コストを削減することにもつながっています。
  • データレプリケーション機構と内蔵の障害復旧ソリューションにより、高い可用性を備えています。2021年のAWS東京リージョンの障害の際、TiDBは18秒で自動復旧し、NFTScanがその災害を乗り切るのに貢献しました。

TiDBへの移行

NFTScanは、基盤となるデータベースシステムをすでにTiDBに移行しました。TiDBサーバ2台、TiKVサーバ9台、TiFlashサーバ2台を、同じリージョンの3つのアベイラビリティゾーンに配置しています。

2022年11月現在、同社のTiDBデータベースには約6テラバイトのビジネスデータが保存されています。1秒あたりのクエリ数 (QPS) は5,000に達し、平均クエリ時間は40msとなっています。さまざまなアプリケーションがTiDB上で安定的に稼働しています。

NFTScanが移行時に印象的だったこと

NFTScanによると、TiDBの性能だけではなく、データ移行のスムーズさにも感心しているとのことです。

TiDBは、DumplingTiDB Data Migration (DM) といった一連のデータ同期用のスイートを提供し、お客様の履歴データをMySQLからTiDBに移行する支援を行っています。例えば、NFTScanのビジネスデータの中には、直接TiDBに移行できないものもありますが、その場合は、事前にその計画を調整しなければなりません。このような場合でも、TiDBの同期ツールは大量のデータを同時に書き込むことができます。リアルタイムのNFTデータを解析して格納する場合、従来と比較して実行効率が約30%向上しました。

TiDBのオンラインスキーマ更新によって、NFTScanは移行中にフィールドの変更やインデックスの非同期追加などのデータ定義言語 (DDL) 操作を、テーブル全体の読み込みや書き込みをブロックすることなく実行することができるようになりました。このことは、ビジネスロジックが変更された際のデータスキーマの柔軟性を大きく向上させます。

NFTScanがTiDBを使用して印象的だったこと

TiDBは多次元リアルタイムクエリをサポートしており、クエリ時間が短いのが特徴です。これは、NFTScanのコア要件である高スループットと低レイテンシーを完全に満たしています。ビジネス側のAPIサービスを例にとってみましょう。平均クエリ時間は10-100msから10ms以下に短縮されました。このようなクエリ速度は、1,000QPSを処理しても変わらず安定したままです。

TiDBに内蔵されたカラムナストレージサーバーであるTiFlashは、分析ワークロードを効率的に処理します。例えば、数億行のテーブルに対して複雑なクエリを実行し、数秒で結果を得ることができます。

TiDBのスマートSQLオプティマイザーは、データ分布に応じて最も費用対効果の高いデータクエリの実行プランを選択することができるため、開発者は柔軟にSQL実行プランを調整し、最適化することが可能です。

まとめ

NFTScanは、TiDBを使用することで、データの保存、処理、分析能力を拡大し、ストレージとメンテナンスコストを削減し、より効率的なサービス性能を実現しました。また、TiDBのHTAP機能は、同社の増大するビジネスニーズに完璧に応えています。今後、NFTScanはTiDB上で動作するデータサービスを増やし、PingCAPとの協力関係を深めることを期待しています。

※この記事は、Virtual HTAP Summit 2022でのCathy Rayの講演をもとに作成しています。

NFTScan