Mercurial > hg > Members > shoshi > jungle > jungle-core
view memo.txt @ 254:28d3a177f540 Implementation_of_communication
edit memo
author | tatsuki |
---|---|
date | Thu, 17 Nov 2016 18:46:04 +0900 |
parents | 7aa195d5bdab |
children | 1a5f3d3f3437 |
line wrap: on
line source
Thu Nov 17 18:36:13 JST 2016 差分List JungleTreeをRedBlackTreeにする それ用のAPIを設計する Logの書き出しの高速化 Buffering Mergeの実装 APIの設計 共通のRootからの複数の変更履歴を一つにまとめる JungleNodeに特定Objectをもたせれるようにする 金川 Fri Jul 18 19:59:20 JST 2014 servletから最初にBoardNameをKeyにTreeを持ってくる ここでConcarentHashMapを使っているが、Jungleそのものを使うことが可能である 名前とTreeRootの組からなるNodeを持つTreeを作る この木は名前でバランスさせる 変更したらそのRootを伝播させる Rootはatomicな変数で持つ 問題は、この名前と木の対応を誰が持つか 1Nodeで1つにするかThread毎に別に持つ、全体に1つでも問題ない? 2012/06/11 ・誰が Editor を提供する API を保持するべきか? ・Editor の役割 ・commit したら必要な Node を NodeProvider に push する。 ・ということは, 内部に NodeProvider への参照を保持してないといけない? NodeProvider へのリンクを保持しているのは Jungle である。 ・Jungle が NodeProvider を持っているのは正しいのか? TreeGroup でもいいのではないか? ・commit したら TreeGroup の情報は破壊される。つまり? commit は TreeGroup に対して行われる。 ・TreeGroup のメソッドで Tree を渡して Editor を作成するが良いか? ・tree を編集する ・Editor は TreeGroup が保持するとする。ならば、NodeProvider はどうするか? ・NodeFactory (?) をつくる? NodeProvider と何が違うのか? ・NodeProvider は、Tree/TreeNode/Link を作成する。 ・NodeProvider で、createTreeGroup , createTree , createTreeNode , createLink を依頼する ・初期では、パスの検索は深さ優先探索で行う ・TreeGroupについて、TreeGroupは最初に初期Treeを1つ作らなければならない? 2012/06/12 ・NodeTable と NodeTable の状態を同期させる。 ・Table , Record , PropertySequence をつくる、Record がひとつの Node に対応する ・これを用いて Node , TreeGroup , Tree , TreeNode , Link を作成する ・ Node : Record の Property で Attribute を表現 ・ TreeGroup : Node で表すべき? ・ Tree : TreeNode を継承している よって Node で表す、 Children や Links は PropertySequence による. ・ Link : Node で表す。 2012/06/15 ・Functional Java を使って PropertySequence を実装するといいかも? ・Record , PropertySequence の hashCode , equals の実装について、ちゃんとテストを作ること!(重要) ・なるべく、equals と hashCode はオーバーライドしないようにする、独自の比較メソッドを提供する。 ・Table , Record , PropertySequence に Atomic なオペレーションを追加する ・Table は Record の作成に CAS を追加する ・Record は Map と PropertySequence に CAS を追加する。 ・PropertySequence は・・・いらないか・・ ・Jungle の API から getTreeGroups を削除した ・Table , Record , PropertySequence では足りない、もっと美味いやりかたがあるはず 2012/06/19 ・Graph API を定義することにした ・ Graph , Vertex , Vertexes ・Neo4j で言うと ・ GraphDB , Node , Iterator<Relationship> ・とりあえずこれで実装してみる。 ・今日は、SimpleVertexes をほぼ完成させた、あとすこしとテストコードを追加すること。 2012/06/22 ・Vertexes のテストコードをほぼ仕上げた. ・次は,テストコードが正しいか,SimpleVertexes を動作させてみる. ・その次に,Jungle の実装を書く. 2012/06/25 ・Vertexes のテストコードが動いた. ・SimpleJungle などを GraphAPI を用いて記述する. ・SimpleTreeGroup , SimpleTree , SimpleNode をどうするか 2012/06/27 ・Graph を用いた SimpleJungle の設計をもっと考える 2012/06/28 ・SimpleJungle 実装を完成させた。テストコードはまだ書いていない ・SimpleEditor の部分がまだだった。明日完成させよう