# HG changeset patch # User Nobuyasu Oshiro # Date 1391388196 -32400 # Node ID 04f63b011feeeee35a841f55469994da09b90401 # Parent bd73f0e1cdd465ccbc39e1e785fb23acc480cf44 Writed description of merge diff -r bd73f0e1cdd4 -r 04f63b011fee slides/graffle/bulletinboard.graffle --- a/slides/graffle/bulletinboard.graffle Mon Feb 03 08:40:32 2014 +0900 +++ b/slides/graffle/bulletinboard.graffle Mon Feb 03 09:43:16 2014 +0900 @@ -46,7 +46,7 @@ Creator Oshiro Nobuyasu DisplayScale - 1 0/72 in = 1 0/72 in + 1 0/72 in = 1.0000 in GraphDocumentVersion 8 GraphicsList @@ -264,8 +264,8 @@ 43 Points - {269.06222126362366, 212.25858455839085} - {357.58971930282109, 301.53530614616898} + {269.06221111285691, 212.25858903927798} + {357.58966362040229, 301.5353307583095} Style @@ -299,8 +299,8 @@ 42 Points - {257.03808289316225, 215.66789461414629} - {284.29360483025704, 298.12599034636082} + {257.03804122796947, 215.66790079569958} + {284.29341568798242, 298.12601827059672} Style @@ -334,8 +334,8 @@ 41 Points - {239.86847523687476, 215.37560954206259} - {205.70266092776362, 298.41835165715531} + {239.86843791101938, 215.3756026695975} + {205.70248887399381, 298.41832003853915} Style @@ -369,8 +369,8 @@ 40 Points - {227.53341533474949, 211.26774501159844} - {122.27701931951354, 302.52620571551574} + {227.53340884345789, 211.26774166657401} + {122.27698145548852, 302.52618625100098} Style @@ -537,7 +537,8 @@ {\colortbl;\red255\green255\blue255;} \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc -\f0\fs24 \cf0 board} +\f0\fs24 \cf0 board\ +name} VerticalPad 0 @@ -590,7 +591,7 @@ MasterSheets ModificationDate - 2014-02-02 18:06:49 +0000 + 2014-02-03 00:00:30 +0000 Modifier Oshiro Nobuyasu NotesVisible diff -r bd73f0e1cdd4 -r 04f63b011fee slides/graffle/distributed_jungle.graffle --- a/slides/graffle/distributed_jungle.graffle Mon Feb 03 08:40:32 2014 +0900 +++ b/slides/graffle/distributed_jungle.graffle Mon Feb 03 09:43:16 2014 +0900 @@ -46,7 +46,7 @@ Creator Oshiro Nobuyasu DisplayScale - 1 0/72 in = 1 0/72 in + 1 0/72 in = 1.0000 in ExportShapes @@ -486,8 +486,8 @@ 3042 Points - {127.10000000000154, 219} - {182.04838104423948, 245.10669687621981} + {127.09999999999999, 219} + {182.04838104423936, 245.10669687622232} Style @@ -549,7 +549,7 @@ Bounds - {{147, 286}, {32, 15}} + {{147, 294.46578979492188}, {32, 15}} Class ShapedGraphic ID @@ -615,7 +615,7 @@ Bounds - {{210.40040941170102, 309.46579060064522}, {79.5, 21}} + {{210.4792478622102, 309.46509330538788}, {79.5, 21}} Class ShapedGraphic ID @@ -866,8 +866,8 @@ 11 Points - {228.09366979839604, 282.43108000262544} - {272.24817636845324, 357.57031883671561} + {228.12232377068844, 282.43082688753901} + {272.3772926444218, 357.56917653507588} Style @@ -901,8 +901,8 @@ 10 Points - {199.27917197175847, 282.39845754357174} - {142.27208126124901, 357.60200499056509} + {199.26989998631828, 282.39837385693244} + {142.23022340979924, 357.60162725857236} Style @@ -978,8 +978,8 @@ 7 Points - {293.56685508655772, 164.41792239542249} - {342.93314094834517, 239.58207764064034} + {293.56685580867173, 164.41792239522417} + {342.93314418168188, 239.58207760477583} Style @@ -1147,7 +1147,7 @@ MasterSheets ModificationDate - 2014-02-02 12:05:29 +0000 + 2014-02-03 00:36:34 +0000 Modifier Oshiro Nobuyasu NotesVisible diff -r bd73f0e1cdd4 -r 04f63b011fee slides/images/bulletinboard.png Binary file slides/images/bulletinboard.png has changed diff -r bd73f0e1cdd4 -r 04f63b011fee slides/images/distributed_jungle.png Binary file slides/images/distributed_jungle.png has changed diff -r bd73f0e1cdd4 -r 04f63b011fee slides/index.html --- a/slides/index.html Mon Feb 03 08:40:32 2014 +0900 +++ b/slides/index.html Mon Feb 03 09:43:16 2014 +0900 @@ -125,10 +125,10 @@

Webコンテンツを構成するテキストや画像などのデジタルコンテンツを管理し配信するシステム。

  • 例:ブログツール、Wiki
  • -

    『分散』コンテンツマネジメントシステムに求められること。

    +

    分散コンテンツマネジメントシステムに求められること。

  • Webコンテンツを分散して管理
  • スケールアウトするシステム
  • -

    データ全体の整合性に遅延がある結果整合性でも問題なく。書き込みや読み込みを優先としたデータベースが必要。

    +

    データ全体の整合性に遅延がある、結果整合性でもよい。書き込みや読み込みを優先としたデータベースが必要。

    そこで、非破壊的木構造データベースJungleの提案を行った。

    @@ -214,8 +214,8 @@

    分散版管理システムとは多人数によるソフトウェア開発において変更履歴を管理するシステム

    分散版管理システムは次の特徴とAPIを持つ

      -
    • 開発者それぞれがリポジトリのクローンを持ち、開発はローカルのリポジトリを通すことで行われる
    • -
    • ローカルのリポジトリは独立に存在し、サーバ上ある他人のリポジトリから変更履歴をとることができる。また自身の変更履歴を伝えることもできる
    • +
    • 開発者それぞれがリポジトリのクローンしてローカルに持ち、開発はローカルのリポジトリを通すことで行われる
    • +
    • ローカルのリポジトリは独立に存在し、サーバ上にある他人のリポジトリから変更履歴をとることができる。また自身の変更履歴を伝えることもできる
    • データ更新時に先に別の更新が入っていた(衝突)場合はMergeによりデータの整合性をとる
    @@ -234,8 +234,8 @@

    -

    分版版管理システムはリポジトリが壊れても別のリポジトリよりデータを復旧できることと、いつでも - 読み込みが可能なため、高いスケーラビリティを持っている

    +

    分版版管理システムはリポジトリが壊れても別のリポジトリよりデータを復旧できることと、push/pullそれとMergeによる整合性 + の確保で、高いスケーラビリティを持っている

    @@ -292,12 +292,43 @@ +
    +

    + Mergeによる更新の衝突の解決 +

    + + + + + + + + +

    +

    上の図は通常のデータ更新を示す

    +

    下の図は、同じ木に対して2つのデータの更新があったが編集を無事終えるケースを示す

    +
    +
    + +
    +

    + Mergeによる更新の衝突の解決ができない場合 +

    + + + + +

    +

    木の同じノードに対してデータの編集が行われた場合、どのような編集結果にすればよいかわからない。

    +

    どのような木が組まれ、どのようにデータを保存するかはアプリケーション毎に変わってくる。そのため、アプリケーション毎に + Mergeアルゴリズムは考えなくてはならない。

    + +

    Jungleの分散実装:掲示板システムにおけるMerge

    -

    Mergeとはデータ更新の衝突が起きた際の解決方法

    Jungleではアプリケーション毎にMergeアルゴリズムを設計

    後述する性能比較に用いた掲示板システムにおけるMergeの実装を考える

    掲示板システムにおけるデータ構造を以下に示す

    @@ -328,7 +359,6 @@
    -

    分散データベースJungleの評価 @@ -634,6 +664,16 @@

    + Mergeは必ずできるのか +

    +

    Mergeを必ず行うことは難しい

    +

    例えば、更新するデータが画像だった場合、2つの画像のデータから新しい画像を作るわけにはいかない。

    +

    後に更新したものを優先するといった方法をとるか、ユーザの選択に委ねるしかない。

    +
    + + +
    +

    分散Key-ValueストアCassandraの特徴