- okachimachiorz
- 1756
- 0
- 0
- 0
@ashigeru 多層DAGの記述は、やっぱり中間層から作った方よいと思いますた。DAGを一定の範囲でDAGコンポネント化(業務TX)して、下位実装は2ステージ・コンパイルで展開する。ステージ1はMRの上位アルゴリズムへ展開。ステージ2はMRへの展開。(続
2010-07-16 21:34:31@ashigeru 最上位はコンポネントを「組み上げて」SCMレベル(レベル1程度)の業務フローを作る。んで、その最上位レベルと下位実装を同時にjobコントローラに食わせて、実行・運用・監視プロセスを走らせる。(続
2010-07-16 21:35:15@ashigeru 基本的にはSOAではなく、SCAレベルの設計を基本にして、業務プロセスの分割コンポネント化を行って、再利用性と品質を上げる。とにかく実装者の見通しをよくすることに注力する仕組みにしたい。
2010-07-16 21:35:41@ashigeru 第一世代では、「DAGコンポネント」の再利用、”統合”は発見的に行う感じでおk。第二世代では、最適化・統合自動化はコンパイラが実施する。っていうか、普通にDryadいきますよ、ってことでFA。
2010-07-16 21:36:37@okachimachiorz とりあえず1枚目: http://ashigeru.com/memo/adag2.png
2010-07-16 22:34:54@okachimachiorz Dryadはどのタイミングで出てくるか楽しみですね。あれは統合とかそういうのも考慮されてるものなんですか?
2010-07-16 22:39:04@okachimachiorz http://ashigeru.com/memo/adag3.png このケースってどういうセマンティクスですかね?
2010-07-16 23:10:17@ashigeru まず最初に循環するほうだけど、これは上位のTXの切り方がわるい。業務TXがこういう場合は、間違いなく上下を2つに分割する方が正しい。アトミック合成でなくて分割の方だと思う。あとは、仮にそれに気づかない場合にどう検出するかはやり方があるはず。
2010-07-16 23:29:26@ashigeru Dryadが統合をサポートしているかどうかは知りません><。・・・が、できていないと意味ないっす。手書き上等は勘弁してくれw。
2010-07-16 23:30:20@ashigeru んで多層になっている方の図は、いい感じですね。これだとSCA的にはマッチします。多分、世の中はこの方向で行くと思いますです。
2010-07-16 23:31:31@okachimachiorz Src/Sink#1が同じストレージでUpdate処理の場合って、分割するとセマンティクス変わっちゃいませんかね?ってか、もともとTx#1, #2で矛盾があるからそれが正しいのだと思いますけど。
2010-07-16 23:41:21@okachimachiorz もともと、多層になったDAGを描いてたときにCyclicグラフを意図せずに構築できることに気づいたんですよ…。Checkpointだと気づきにくいですけど、アトミック処理で考えると、気づかずにDAGを崩す方法が増えてるっぽいですね
2010-07-16 23:43:59@ashigeru うんにゃ。単純に前半MR終了と後半MR開始にそれぞれSource・Sinkをいれんといかんと思う。業務TX的には、ちゃんと4種類あるケースはある。セマンティクスは最初のTXのとらえ方がおかしい、とおもう。
2010-07-16 23:47:14@ashigeru 下位はDAGだけど,上位はCycleは普通にあると思う。ので、各vertexの開始条件、停止条件が大事。んで、大事なことだけど、Oozeの弱点ね。ここ。気づいてないひとおおいけど。
2010-07-16 23:49:59@okachimachiorz 前半MRと後半MRってのは…#1->#3, #2->#4 のことですか?ここでflushして部分的に確定させればセマンティクスは崩れないですけど、なんとなくそれってTx合成しても同じような
2010-07-16 23:56:43@okachimachiorz Cyclicを許すなら、部分閉路をいかに小さくできるか、ってのが課題になりそうな感じです。
2010-07-17 00:00:36@ashigeru あってます。>flushの話。んで、合成と違うのは、途中のreentrantが許されることができるってこと。#1>#3>#2>#4って普通にいる。分割すればOkだけど、下だと条件がかかる(でないと循環でアウト)
2010-07-17 00:03:09@ashigeru んーっていうか、上位DAGの状態監視が要るってことだと思う。2回、回って抜けるってのはあるからね。下位では判断できない。だから、前のtweetのように、job監視は上位と下位と両方の構造を渡さないとだめ。
2010-07-17 00:05:35@okachimachiorz あざす、了解です>途中のreentrantを許す。でもこれ、MR#4の最中にSrc#1が破壊されるとセマンティクス変わりませんか?と思ったけど、MR#4の最中にSrc#1が変わってもそのパスは原子性保証してないから関係ないですね。失礼しました
2010-07-17 00:11:02YES RT @ashigeru あざす、了解です>途中のreentrantを許す。でもこれ、MR#4の最中にSrc#1が破壊されるとセマンティクス変わりませんか?と思ったけど、MR#4の最中にSrc#1が変わってもそのパスは原子性保証してないから関係ないですね。
2010-07-17 00:13:33@okachimachiorz ですね>上位DAGの状態監視。どちらかというと「統合」のときに問題になると思ってて、Cyclicな部分は自身の閉路の中でしか統合できないはず、って感じです。アンローリングできるならまた別ですが。
2010-07-17 00:22:18@ashigeru うん。合ってると思うけど、閉路で解決するより、多分上位で解決した方が、「なんか起きたときにトレース」しやすいと思うよ。分割統治ですな。
2010-07-17 00:25:41