1 puan yazan GN⁺ 2025-03-15 | 1 yorum | WhatsApp'ta paylaş

IO cihazları ve gecikme süresi

  • Kalıcı depolama aygıtları, modern bilgisayar sistemlerinin temel unsurlarından biridir ve güç kapatılsa bile verileri saklayabilir. CPU yazmaçları, CPU önbelleği ve RAM gibi uçucu depolama aygıtlarının aksine sürekli güç gerektirmez.

Teyp depolama aygıtları

  • 1950'lerden beri bilgisayarlar, kalıcı dijital depolama için teyp sürücülerini kullanıyor. Teyp, uzun veri dizilerini depolamak için uygundur ve büyük miktarda verinin güvenli biçimde saklanması gerektiği ancak sık okunmasının gerekmediği durumlar için elverişlidir.
  • Teyp, düşük maliyet ve uzun ömür sunar; CERN ve AWS gibi büyük ölçekli veri depolarında hâlâ kullanılmaktadır.

Sabit disk sürücüsü (HDD)

  • Sabit disk sürücüsü, teybe kıyasla daha hızlı veri erişimi sunar ve verileri dairesel metal disklerde depolar. Diskin tüm yüzey alanı her zaman kullanılabildiği için veri okuma ve yazma gecikmesi azalır.
  • HDD, komut kuyruğunu destekleyerek birden fazla komutun paralel yürütülmesine olanak tanır.

Katı hal sürücüsü (SSD)

  • Katı hal sürücüsü, mekanik parça olmadan verileri elektronik olarak okur ve yazar; NAND flash kullanarak kalıcı depolama sağlar.
  • SSD, paralel işleme ve garbage collection ile performansı optimize edebilir. Verilerin dizilimi performansı etkileyebilir.

Bulutta depolama

  • Buluta geçiş, IO performansında değişikliklere yol açtı ve birçok şirket sunucularını ve veritabanı sistemlerini buluta taşıdı.
  • Bulut ortamlarında depolama ile hesaplamanın ayrılması yaygındır; bu, veri güvenliği ve esneklik sağlar, ancak performans düşüşüne neden olabilir.

Depolama ile hesaplamanın ayrılması

  • Geleneksel olarak sunucular kalıcı depolama aygıtlarını doğrudan bağlı şekilde kullanıyordu; ancak bulutta depolamanın ağ üzerinden bağlanması yaygın bir yaklaşımdır.
  • Ağa bağlı depolama veri güvenliği sağlar, ancak IO performansını olumsuz etkileyebilir.

Yerel ve ağ depolaması

  • Yerel NVMe SSD'ler çok yüksek IO hızı sunar ve ağa bağlı depolamaya kıyasla daha düşük gecikmeye sahiptir.
  • Ağa bağlı depolamada IO işlemleri üzerinde kısıtlamalar olabilir ve bu da performans düşüşüne yol açabilir.

Çözüm: Metal

  • Metal, PlanetScale'in sunduğu bir çözümdür; doğrudan bağlı NVMe SSD sürücüleri kullanarak üstün performans ve ölçeklenebilirlik sağlar.
  • Metal kümesi, varsayılan olarak bir birincil sunucu ve iki kopyadan oluşur; bu da veri dayanıklılığını garanti eder ve depolama kapasitesinin kolayca genişletilmesini sağlar.
  • Metal veritabanında IO işlemleri üzerinde yapay kısıtlamalar yoktur ve IO işlemleri en düşük gecikmeyle gerçekleştirilebilir.

1 yorum

 
GN⁺ 2025-03-15
Hacker News yorumu
  • Blog yazarının bu yazıyı yazarken çok eğlendiği belirtiliyor. Binlerce satır JavaScript kullanarak etkileşimli görseller oluşturmuş
  • SQLite+NVMe’yi uzun zamandır savunduğunu belirtiyor. Bunun yeni bir kalıp olduğunu ve yatay ölçekleme olmadan da sorunları çözme olasılığı sunduğunu söylüyor
    • Performans sorunlarında en önemli şey gecikmedir
    • Özellikle de işlemlerin sıralı olarak yürütülmesi gerektiği durumlarda daha da önemlidir
    • SQLite’ı NVMe üzerinde çalıştırınca başka sağlayıcıların sunamayacağı bir gecikme avantajı elde edilebilir
    • Gerçek dünyadaki çoğu kullanım senaryosunda bellekte çalıştırmak, NVMe kalıcılığına kıyasla çok daha büyük bir avantaj sağlamaz
  • Bunun bir ürün tanıtımı olduğunu unutturacak kadar bilgi dolu olduğunu övüyor. Harika görselleri ve etkileşimliliği anıyor
  • Disk IO animasyonunu izlerken Melvin Kaye’i hatırladığını söylüyor
    • Mel, zaman gecikme döngüleri yazmıyordu
    • Flexowriter’ın çıktı karakterleri arasında gecikmeye ihtiyaç duyduğu durumda da aynı şey geçerliydi
    • Komutları, gerektiğinde okuma kafasının hemen arkasında olacak şekilde davula yerleştiriyordu
    • Davul, bir sonraki komutu bulmak için tam bir dönüş yapmak zorundaydı
  • Blogun iyi olduğunu söylüyor. Genel olarak bulut depolamanın "anormal derecede yavaş" olduğuna dikkat çekiyor
    • Yakın zamanda S3/obje depolamada artımlı indeksleri saklama desteği eklediklerini belirtiyor
    • NVMe’yi daha uzun süre kullanmalarının nedeni, önceki yazıda bahsedilen performans avantajlarıydı
    • Daha iyi bir çözümle bu alanı dönüştürecek birilerinin çıkmasını umduğunu söylüyor
  • Dağıtık depolamayla ilgili olarak bu yazıda yeterince ele alınmamış bir noktaya işaret ediyor
    • Bazı sistemler doğası gereği replikasyonu desteklemez
    • Cassandra kümesi ve MySQL master-slave replikasyonu yapabilir, ancak birçok sistem yapamaz
    • Bulutta NVMe depolama kullanırken bakım aralıklarına ve bulut tarafından başlatılan drain süreçlerine saygı göstermek gerekir
    • Depolamayı işlem gücünden ayırmak, bulut operatörünün gerektiğinde işlem katmanını taşımasına imkân verir
    • Veri işlemden bağımsız olduğundan, bulut operatörü veri sistemi ve drain işlemlerini yönetebilir
  • Metal çok havalı görünüyor. Önceki işyerinde GCP’nin instance-local SSD’sini kullanmaya çalıştıklarında ciddi güvenilirlik sorunları yaşadıklarını belirtiyor
    • Cihazdaki blokların veri kaybetmesi gibi bir sorun vardı
    • Bu durumun düzelip düzelmediğini merak ediyor
    • Hangi makine tipinin kullanıldığını soruyor
    • Çözüm olarak Discord’un ağ diskini kullanma yönteminden bahsediyor
  • PlanetScale Metal çok sağlam görünüyor. Sürümlerde gecikmenin ciddi biçimde düştüğünü görmek her zaman ilginçtir
  • Çok iyi bir yazı olduğunu söylüyor. Rastgele yazma görselleştirmesi çok iyi yapılmış
    • Bulutta ağa bağlı depolamanın bir başka sorunu da IOPS sınırlarıdır
    • AWS ve Google Cloud dahil birçok bulut sağlayıcısı bu modeli kullanır ve gönderebileceğiniz IO işlemi miktarını sınırlar
    • Depolama doğrudan işlem örneğine bağlıysa, IO işlemleri üzerinde yapay bir sınır yoktur
    • Donanımın izin verdiği ölçüde hızlı okuma ve yazma yapılabilir
    • "IOPS" sınırının belirli ağ trafiğine yönelik bir sınır olup olmadığını merak ediyor
    • Bunun EBS volume ağ trafiği anlamına gelip gelmediğini soruyor
    • Bunun maliyet tasarrufu sağlayıp sağlamadığını, AWS’nin tuhaf arbitrajından mı kaynaklandığını, yoksa daha az EBS ağı kullanıldığı için mi verimlilik sağlandığını merak ediyor
    • Depolama ile işlemi aynı makinede tutmanın gecikme açısından avantajlı olduğunu açıkça görüyor
    • Maliyet başına throughput açısından da bir avantaj olup olmadığını merak ediyor
  • "Serverless" veritabanı sağlayıcılarının nasıl "düşük gecikmeli" erişim reklamı yapabildiğini merak ediyor
    • S3 gibi obje depolama kullandıklarını, bunun da ağ depolamadan çok daha kötü gecikmeye sahip olmasının beklendiğini söylüyor
    • Bir önbellekleme katmanı kurduklarını ve veriyi yerel olarak bağlı NVMe üzerinde tutacaklarını belirtiyor