<?xml version="1.0" encoding="ISO-8859-15"?>
<rss version="2.0"><channel>
<title>eventual consistency -synkkausalgoritmit</title>
<link>http://sange.fi/~atehwa/cgi-bin/piki.cgi/</link>
<description>Recent changes in eventual consistency -synkkausalgoritmit</description>
<item><title>eventual consistency -synkkausalgoritmit</title>
<link>http://sange.fi/~atehwa/cgi-bin/piki.cgi/eventual%20consistency%20-synkkausalgoritmit</link>
<guid>http://sange.fi/~atehwa/cgi-bin/piki.cgi/#1452506344</guid>
<description>&lt;p&gt;&lt;ins&gt;(nettipäiväkirja 11.01.2016) Äärimmäisen mielenkiintoista! 
Vaikuttaa siltä, että OT:n 
(https://en.wikipedia.org/wiki/Operational_transformation) ja CRDT:n 
(https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type) 
suhdetta ei täysin ymmärretä. Jossain yleisemmässä mielessä nämä 
vastaavat [versionhallinta]tapojen kahta päähaaraa: sitä, jossa 
yhdistely ([merge, revision control]) tehdään kommutoimalla muutoksia, 
ja sitä, jossa tietorakenteiden oikea tila päätellään vanhojen tilojen 
DAG:sta.&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;Ensimmäistä lähestymistapaa edustaa versionhallinnassa 
puhtaimmillaan [darcs] ja vähän sovelletummassa muodossa [git]:n 
rebase-toiminnallisuus, jälkemmäistä taas melkein kaikki muut joilla 
edes on konvergenssi. Mutta versionhallintajärjestelmät joutuvat 
huolehtimaan konflikteista, kun taas replikoiduissa tietotyypeissä 
konfliktit estetään arbitraatiolla (OT:n tapauksessa) tai tekemällä ne 
mahdottomiksi (ainakin CRDT:issa, mutta ehkä tämä on mahdollista myös 
OT:ssa). Erityisesti treedoc 
(https://hal.inria.fr/file/index/docid/445975/filename/icdcs09-treedoc.p
df) näyttää minusta kovasti weave merge -algoritmilta, joka on 
eksplisiittisesti tehty konfliktittomaksi disambiguaattoreilla.&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;(Jessus muuten mitä suomea?! Olisiko vaikka näin: treedoc 
vaikuttaa kudeyhdistelyalgoritmilta, joka on erikseen varmennettu 
yksiselitteistäjillä sellaiseksi, ettei ristiriitatilanteita voi 
syntyä.)&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;Katso huviksesi myös: 
http://stackoverflow.com/questions/26694359/differences-between-ot-and-c
rdt&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;Sitten on vielä ''differential synchronisation'' (ks. esim. 
https://neil.fraser.name/writing/sync/), joka muistuttaa (jos oikein 
ymmärrän) symmetristä versiota siitä algoritmista, joka on mielestäni 
[parempi tapa synkronoida tietoja laitteiden välillä]. Diffsync on 
siinä mielessä "erilainen", että se ei salli todellista hajautusta vaan 
riippuu siitä, että on yksi palvelin, jolla on sekä totuus 
tietorakenteesta että todenmukainen näkemys kaikkien clientien viime 
käsityksestä palvelimen tilasta.&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;Prominenteimmat toteutukset näistä kaikista ovat (tietenkin!) 
Javascriptiä. * https://github.com/share/sharejs * 
https://github.com/gritzko/swarm * 
https://github.com/benjamine/dialogo&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;----&lt;/ins&gt; 

&lt;p&gt;&lt;ins&gt;* [merkintä: 2016-01] * [atehwa] * [kategoria: 
päiväkirjamerkintä] * [algoritmi] * [muutosten merge]&lt;/ins&gt;

</description>
<pubDate>Mon, 11 Jan 2016 09:59:04 +0000</pubDate>
</item>

</channel></rss>
