SlideShare a Scribd company logo
1 of 22
Download to read offline
Nosql Veritabanları
16 Ekim 2010
Özgür Web Günleri
Yeditepe Üniversitesi
Gokhan Boranalp
gokhan@zetaops.com
●Aynı anda aşağıdaki üçü bir arada olamaz!
● Consistency (Aynı anda tüm birimlerde aynı veri)
● Availability (Bazı birimlerde sorun olsa bile çalışmaya
devam ederler)
● Partition Tolerance (Önemli miktarda mesaj kaybı
olsa bile sistem çalışmaya devam eder)
Bunlardan sadece ikisi aynı anda elde edilebilir.
CAP Theorem
Dynamo Paper
Basit Terimler
●N: Tüm sistem içinde sağlıklı/tercih edilmiş birimlerin
sayısı
●R: Okuma anında gereken minimum birim sayısı
●W: Yazma anında gereken minimum birim sayısı
●Coordinator: Okuma veya yazma işlemlerini yapmak
üzere belirlenmiş olan birim
Consistent Hashing
●Hash Table içinde sadece değişiklik kadar K/n key
remap edilir.
●K=key sayısı, n=birim (node sayısı)
Vector Clocks
● Yazılan verinin versiyonlarını tutmak için kullanılır.
● Yazılan veriye timestamp eklenir.
● En son veri dikkate alınır.
http://bitbucket.org/justin/riak/src/tip/apps/riak/src/vclock.erl
Vector Clock Erlang uyarlaması
●Tüm okuma ve yazma işlemleri ilk N adet sağlıklı
birimde (node) yapılır. Consistent hashing ring
içindeki bazı birimler atlanır.
●Eğer bir birim geçici olarak down olduysa veri
sağlıklı bir birime aktarılır ve veriye bir ipucu “hint”
eklenerek orijinal alıcısına gönderilmesi gerektiği
belirtilir.
Sloppy Quorum & Hinted Handoff
Anti-Entropy & Merkle Trees
●Replikaların senkronize edilmesi için kullanılır.
●Replikalar arasındaki farkı en hızlı şekilde tespit
etmek ve transfer edilecek veriyi minimize etmek?
●Tüm tree indirilmeden, sadece ilgilenilen kısımla
çalışılır.
●Eğer iki birim arasında, köke bağlı iki tree aynıysa
bunları senkronize etmek gerekmez.
Gossip Protocol
●Dedikodu mantığıyla çalışır.
●Sanal birimler, aralarında paylaştıkları üyelik
bilgilerinin değiştiğini buradan öğrenirler.
Önemli Kavramlar
●Paxos
●Chord
●multi-version concurrency control (MVCC)
●B+ trees
●B trees
●ACID (atomicity, consistency, isolation, durability)
Nosql Türleri
● Kolon Tabanlı (Column Based)
● Belge Depolama (Document Store)
● Key/Value
● Eventually Consistent Key Value Store
● Graph
● Object
●Grid Database
●XML
Hangisi Ne Zaman?
● Örnek data yapısı yarat
● Data türünü tercih et. (hash/column/tuple/JSON)
● Per record data size hesapla,
● Zamansal veri büyümesini hesapla
● Donanım planını kontrol et
● İşletim sistemini kontrol et.
-> SONRA
● Veri tipi karmaşık değil, K/V, EC K/V
● Veri tipi karmaşık, Document, Column, EC K/V
● Eventual Consistency isteniyor, Column, Document, EC K/V
● Veri lineer olarak ve hızla artıyor, veri tipine göre dağıtıklık
özelliği barındıran biri
● Fazla veri (>4TB) analizi ön planda, map/reduce, sistem
orkestrasyonu gibi yardımcı unsurlar var mı?
● W or R intensive? Tek tek incele!
●Hadoop / HBase=> API: Java / any writer, Protocol:
any write call, Query Method: MapReduce Java / any
exec, Replication: HDFS Replication, Written in: Java
●Cassandra=> API: many Thrift languages, Query
Method: MapReduce, Written in: Java, Concurrency:
eventually consistent
●Hypertable=> API: Thrift (Java, PHP, Perl, Python,
Ruby, etc.), Protocol: Thrift, Query Method: HQL,
native Thrift API, Replication: HDFS Replication,
Concurrency: MVCC, Consistency Model: Fully
consistent
●Amazon SimpleDB
Column Families
● CouchDB=> API: JSON, Protocol: REST, Query
Method: MapReduceR of JavaScript Funcs, Replication:
Master Master, Written in: Erlang, Concurrency: MVCC
● MongoDB=> API: BSON, Protocol: lots of langs, Query
Method: dynamic object-based language, Replication:
Master Slave, Written in: C++,Concurrency: Update in
Place.
● Terrastore=> API: Java & http, Protocol: http,
Language: Java, Querying: Range queries, Predicates,
Replication: Partitioned with consistent hashing,
Consistency: Per-record strict consistency
● RavenDB=> .Net solution. Provides HTTP/JSON
access
Document
● Riak=> API: JSON, Protocol: REST, Query Method:
MapReduce term matching , Scaling: Multiple Masters;
Written in: Erlang, Concurrency: eventually consistent
(stronger then MVCC via Vector Clocks)
●Chordless=> API: Java & simple RPC to vals, Protocol:
internal, Query Method: M/R inside value objects,
Scaling: every node is master for its slice of namespace,
Written in: Java, Concurrency: serializable transaction
isolation
●Redis=> API: Tons of languages, Written in: C,
Concurrency: in memory and saves asynchronous disk
after a defined time. Append only mode available.
Different kinds of fsync policies. Replication: Master /
Slave
Key Value
● Scalaris=> Written in: Erlang, Replication: Strong
consistency over replicas, Concurrency: non blocking
Paxos, in memory.
●Tokyo Cabinet / Tyrant
●Berkeley DB=> API: Many languages, Written in: C,
Replication: Master / Slave, Concurrency: MVCC,
License: Sleepycat, Berkeley DB Java Edition: API:
Java, Written in: Java, Replication: Master / Slave,
Concurrency: serializable transaction isolation
●Mnesia=> ErlangDB
Key Value - devamı
● Amazon Dynamo
● Voldemort=> Amazons Dynamo türevi open source.
● Dynomite=> Written in Erlang. With "data partitioning,
versioning, and read repair, and user-provided storage
engines provide persistence and query processing".
● KAI=> Amazons Dynamo türevi open source.
Eventually Consistent K/V
●GigaSpaces=> Popular SpaceBased Grid Solution
●Hazelcast=> P2P Data Grid Solution on java.util.*, On a
100 Noce EC2 Cluster (Yaratıcısı Talip Öztürk)
Grid Database
● Amazon Dynamo
● Voldemort=> Amazons Dynamo türevi open source.
● Dynomite=> Written in Erlang. With "data partitioning,
versioning, and read repair, and user-provided storage
engines provide persistence and query processing".
● KAI=> Amazons Dynamo türevi open source.
Eventually Consistent K/V
Sorular
Kaynakça
●http://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf
●http://www.spiteful.com/2008/03/17/programmers-toolbox-part-3-consistent-hashing/
●https://nosqleast.com/2009/#speaker/sheehy
●http://en.wikipedia.org/wiki/Chord_%28DHT%29
●http://en.wikipedia.org/wiki/Paxos_algorithm
●http://nosql-database.org/
●http://news.ycombinator.com/item?id=1470521
●http://www.julianbrowne.com/article/viewer/brewers-cap-theorem
●http://dbmsmusings.blogspot.com/2010/04/problems-with-cap-and-yahoos-little.html
●
gokhan@zetaops.com

More Related Content

Similar to Nosql veritabanlari

Pig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri AnaliziPig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri AnaliziHakan Ilter
 
Apache Spark : Genel Bir Bakış
Apache Spark : Genel Bir BakışApache Spark : Genel Bir Bakış
Apache Spark : Genel Bir BakışBurak KÖSE
 
Hadoop @ devveri.com
Hadoop @ devveri.comHadoop @ devveri.com
Hadoop @ devveri.comHakan Ilter
 
Ankara JUG Big Data Presentation
Ankara JUG Big Data PresentationAnkara JUG Big Data Presentation
Ankara JUG Big Data PresentationSerkan Özal
 
Ceph Türkiye 7. Meetup Ankara: Ceph Temelleri ve CRUSH MAP Yönetimi
Ceph Türkiye 7. Meetup Ankara: Ceph Temelleri ve CRUSH MAP YönetimiCeph Türkiye 7. Meetup Ankara: Ceph Temelleri ve CRUSH MAP Yönetimi
Ceph Türkiye 7. Meetup Ankara: Ceph Temelleri ve CRUSH MAP YönetimiHuseyin Cotuk
 
C# 5 Yeni özellikler
C# 5 Yeni özelliklerC# 5 Yeni özellikler
C# 5 Yeni özelliklerErkan BALABAN
 
64 bit işlemcilerin modern tarihçesi
64 bit işlemcilerin modern tarihçesi64 bit işlemcilerin modern tarihçesi
64 bit işlemcilerin modern tarihçesiTalha Kabakus
 
Apache Kafka - Yüksek Performanslı Dağıtık Mesajlaşma Sistemi - Türkçe
Apache Kafka - Yüksek Performanslı Dağıtık Mesajlaşma Sistemi - TürkçeApache Kafka - Yüksek Performanslı Dağıtık Mesajlaşma Sistemi - Türkçe
Apache Kafka - Yüksek Performanslı Dağıtık Mesajlaşma Sistemi - TürkçeEmre Akış
 
veri tabanları . sql vs nosql
veri tabanları . sql vs nosqlveri tabanları . sql vs nosql
veri tabanları . sql vs nosqlOrçun Çolak
 
Sunucularımızı Gözleyelim
Sunucularımızı GözleyelimSunucularımızı Gözleyelim
Sunucularımızı GözleyelimOguz Yarimtepe
 
Büyük veri teknolojilerine giriş v1l
Büyük veri teknolojilerine giriş v1lBüyük veri teknolojilerine giriş v1l
Büyük veri teknolojilerine giriş v1lHakan Ilter
 
AnkaraJUG Haziran 2013 - No SQL / Big Data
AnkaraJUG Haziran 2013 - No SQL / Big DataAnkaraJUG Haziran 2013 - No SQL / Big Data
AnkaraJUG Haziran 2013 - No SQL / Big DataAnkara JUG
 
MongoDB - JSON'a Genel Bakış
MongoDB - JSON'a Genel BakışMongoDB - JSON'a Genel Bakış
MongoDB - JSON'a Genel BakışCihan Özhan
 
Ceph Türkiye 2.meetup İstanbul
Ceph Türkiye 2.meetup İstanbulCeph Türkiye 2.meetup İstanbul
Ceph Türkiye 2.meetup İstanbulHuseyin Cotuk
 
Ankara Spark Meetup - Big Data & Apache Spark Mimarisi Sunumu
Ankara Spark Meetup - Big Data & Apache Spark Mimarisi SunumuAnkara Spark Meetup - Big Data & Apache Spark Mimarisi Sunumu
Ankara Spark Meetup - Big Data & Apache Spark Mimarisi SunumuSerkan Sakınmaz
 

Similar to Nosql veritabanlari (16)

Pig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri AnaliziPig ve Hive ile Hadoop üzerinde Veri Analizi
Pig ve Hive ile Hadoop üzerinde Veri Analizi
 
Apache Spark : Genel Bir Bakış
Apache Spark : Genel Bir BakışApache Spark : Genel Bir Bakış
Apache Spark : Genel Bir Bakış
 
Hadoop @ devveri.com
Hadoop @ devveri.comHadoop @ devveri.com
Hadoop @ devveri.com
 
Veri tabanı
Veri tabanıVeri tabanı
Veri tabanı
 
Ankara JUG Big Data Presentation
Ankara JUG Big Data PresentationAnkara JUG Big Data Presentation
Ankara JUG Big Data Presentation
 
Ceph Türkiye 7. Meetup Ankara: Ceph Temelleri ve CRUSH MAP Yönetimi
Ceph Türkiye 7. Meetup Ankara: Ceph Temelleri ve CRUSH MAP YönetimiCeph Türkiye 7. Meetup Ankara: Ceph Temelleri ve CRUSH MAP Yönetimi
Ceph Türkiye 7. Meetup Ankara: Ceph Temelleri ve CRUSH MAP Yönetimi
 
C# 5 Yeni özellikler
C# 5 Yeni özelliklerC# 5 Yeni özellikler
C# 5 Yeni özellikler
 
64 bit işlemcilerin modern tarihçesi
64 bit işlemcilerin modern tarihçesi64 bit işlemcilerin modern tarihçesi
64 bit işlemcilerin modern tarihçesi
 
Apache Kafka - Yüksek Performanslı Dağıtık Mesajlaşma Sistemi - Türkçe
Apache Kafka - Yüksek Performanslı Dağıtık Mesajlaşma Sistemi - TürkçeApache Kafka - Yüksek Performanslı Dağıtık Mesajlaşma Sistemi - Türkçe
Apache Kafka - Yüksek Performanslı Dağıtık Mesajlaşma Sistemi - Türkçe
 
veri tabanları . sql vs nosql
veri tabanları . sql vs nosqlveri tabanları . sql vs nosql
veri tabanları . sql vs nosql
 
Sunucularımızı Gözleyelim
Sunucularımızı GözleyelimSunucularımızı Gözleyelim
Sunucularımızı Gözleyelim
 
Büyük veri teknolojilerine giriş v1l
Büyük veri teknolojilerine giriş v1lBüyük veri teknolojilerine giriş v1l
Büyük veri teknolojilerine giriş v1l
 
AnkaraJUG Haziran 2013 - No SQL / Big Data
AnkaraJUG Haziran 2013 - No SQL / Big DataAnkaraJUG Haziran 2013 - No SQL / Big Data
AnkaraJUG Haziran 2013 - No SQL / Big Data
 
MongoDB - JSON'a Genel Bakış
MongoDB - JSON'a Genel BakışMongoDB - JSON'a Genel Bakış
MongoDB - JSON'a Genel Bakış
 
Ceph Türkiye 2.meetup İstanbul
Ceph Türkiye 2.meetup İstanbulCeph Türkiye 2.meetup İstanbul
Ceph Türkiye 2.meetup İstanbul
 
Ankara Spark Meetup - Big Data & Apache Spark Mimarisi Sunumu
Ankara Spark Meetup - Big Data & Apache Spark Mimarisi SunumuAnkara Spark Meetup - Big Data & Apache Spark Mimarisi Sunumu
Ankara Spark Meetup - Big Data & Apache Spark Mimarisi Sunumu
 

More from Gokhan Boranalp

Zetaops ZOPS presentation
Zetaops ZOPS presentationZetaops ZOPS presentation
Zetaops ZOPS presentationGokhan Boranalp
 
Google Cloud Platform Kubernetes Workshop IYTE
Google Cloud Platform Kubernetes Workshop IYTEGoogle Cloud Platform Kubernetes Workshop IYTE
Google Cloud Platform Kubernetes Workshop IYTEGokhan Boranalp
 
ZCloud Consensus on Hardware for Distributed Systems
ZCloud Consensus on Hardware for Distributed SystemsZCloud Consensus on Hardware for Distributed Systems
ZCloud Consensus on Hardware for Distributed SystemsGokhan Boranalp
 
Zops intelligent platform
Zops intelligent platformZops intelligent platform
Zops intelligent platformGokhan Boranalp
 
Kak depolama stratejiniz nasıl olmalı?
Kak depolama stratejiniz nasıl olmalı?Kak depolama stratejiniz nasıl olmalı?
Kak depolama stratejiniz nasıl olmalı?Gokhan Boranalp
 
Buluta Ilk Adım Analizi
Buluta Ilk Adım AnaliziBuluta Ilk Adım Analizi
Buluta Ilk Adım AnaliziGokhan Boranalp
 
Acik Kaynak Kodlu Kurumsal Eposta Sistemleri
Acik Kaynak Kodlu Kurumsal Eposta SistemleriAcik Kaynak Kodlu Kurumsal Eposta Sistemleri
Acik Kaynak Kodlu Kurumsal Eposta SistemleriGokhan Boranalp
 

More from Gokhan Boranalp (11)

Zkernel
ZkernelZkernel
Zkernel
 
Zetaops ZOPS presentation
Zetaops ZOPS presentationZetaops ZOPS presentation
Zetaops ZOPS presentation
 
Gdg izmir kubernetes
Gdg izmir kubernetesGdg izmir kubernetes
Gdg izmir kubernetes
 
Google Cloud Platform Kubernetes Workshop IYTE
Google Cloud Platform Kubernetes Workshop IYTEGoogle Cloud Platform Kubernetes Workshop IYTE
Google Cloud Platform Kubernetes Workshop IYTE
 
ZCloud Consensus on Hardware for Distributed Systems
ZCloud Consensus on Hardware for Distributed SystemsZCloud Consensus on Hardware for Distributed Systems
ZCloud Consensus on Hardware for Distributed Systems
 
Zops intelligent platform
Zops intelligent platformZops intelligent platform
Zops intelligent platform
 
Kak depolama stratejiniz nasıl olmalı?
Kak depolama stratejiniz nasıl olmalı?Kak depolama stratejiniz nasıl olmalı?
Kak depolama stratejiniz nasıl olmalı?
 
Buluta Ilk Adım Analizi
Buluta Ilk Adım AnaliziBuluta Ilk Adım Analizi
Buluta Ilk Adım Analizi
 
Acik Kaynak Kodlu Kurumsal Eposta Sistemleri
Acik Kaynak Kodlu Kurumsal Eposta SistemleriAcik Kaynak Kodlu Kurumsal Eposta Sistemleri
Acik Kaynak Kodlu Kurumsal Eposta Sistemleri
 
erlang 101
erlang 101erlang 101
erlang 101
 
Git 101
Git 101Git 101
Git 101
 

Nosql veritabanlari

  • 1. Nosql Veritabanları 16 Ekim 2010 Özgür Web Günleri Yeditepe Üniversitesi Gokhan Boranalp gokhan@zetaops.com
  • 2. ●Aynı anda aşağıdaki üçü bir arada olamaz! ● Consistency (Aynı anda tüm birimlerde aynı veri) ● Availability (Bazı birimlerde sorun olsa bile çalışmaya devam ederler) ● Partition Tolerance (Önemli miktarda mesaj kaybı olsa bile sistem çalışmaya devam eder) Bunlardan sadece ikisi aynı anda elde edilebilir. CAP Theorem
  • 4. Basit Terimler ●N: Tüm sistem içinde sağlıklı/tercih edilmiş birimlerin sayısı ●R: Okuma anında gereken minimum birim sayısı ●W: Yazma anında gereken minimum birim sayısı ●Coordinator: Okuma veya yazma işlemlerini yapmak üzere belirlenmiş olan birim
  • 5. Consistent Hashing ●Hash Table içinde sadece değişiklik kadar K/n key remap edilir. ●K=key sayısı, n=birim (node sayısı)
  • 6. Vector Clocks ● Yazılan verinin versiyonlarını tutmak için kullanılır. ● Yazılan veriye timestamp eklenir. ● En son veri dikkate alınır. http://bitbucket.org/justin/riak/src/tip/apps/riak/src/vclock.erl Vector Clock Erlang uyarlaması
  • 7. ●Tüm okuma ve yazma işlemleri ilk N adet sağlıklı birimde (node) yapılır. Consistent hashing ring içindeki bazı birimler atlanır. ●Eğer bir birim geçici olarak down olduysa veri sağlıklı bir birime aktarılır ve veriye bir ipucu “hint” eklenerek orijinal alıcısına gönderilmesi gerektiği belirtilir. Sloppy Quorum & Hinted Handoff
  • 8. Anti-Entropy & Merkle Trees ●Replikaların senkronize edilmesi için kullanılır. ●Replikalar arasındaki farkı en hızlı şekilde tespit etmek ve transfer edilecek veriyi minimize etmek? ●Tüm tree indirilmeden, sadece ilgilenilen kısımla çalışılır. ●Eğer iki birim arasında, köke bağlı iki tree aynıysa bunları senkronize etmek gerekmez.
  • 9. Gossip Protocol ●Dedikodu mantığıyla çalışır. ●Sanal birimler, aralarında paylaştıkları üyelik bilgilerinin değiştiğini buradan öğrenirler.
  • 10. Önemli Kavramlar ●Paxos ●Chord ●multi-version concurrency control (MVCC) ●B+ trees ●B trees ●ACID (atomicity, consistency, isolation, durability)
  • 11. Nosql Türleri ● Kolon Tabanlı (Column Based) ● Belge Depolama (Document Store) ● Key/Value ● Eventually Consistent Key Value Store ● Graph ● Object ●Grid Database ●XML
  • 12. Hangisi Ne Zaman? ● Örnek data yapısı yarat ● Data türünü tercih et. (hash/column/tuple/JSON) ● Per record data size hesapla, ● Zamansal veri büyümesini hesapla ● Donanım planını kontrol et ● İşletim sistemini kontrol et. -> SONRA ● Veri tipi karmaşık değil, K/V, EC K/V ● Veri tipi karmaşık, Document, Column, EC K/V ● Eventual Consistency isteniyor, Column, Document, EC K/V ● Veri lineer olarak ve hızla artıyor, veri tipine göre dağıtıklık özelliği barındıran biri ● Fazla veri (>4TB) analizi ön planda, map/reduce, sistem orkestrasyonu gibi yardımcı unsurlar var mı? ● W or R intensive? Tek tek incele!
  • 13. ●Hadoop / HBase=> API: Java / any writer, Protocol: any write call, Query Method: MapReduce Java / any exec, Replication: HDFS Replication, Written in: Java ●Cassandra=> API: many Thrift languages, Query Method: MapReduce, Written in: Java, Concurrency: eventually consistent ●Hypertable=> API: Thrift (Java, PHP, Perl, Python, Ruby, etc.), Protocol: Thrift, Query Method: HQL, native Thrift API, Replication: HDFS Replication, Concurrency: MVCC, Consistency Model: Fully consistent ●Amazon SimpleDB Column Families
  • 14. ● CouchDB=> API: JSON, Protocol: REST, Query Method: MapReduceR of JavaScript Funcs, Replication: Master Master, Written in: Erlang, Concurrency: MVCC ● MongoDB=> API: BSON, Protocol: lots of langs, Query Method: dynamic object-based language, Replication: Master Slave, Written in: C++,Concurrency: Update in Place. ● Terrastore=> API: Java & http, Protocol: http, Language: Java, Querying: Range queries, Predicates, Replication: Partitioned with consistent hashing, Consistency: Per-record strict consistency ● RavenDB=> .Net solution. Provides HTTP/JSON access Document
  • 15. ● Riak=> API: JSON, Protocol: REST, Query Method: MapReduce term matching , Scaling: Multiple Masters; Written in: Erlang, Concurrency: eventually consistent (stronger then MVCC via Vector Clocks) ●Chordless=> API: Java & simple RPC to vals, Protocol: internal, Query Method: M/R inside value objects, Scaling: every node is master for its slice of namespace, Written in: Java, Concurrency: serializable transaction isolation ●Redis=> API: Tons of languages, Written in: C, Concurrency: in memory and saves asynchronous disk after a defined time. Append only mode available. Different kinds of fsync policies. Replication: Master / Slave Key Value
  • 16. ● Scalaris=> Written in: Erlang, Replication: Strong consistency over replicas, Concurrency: non blocking Paxos, in memory. ●Tokyo Cabinet / Tyrant ●Berkeley DB=> API: Many languages, Written in: C, Replication: Master / Slave, Concurrency: MVCC, License: Sleepycat, Berkeley DB Java Edition: API: Java, Written in: Java, Replication: Master / Slave, Concurrency: serializable transaction isolation ●Mnesia=> ErlangDB Key Value - devamı
  • 17. ● Amazon Dynamo ● Voldemort=> Amazons Dynamo türevi open source. ● Dynomite=> Written in Erlang. With "data partitioning, versioning, and read repair, and user-provided storage engines provide persistence and query processing". ● KAI=> Amazons Dynamo türevi open source. Eventually Consistent K/V
  • 18. ●GigaSpaces=> Popular SpaceBased Grid Solution ●Hazelcast=> P2P Data Grid Solution on java.util.*, On a 100 Noce EC2 Cluster (Yaratıcısı Talip Öztürk) Grid Database
  • 19. ● Amazon Dynamo ● Voldemort=> Amazons Dynamo türevi open source. ● Dynomite=> Written in Erlang. With "data partitioning, versioning, and read repair, and user-provided storage engines provide persistence and query processing". ● KAI=> Amazons Dynamo türevi open source. Eventually Consistent K/V