Sarper Aydoan Turkcell Teknoloji Staj 2010 Var olma

  • Slides: 17
Download presentation
Sarper Aydoğan – Turkcell Teknoloji Staj’ 2010

Sarper Aydoğan – Turkcell Teknoloji Staj’ 2010

Var olma Sebebi? 1. Sürekli artan veriyi ölçeklendirme -> 2. Artan karmaşık çoğa –

Var olma Sebebi? 1. Sürekli artan veriyi ölçeklendirme -> 2. Artan karmaşık çoğa – çok (many to many) ilişkiler 3. Ç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 çağırılıyorsa. No to SQL Performans RDMS Performans Maaş Listesi Web Uygulamaları Data Karmaşıklığı Sosyal Networkler Not Only SQL

Consistency Availability Partition Tolerance JOIN Büyük datalar? ilişkisel CAP Dağınık ACID Atomicity, Consistency, Isolation,

Consistency Availability Partition Tolerance JOIN Büyük datalar? ilişkisel CAP Dağınık ACID Atomicity, Consistency, Isolation, Durability Ölçeklendirme & Kaynaklar? Yatay ve Dikey ölçeklendirmeye izin veren (Yeni modüllerin ve datanın rahatça eklenebilmesi)

Key Value Stores �Büyük data bloklarını tutmak ve ölçeklendirmek için kullanılır. A • Her

Key Value Stores �Büyük data bloklarını tutmak ve ölçeklendirmek için kullanılır. A • Her unique anahtar değeri bir değeri referans eder. (Hash. Map) B C D • Database’in Değerden haberi yok • Memcached’den farklı olarak replication, versioning, locking ve sorting gibi özellikler sunar.

Voldemort �Open Source (Linkedin Katkılarıyla) �Veri otomatik, parçalar haline getirilip, parçalar birden çok servera

Voldemort �Open 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

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

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 � Couch. DB, Mongo. DB { “_id” : “ 1″, “name” : “A”, “groupid” : “ 1″, } { “_id” : “ 2″, “name” : “B”, “groupid” : “ 1″, }

Key –Value Store, Document DB ve RDBMS özelliklerini taşır Indexing Temel veri birimi ->

Key –Value Store, Document DB ve RDBMS özelliklerini taşır Indexing Temel veri birimi -> Document Dinamik Query’ler • Hızlı okuma/yazma için dizayn edilmiştir. • Tanıdık veri Tipleri Kullanır -> Array, Binary, Boolean, Date. Time, Null, String, Embedded Object indexler • Veriye ulaşma ve değiştirme yolları Dinamik Query’ler Map. Reduce

Couch. DB & Mongo. DB Database -> Documents Concurrency -> MVCC Data Types ->

Couch. DB & Mongo. DB Database -> Documents Concurrency -> MVCC Data Types -> string, number, boolean, arr ay, 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

Wide Column Stores �Google Big. Table Clone �Satır ve sütunlara dayanan ölçeklendirme �Her key

Wide Column Stores �Google Big. Table Clone �Satır ve sütunlara dayanan ölçeklendirme �Her key birden çok sütunla ilişkilenir �Dağınık ve birden çok boyutludur �Yarı 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.

HBase �Hadoop Database – büyük datasetlerine hızlı read/write �HDFS (Hadoop Distributes File System) üzerinde

HBase �Hadoop Database – büyük datasetlerine hızlı read/write �HDFS (Hadoop Distributes File System) üzerinde çalışır �Concurrency - Locks �BTree- Sıralama Hızlı �Hadoop Map. Reduce’lariyla başa çıkabilecek Hbase tabloları* �Veri sıralanmış biçimde saklanır �Real Time Query’ler için Optimization �Twitter, Yahoo!** *Map. Reduce- Büyük datasetlerin çözülmesi **http: //wiki. apache. org/hadoop/Hbase/Powered. By

Map and Reduce

Map and Reduce

Hbase & Cassandra Java tabanlı Concurrency - Locks BTree- Sıralama Hızlı Hadoop Dosyalamasını Kullanır

Hbase & Cassandra Java tabanlı Concurrency - Locks BTree- Sıralama Hızlı Hadoop Dosyalamasını Kullanır Java tabanlı Concurrency - MVCC Ordered Hash Index- Btree’den daha yavaş Otomatik failure detection ve full recovery inbox search Mevcut Klonlar Big. Table ‘ın transaction oranına ulaşamamıştır. Google Maps, Earth, Gmail, You. Tube

Graph Database � Veriyi tablolar yerine grafik yapıları (node, edge, property) üzerinde değerleri saklayan

Graph Database � Veriyi 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 veri Graph – Dinamik ve karmaşık veri

�Neo 4 j’deki tüm operasyonlar transactionlar üzerinden çalışır ve tüm transactionlar ACID’i destekler. Node

�Neo 4 j’deki tüm operasyonlar transactionlar üzerinden çalışır ve tüm transactionlar ACID’i destekler. Node first. Node = graph. Db. create. Node(); Node second. Node = graph. Db. create. Node(); Relationship relationship = first. Node. create. Relationship. To( second. Node, My. Relationship. Types. KNOWS ); first. Node. set. Property( "message", "Hello, " ); second. Node. set. Property( "message", "world!" ); relationship. set. Property( "message", "brave Neo 4 j"); brave Neo 4 j Hello World

Name Type Concurreny Data Storage Voldemort Key- Value MVCC RAM Hbase Wide Column Locks

Name Type Concurreny Data Storage Voldemort Key- Value MVCC RAM Hbase Wide Column Locks Hadoop Cassandra Wide Column MVCC Disk Couch. DB Document MVCC Disk Mongo. DB Document Field-Level Disk Neo 4 j Graph Locks Disk

No. SQL Avantajları �OLTP Projelerinde hızlı read/write’a olanak vermesi �Kolay ölçeklendirebilme ve dağıtım yapabilme

No. SQL Avantajları �OLTP Projelerinde hızlı read/write’a olanak vermesi �Kolay ölçeklendirebilme ve dağıtım yapabilme �İlişisel db’lere göre bazı projelerde kolay implementation sağlaması

No. SQL Dezavantajları �Data Integrity -> Uygulama Katmanına Dayalı �İlişkisel DB’ler kadar mature sistemler

No. SQL Dezavantajları �Data Integrity -> Uygulama Katmanına Dayalı �İlişkisel DB’ler kadar mature sistemler değiller �Standard bir dilin olmaması