出典について
この記事はInfluxDB BlogのInfluxDB 0.9.3 Released With Compression, Improved Write Throughput And Migration From 0.8(2015/08/26)を翻訳したものです。
本日我々は、InfluxDB v0.9.3をリリースした。このバージョンでは、書込みのスループット、圧縮、0.8系からの移行に関して大きな改善が加えられ、また多くのバグ修正といくつかの小さな機能追加が行われた。いくつか大きな変更があるのでCHANGELOGをアップグレードする前に注意深く読んでいただきたい。このリリースによってピーク時の書込みスループットが2倍以上改善し、ディスク容量が50%以上削減された。
書込みの性能および圧縮
書込み性能が大きく改善した。手元のMacbook Proでテストを実行し、1億のデータポイントを100万のユニークな(1シリーズあたり1000ポイント)シリーズに書込み、データはHTTPエンドポイントに対してリクエストあたり5000ポイントをバッチ処理させたところ、0.9.2では下記の通りの結果となった。
最も悪いレスポンス:
3.75s
3.71s
3.71s
秒間約9万5千ポイントの平均挿入レートに対して、平均レスポンスタイムは525ms
でテストは1052秒であった。0.9.2におけるレスポンスが最低となるケースは、書込みのタイムアウトや、Continuous Queryに対して大きな問題を引き起こしていた。0.9.3のリリースではWALをBoltDBの外側へ移すことによりこれらの問題に優先的に対処することを決断した。
0.9.3のリリースで下記のスコアとなった
最も悪いレスポンス:
889 ms
687 ms
644 ms
秒間23万3千ポイントの平均挿入レートに対して、平均レスポンスタイムは205ms
でテストは428秒であった。これをEC2のi2.xlargeインスタンス上においても実行したところ、秒間50万ポイント以上で25億ポイントにわたって書込みが行われた。
このテストでは、InfluxDBの負荷ツールを利用した。我々はこれを、異なるデータ形状や、書込み負荷がかかっている最中のクエリの実行などに対応した負荷テストシナリオに対して拡張していくつもりである。
これらのデータは良くなり始めたように見えるが、これはバースト時の性能のみに対するものであることを述べておかなければならない。このレベルの継続的な書込み負荷は、最終的にBoltDBのインデックスが追いつけなくなりサーバーを参らせる。
このリリースで圧縮機能も追加した。先程の1億ポイントのテストにおけるBoltDBのディスク上のサイズは0.9.2で7GBだったが、0.9.3のリリースで4GBとなった。BoltDBの動作上、1Gの次の増分は常に1GB単位で行われるため、7GBと4GBはサイズを完全に正確に表したものではない。ディスク上のサイズが同じ状態でもまだデータが書込める。
圧縮および書込み性能に関しては今後も改善していくつもりである。これは長旅の第一歩にすぎない。
0.9系の以前のバージョンからのアップグレード
0.9系の以前のバージョンからアップグレードする場合は、設定ファイルを更新する必要があるだろう。とりわけ、UDPおよびGraphiteの入力(訳注: 参照先のソースが随時変更されるため適宜該当箇所を参照のこと)である。ラインプロトコル(訳注:Line Protocol参照)も変更を行ったため、整数データの書込みを行っていれば、このInfluxDBのアップグレードに伴ってクライアントも更新する必要がある。
書込みおよびデータ保存(圧縮)に関してすぐには効果を得られないだろう。0.9.3は新旧のストレージエンジンが同時に動作する。アップグレードしたら、次のタイムブロックに対する新しいシャードが作成されるまでは古いストレージエンジンが利用される。これには最大7日間かかる。それまでは0.9.2で使っていたものと同じストレージエンジンが使われる。
このアップグレードは注意して実施して欲しい。ストレージエンジンが大幅に変更されている為、データのバックアップをとり、慎重に使うのが良いだろう。
0.8系からのアップグレード
このリリースで0.8から0.9.3への移行パスを用意した。0.8.9へアップグレードし、エクスポートツールを実行し、0.9.3へのインポートを実行するというプロセスである。詳細は0.8からのアップグレードに関するreadmeを参照して欲しい。
また、0.9系ではいくつか欠けている機能があり、一部の人々がアップグレードを遅らせているであろうことを述べる必要がある。とりわけ、TOP関数、時間の降順のorder by、多数の計測値に対してダウンサンプリングする為のContinuous Queryの有効化を追加する必要がある。
これらの3つの機能については0.9.4のサイクルの中で取組み始めている。9月10日のリリースか、10月1日の0.9.5のリリースでリリースされるだろう。
クラスタリングはどうなった?
このリリースでクラスタリングへのいくつかの取組みがなされたが、まだ準備完了ではない。レプリケーションファクターが変更可能な状態で3ノード以上のクラスタを動作させられなければならない。しかしながら、全てのクエリが分配されるように実装されていない。クラスタにおいてシャードを移動しサーバーを交換するなどのいくつかの機能がない状態でもある。0.9.4のサイクルでこの取組みに着手している。クラスタリングはすぐに完全にテストできる状態になるだろう。しかしながら、アンチエントロピーは0.9.5のリリースサイクルまで着手されない予定で、これは長時間障害に対する自動回復を行う為には必須となるものである。
結論
InfluxDBをダウンロードするか、クラウド上のマネージドInfluxDBサーバーの無料トライアルへサインアップすることができる。
また、InfluxDBに関してお役に立てるよう、機能リクエスト、性能のチューニング、高度な設定に関するエキスパートプロフェッショナルサービスを提供していることもお伝えしよう。あなたのプロジェクトを加速する為にどのようにお役に立てるかを、よりご理解いただく為には、support@influxdb.comにご連絡いただきたい。