LevelDB

Vikipedi, özgür ansiklopedi
LevelDB
Geliştirici(ler) Jeffrey Dean, Sanjay Ghemawat, Google Inc.
Güncel sürüm 1.22 / 3 Mayıs 2019 (2 yıl önce) (2019-05-03)[1]
Programlama dili C++
Tür Database library
Resmî sitesi github.com/google/leveldb
Kod deposu Bunu Vikiveri'de düzenleyin

LevelDB, Jeffrey Dean ve Sanjay Ghemawat tarafından yazılan açık kaynaklı bir anahtar / değer deposudur.[2][3] Bigtable'dan esinlenen[4] LevelDB, GitHub'da Yeni BSD Lisansı altında barındırılmaktadır ve çeşitli Unix tabanlı sistemlere, macOS, Windows ve Android'e taşınmıştır.[5]

Özellikleri[değiştir | kaynağı değiştir]

LevelDB anahtarları ve değerleri bayt dizilerinde saklar ve veriler anahtarlara göre sıralanır. Toplu yazma, ileri geri yineleme ve verilerin Google'ın Snappy sıkıştırma kütüphanesi aracılığıyla sıkıştırılmasını destekler.

LevelDB bir SQL veritabanı değildir. Diğer NoSQL ve dbm depoları gibi ilişkisel bir veri modeli yoktur ve SQL sorgularını desteklemez. Ayrıca, dizinler için desteği yoktur. Uygulamalar, sunucu veya komut satırı arabirimi sağlamadığından LevelDB'yi kitaplık olarak kullanır.

MariaDB 10.0, kullanıcıların MariaDB'den LevelDB tablolarını sorgulamasına izin veren bir depolama motoruyla birlikte gelir.[6]

Tarihçe[değiştir | kaynağı değiştir]

LevelDB, Google'ın Bigtable'ina dayanmaktadır. Bigtable sistemi için tablo uygulaması yaklaşık 2004'ten itibaren geliştirilmiştir ve LevelDB kodundan farklı bir kod tabanına dayanmaktadır. Bu kod tabanı, kendileri açık kaynaklı olmayan bir dizi Google kod kütüphanesine dayanmaktadır, bu nedenle doğrudan açık kod bulmak zor olurdu. Jeff Dean ve Sanjay Ghemawat, Bigtable yığınına benzeyen, minimum bağımlılığa sahip ve açık kaynak kullanımı için uygun olacak ve ayrıca IndexedDB uygulamasının Chrome'da kullanımı için uygun bir sistem oluşturmak istediler. 2011'in başlarından itibaren Bigtable yığını ile aynı genel tasarıma sahip ancak hiçbir ortak kodu bulunmayan LevelDB'i yazdılar.[7]

Kullanım[değiştir | kaynağı değiştir]

LevelDB, Google Chrome'un IndexedDB'si için backend veritabanı olarak kullanılır ve Riak için desteklenen arka uçlardan biridir.[8] Ayrıca, Bitcoin Çekirdek ve go-ethereum blockchain teknolojilerinde LevelDB veritabanı kullandılar.[9] Minecraft: Pocket Edition, yığın ve varlık veri depolaması için değiştirilmiş bir LevelDB sürümü kullanır.[10] Autodesk AutoCAD 2016 da LevelDB kullanmaktadır.

Verim[değiştir | kaynağı değiştir]

Google, LevelDB'nin performansını SQLite ve Kyoto Cabinet ile farklı senaryolarda karşılaştıran kıyaslamalar sağladı.[11] LevelDB yazma işlemlerinde ve sıralı okuma işlemlerinde hem SQLite hem de Kyoto Kabini'nden daha iyi performans gösterir. Ayrıca toplu yazma işlemlerinde de mükemmeldir, ancak büyük değerlerle uğraşırken SQLite'dan daha yavaştır. Şu anda yayınlanan karşılaştırmalar, sonuçların önceki bir sürümünde SQLite yapılandırma hataları kaydedildikten sonra güncellendi.[12]

Hatalar ve güvenilirlik[değiştir | kaynağı değiştir]

LevelDB veritabanında bozulma hataları geçmişi vardır.[13][14][15][16][17][18] 2014'te yapılan bir araştırma, bu veritabanının eski dosya sistemlerinde bir çökme veya elektrik kesintisinden sonra bozulabileceğini ortaya çıkardı.[19]

Kaynakça[değiştir | kaynağı değiştir]

  1. ^ "Releases - google/leveldb". 29 Şubat 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Mayıs 2019GitHub vasıtasıyla. 
  2. ^ "Google Research Scientists and Engineers: Jeffrey Dean". Google, Inc. 19 Kasım 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Şubat 2020. 
  3. ^ "Research Scientists and Engineers: Sanjay Ghemawat". Google, Inc. 19 Kasım 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Şubat 2020. 
  4. ^ "Google Open-Sources NoSQL Database Called LevelDB". ReadWriteWeb. 30 Temmuz 2011. 9 Ekim 2012 tarihinde kaynağından arşivlendi. Erişim tarihi: 30 Temmuz 2011. 
  5. ^ "Google Open Source Blog: LevelDB: A Fast Persistent Key-Value Store". Google, Inc. 26 Mart 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Şubat 2020. 
  6. ^ "LevelDB storage engine". 14 Eylül 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Şubat 2020. 
  7. ^ "LevelDB mailing list: "Current Status of LevelDB"". [ölü/kırık bağlantı]
  8. ^ LevelDB 6 Nisan 2016 tarihinde Wayback Machine sitesinde arşivlendi.. Docs.basho.com. Retrieved on 2013-09-18.
  9. ^ "Chapter 7. The Blockchain". 7 Mayıs 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 8 Ocak 2015. 
  10. ^ "Arşivlenmiş kopya". 24 Şubat 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Şubat 2020. 
  11. ^ "LevelDB Benchmarks". Google, Inc. 20 Ağustos 2011 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Şubat 2020. 
  12. ^ "LevelDB Benchmark discussion". 24 Şubat 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Şubat 2020. 
  13. ^ "Repairing LevelDB". 6 Nisan 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Şubat 2020. 
  14. ^ Issues · google/leveldb · GitHub
  15. ^ "Unrecoverable corruption in Chromium". 12 Aralık 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Şubat 2020. 
  16. ^ "Corruption in syncthing". 24 Şubat 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Şubat 2020. 
  17. ^ "Corruption after power loss". 11 Haziran 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Şubat 2020. 
  18. ^ "Corruption in Ethereum". 24 Şubat 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Şubat 2020. 
  19. ^ "All File Systems Are Not Created Equal: On the Complexity of Crafting Crash-Consistent Applications". 24 Şubat 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Şubat 2020.