ソフトウェアの性能を極限まで追求する「TC + WAL」ストレージエンジン

  1. ホーム
  2. >
  3. 技術レポート
  4. >
  5. 「TC + WAL」ストレージエンジン

技術レポート

「TripletaiL」開発フレームワーク

「TripletaiL」開発フレームワーク
ユミルリンク10年の歴史と共に

Erlang性能分析ツール

Erlang性能分析ツール
高い要求が生み出した性能分析ツール

高速クロス集計インデックス

高速クロス集計インデックス
求められたハードルは100万規模

MTA(MessageTransferAgent)

MTA
(MessageTransferAgent)
大量メール配信の高速化に挑む

SMTP/DNSシミュレーションツール

SMTP/DNSシミュレーションツール
配信性能の鍵はここにある

「TC + WAL」ストレージエンジン

「TC + WAL」ストレージエンジン
ハイパフォーマンスを極めろ

最新情報をお届けします ユミマガ

「TC + WAL」ストレージエンジン ハイパフォーマンスを極めろ

「TC + WAL」ストレージエンジン

Erlang(アーラン)言語用Tokyo Cabinetドライバに耐障害性を独自に追加したもの。Tokyo Cabinet(トウキョウ キャビネット)はオープンソースのストレージエンジン。

PERSONALITY

自社開発ソフトウェア製品の内部設計、実装、プログラム改修を行っている。

MySQLを超える処理速度を求めて。
ユミルリンクでは、データベース管理システムとして、主にMySQL (マイエスキューエル:オープンソースで開発されているリレーショナルデータベースを管理・運営するためのシステム)を使っていました。 MySQLは、機能が豊富で動作速度も悪くはないのですが、大量のデータを高速に処理するためには速度が追いつかないことがあります。そこで、機能は若干劣るものの、より動作が高速であるTokyoCabinetというデータベースエンジンを採用し、プログラム言語の一つであるErlangから利用できるようにした上で、必要な機能を追加していくことになりました。 これが、yerltc(WAL機能付きのErlang用TokyoCabinetドライバ)開発プロジェクトの始まりです。
完成寸前でのやり直しも、厭わなかった。

yerltcには、3つの高いハードルが求められました。一つは、Tokyo Cabinetを用いたソフトウェアの開発が困難なものにならないように、必要な機能を持っていること。そして、大量のデータをMySQLよりも高速に処理できること。さらに、不意の電源切断やサーバーのハードウェア故障などが起きてもデータベースが損傷を受けないこと。これらを同時に満たすものは簡単なことではありませんでした。
プログラムが完成することになってから、新しい高速化の手法が使えるようになり、ほとんど最初から設計しなおしたことさえ何度かありました。

最速・最強のデータベースを目指して
yerltcでは、TokyoCabinet本体に手を入れることなく、次の二つの機能を追加しています。一つは、WAL(Write-Ahead Logging、ログ先方書き込み)と呼ばれている機能で、これはデータベースの変更内容を別に記録しておき、データベースが破損した際には、ただちに破損する前の状態に戻せるようにするための機能です。もう一つは、テーブル管理機能です。データベースでは、データを種類ごとに分けて格納しますが、分けられたそれぞれの部分を統合的に取り扱うための機能がそれに当たります。
「快適なソフトウェアを実現させたい。」

ユミルリンクのお客様には、大量のデータを扱うお客様も多くいらっしゃいます。データ量が少ないうちは快適なのですが、データ量が多くなると、インポート処理や絞り込み、配信処理など、さまざまな操作に時間がかかるようになってしまいます。
こういった処理にyerltcを利用していくことで、処理時間を大幅に短縮していきたいです。データ量が多くなったとしても、快適に利用いただける、そんなソフトウェアを実現させたいです。