Sarper Aydoğan – Turkcell Teknoloji Staj’2010

17
Sarper Aydoğan – Turkcell Teknoloji Staj’2010

description

Sarper Aydoğan – Turkcell Teknoloji Staj’2010. Var olma Sebebi? Sürekli artan veriyi ölçeklendirme -> Artan karmaşık çoğa – çok (many to many) ilişkiler Çok öğeli sabit ilişkisel şemalar yerine önceden belirlenmemiş ve genişletilebilir veriler veri şeması kullanıyor olması - PowerPoint PPT Presentation

Transcript of Sarper Aydoğan – Turkcell Teknoloji Staj’2010

Page 1: Sarper Aydoğan – Turkcell Teknoloji Staj’2010

Sarper Aydoğan – Turkcell Teknoloji Staj’2010

Page 2: Sarper Aydoğan – Turkcell Teknoloji Staj’2010

No to SQL

Not Only SQL

Var olma Sebebi?1.Sürekli artan veriyi ölçeklendirme -> 2.Artan karmaşık çoğa – çok (many to many) ilişkiler3.Çok öğeli sabit ilişkisel şemalar yerine önceden belirlenmemiş ve genişletilebilir veriler veri şeması kullanıyor olması 4.Veri karmaşık “Joinler” kullanılmadan sadece primary key’e dayalı olarak tekrar tekrar çağırılıyorsa.

RDMS Performans

Perf

orm

an

s

Data Karmaşıklığı

Maaş Listesi

Sosyal Networkler

Web Uygulamaları

Page 3: Sarper Aydoğan – Turkcell Teknoloji Staj’2010

ilişkisel

Yatay ve Dikey ölçeklendirmeye izin veren(Yeni modüllerin ve datanın rahatça eklenebilmesi)

Dağınık

JOIN

ACIDAtomicity,

Consistency, Isolation, Durability

Büyük datalar?

Ölçeklendirme & Kaynaklar?

CAP

ConsistencyAvailability

Partition Tolerance

Page 4: Sarper Aydoğan – Turkcell Teknoloji Staj’2010

Key Value StoresBüyük data bloklarını tutmak ve

ölçeklendirmek için kullanılır.

A

C

D

B

•Her unique anahtar değeri bir değeri referans eder. (HashMap)

•Database’in Değerden haberi yok

•Memcached’den farklı olarak replication, versioning, locking ve sorting gibi özellikler sunar.

Page 5: Sarper Aydoğan – Turkcell Teknoloji Staj’2010

VoldemortOpen Source (Linkedin Katkılarıyla)Veri otomatik, parçalar haline getirilip,

parçalar birden çok servera dağıtılıyor.Concurreny problemleri “multi-version

concurrency control” (MVCC) ile çözülüyor.Gelişmiş Failure Handling

Page 6: Sarper Aydoğan – Turkcell Teknoloji Staj’2010

Document Database Her veriyi bir doküman olarak saklar. Key Value Store’la benzerlik gösterir.

Farklı olarak

Key- Value Store’dan daha karmaşık yapıda veri saklar (Arrayler, objeler..) Multiple index’lemeyi destekler

RDBMS’den farklı olarak veri tabanı ve tablolar yok CouchDB, MongoDB

{“_id” : “1″,“name” : “A”,“groupid” : “1″,}{“_id” : “2″,“name” : “B”,“groupid” : “1″,}

Page 7: Sarper Aydoğan – Turkcell Teknoloji Staj’2010

Key –Value Store, Document DB ve RDBMS özelliklerini taşır

Dinamik Query’lerIndexing

•Hızlı okuma/yazma için dizayn edilmiştir.

•Tanıdık veri Tipleri Kullanır -> Array, Binary, Boolean, DateTime, Null, String, Embedded Object

Temel veri birimi -> Document

•Veriye ulaşma ve değiştirme yolları

indexler

Dinamik Query’ler

MapReduce

Page 8: Sarper Aydoğan – Turkcell Teknoloji Staj’2010

CouchDB & MongoDBDatabase ->

DocumentsConcurrency -> MVCCData Types ->

string,number,boolean,array,object

Query Method -> Map/reduce

Database -> Collections(Tables) -> Documents

Concurreny -> Yerinde Güncelleme

Data Types -> string, int, double, boolean, date, bytearray, object, array, others

Query Method -> Dynamic; object-based query language 

Page 9: Sarper Aydoğan – Turkcell Teknoloji Staj’2010

Wide Column StoresGoogle BigTable CloneSatır ve sütunlara dayanan ölçeklendirmeHer key birden çok sütunla ilişkilenirDağınık ve birden çok boyutludurYarı ilişkisel yapıya sahiptirÖlçeklendirme, satırları ve sütunları

parçalayarak meydana gelir Satırlar, primary key’e bağlı olarak bölünür. Sütunlar, sütun gruplarına bağlı olarak bölünür.

Page 10: Sarper Aydoğan – Turkcell Teknoloji Staj’2010

HBaseHadoop Database – büyük datasetlerine hızlı

read/writeHDFS (Hadoop Distributes File System) üzerinde

çalışırConcurrency - LocksBTree- Sıralama HızlıHadoop MapReduce’lariyla başa çıkabilecek Hbase

tabloları*Veri sıralanmış biçimde saklanırReal Time Query’ler için OptimizationTwitter, Yahoo!**

*MapReduce- Büyük datasetlerin çözülmesi**http://wiki.apache.org/hadoop/Hbase/PoweredBy

Page 11: Sarper Aydoğan – Turkcell Teknoloji Staj’2010

Map and Reduce

Page 12: Sarper Aydoğan – Turkcell Teknoloji Staj’2010

Hbase & CassandraJava tabanlıConcurrency - LocksBTree- Sıralama

HızlıHadoop

Dosyalamasını Kullanır

Java tabanlıConcurrency - MVCCOrdered Hash Index-

Btree’den daha yavaşOtomatik failure

detection ve full recovery

Mevcut Klonlar BigTable ‘ın transaction oranına ulaşamamıştır.Google Maps, Earth, Gmail, YouTube

inbox search

Page 13: Sarper Aydoğan – Turkcell Teknoloji Staj’2010

Graph DatabaseVeriyi tablolar yerine grafik yapıları (node, edge, property)

üzerinde değerleri saklayan database çeşidi. Key – Value yapısına benzetilebilir.

RDBMS –Static ve basit veriGraph – Dinamik ve karmaşık veri

Page 14: Sarper Aydoğan – Turkcell Teknoloji Staj’2010

Neo4j’deki tüm operasyonlar transactionlar üzerinden çalışır ve tüm transactionlar ACID’i destekler.

Node firstNode = graphDb.createNode();Node secondNode = graphDb.createNode();Relationship relationship = firstNode.createRelationshipTo(secondNode, MyRelationshipTypes.KNOWS );

firstNode.setProperty( "message", "Hello, " );secondNode.setProperty( "message", "world!" );relationship.setProperty( "message", "brave Neo4j");

Hello Worldbrave Neo4j

Page 15: Sarper Aydoğan – Turkcell Teknoloji Staj’2010

Name Type Concurreny Data Storage

Voldemort Key- Value MVCC RAM

Hbase Wide Column Locks Hadoop

Cassandra Wide Column MVCC Disk

CouchDB Document MVCC Disk

MongoDB Document Field-Level Disk

Neo4j Graph Locks Disk

Page 16: Sarper Aydoğan – Turkcell Teknoloji Staj’2010

NoSQL AvantajlarıOLTP Projelerinde hızlı read/write’a olanak

vermesiKolay ölçeklendirebilme ve dağıtım

yapabilmeİlişisel db’lere göre bazı projelerde kolay

implementation sağlaması

Page 17: Sarper Aydoğan – Turkcell Teknoloji Staj’2010

NoSQL DezavantajlarıData Integrity -> Uygulama Katmanına

Dayalıİlişkisel DB’ler kadar mature sistemler

değillerStandard bir dilin olmaması