Asakusa Framework Advent Calendar 2016の12日目です。
今日は、2016/12/6にリリースされたAsakusaFW 0.9.0のAsakusa on M3BPのWindGateダイレクト・モードについてです。
Asakusa on M3BPでもWindGate JDBC(RDBへのアクセス)は使えます。
ただ、WindGateの実行は、Asakusaアプリケーション本体とは別フェーズで実行されます。
例えば複数のテーブルを読み込むとき、全テーブルを読み終わらないと次のフェーズ(アプリケーション本体の実行)に移りません。つまり、1つだけデータ量の多いテーブルがあると、その読み込みに引きずられて全体が遅くなってしまうことになります。
そこで今回、Asakusa on M3BPではWindGateダイレクト・モードというものが出来るようになりました。
(これはAsakusa on M3BPの機能なので、Asakusa on Spark等では使えません)
(また、WindGateのOracleダイレクト・パス・インサート機能と名前は似ています^^;が、無関係の機能です)
WindGateダイレクトモードでは、RDBへのアクセスを、専用のフェーズでなくアプリケーション本体の一部として実行します。
つまり、読み終わったテーブルのデータを使って処理を実行していきます。このため、1つだけデータ量が多いテーブルがあっても、出来る処理は先に実行するので、全体として実行時間が短くなる(だろう)という訳です。