昨日からRubyで書いていたデータ振り分け機能のプロトタイプが動作するようになった。もうちょっとエレガントな方法がありそうな気がするので、本番の実装は来週にする。
今回のポイントは、データの振り分け方の組み合わせを適切に切り替えられることだ。データ振り分け部はツリー構造になっていて、個々のノードは複数の下位ノードをもつ。
分配するときはデータ配列から一つずつ要素を取り出し、ルートノードに渡す。要素はツリーを下流に渡されつつ適切に振り分けられ、最下位のエンドノードに蓄積する。
ここで振り分けの方法は2種類ある。

  • データが来るごとに次々と別のノードに渡す。
  • データは同じノードに続けて渡す。そのノードが一杯になったら次のノードに移る。

このどちらかを適切に選べば良い。