Docurain Labo

Docurainサービス開発日記

日本の全帳票を出力するのは俺達だ!!〜1時間あたり4億ページを出力し続けるシステム

前回更新から時間が空いてしまいましたが、1ヶ月前くらいに新しい成果が出たのでご報告します。

我々の開発している帳票システム、Docurainですが、日々パフォーマンス向上・安定性向上・機能拡張に勤しんでおります。 パフォーマンスに関しては前回約5,000ページのPDFファイルをExcelファイルから9秒で出力しましたが、よりパフォーマンス向上を目的としてチューニングと試験を繰り返してきました。

我々の帳票生成エンジンは分散処理をすることが可能です。理論的には、処理するマシンの数に応じて青天井でパフォーマンスが伸びていきます。が、実際に数百というオーダーのサーバを束ねて運用した経験のある方なら分かってもらえると思いますが、実際は様々なボトルネックがあらゆるところに存在し、「分散処理できれば性能は青天井」などというのは夢物語であります。

そういうわけで我々は分散処理できてるからOK、ではなく、理論通りにサービスがスケールしていくこと、そこでクリティカルなエラーが発生しないことを実際に何度も試験しています。

というわけで前置きが長くなりましたが、この度の試験で実測値で

395Mpph

という結果を得ることができました。

pphというのは何かと申しますと、これは分かりやすく「帳票のパフォーマンス」を測定する指標が無いので「1時間あたりPDFを何ページ出力できるか」を表した単位を作り、社内で使用しています。「pph」は「Pages Per Hour」の略です。

なので395Mpphというのは1時間に3億9500万ページ、約4億ページ弱のPDFを出力できるということになります。繰り返しますが、これは 理論値ではなくて実測値 です。

日本国内でPDF形式の帳票が何ページ出力されているかはよくわからないのですが、1時間4億ページ弱も出力できたらもしかしたら日本の国内需要を満たしてしまうのでは…?と考えてしまいますね。いや、根拠は無いですが。でもまぁ私個人の気持ちとしてはゆくゆくは日本全部は非現実的としても、日本の帳票出力の何割かの出力を担えるようになりたいと思い、開発を続けています。

あと、これは十分にバックエンドのサーバがスケールした状態での結果なので常時この値が出るわけではありません。が、我々は高いパフォーマンスが必要とされているのならば、何としてでもそれを提供したいと思っています。

以上、Docurainは1時間あたり4億ページ弱のPDFを出力し続けますよ!という紹介でした。