Partisyonlar ve veri dağılımı

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

MemoryStoreHashMap veri yapısının piyasaya sürülmesiyle birlikte, Roblox bireysel veri yapıları için mevcut tüm sınırlamaları kaldırdı ve bunları tek bir, küresel "partisyona özgü" sınırlama limitiyle değiştirdi. Tam limit, dahili değerlere ve otomatik partisyonlama sürecinin verilerinizi nasıl dağıttığına bağlı olarak dalgalanır, ancak genellikle, özellikle hash haritalar için, sınırlamadan önce çok daha yüksek bir kullanım sağlar. Bu yeni limit, tüm veri yapıları arasında bellek depolarının esnek bir şekilde kullanılmasını sağlar.

Partisyonlar

MemoryStores API, verileri partisyonlar üzerinde saklar, bu da depolamanın sadece alt bölümleridir. Bir bellek deposuna bir öğe yazdığınızda, o öğe tam olarak bir partisyona kaydedilir. Partisyonlar, MemoryStores API tarafından tamamen yönetilir; onları kendiniz yönetmeniz gerekmez.

Partisyon ataması

Partisyon depolama, bir öğenin saklanmakta olduğu veri yapısına göre farklılık gösterir. Sıralı haritalar ve kuyruklar için, her veri yapısına tek bir partisyon atanır.

Örneğin, PlayerScores adlı sıralı bir haritaya ve oyunu oynamak için bekleyen oyuncuların yer aldığı PlayerLine adlı bir kuyruk olan bir karnaval oyununu düşünün:

Sıralı haritalar ve kuyruklardan farklı olarak, hash haritalarına birden fazla partisyon tahsis edilir ve veriler bu partisyonlar arasında otomatik olarak dağıtılır. Prizes adlı bir hash haritası eklerseniz, partisyonlar aşağıdaki gibi görünebilir:

Hash haritasının tüm partisyonlarda var olduğunu ve her partisyonun bazı öğe alt kümelerine sahip olduğunu not alın.

Sınırlar

Bir partisyona özgü limite sahip olmak, tüm veri yapıları için daha yüksek bir veri akışına izin verir. Ayrıca hash haritalarını da destekler çünkü bunlar tüm partisyonlar arasında dağıtılmıştır.

Örneğin, 50.000 istekte bulunan bir örnek partisyona özgü limit düşünün (RPM):

  • En iyi durumda, bir sıralı harita ve bir kuyruk 50.000 RPM ile sınırlıdır, çünkü her biri tek bir partisyon üzerinde bulunur.
  • Hash haritalarına yapılan istekler, kendileri partisyonlar arasında yayılmış olan öğe anahtarları arasında dağılır, bu nedenle hash haritaları, isteklerin birçok öğe anahtarı arasında dağıtıldığını varsayarak, sınırlamadan önce çok daha yüksek bir etkin limite sahip olabilir.
  • Hash haritaları, istekleri partisyonlar arasında yayarak daha yüksek bir veri akışı sağlarken, bireysel öğe anahtarları, sistemin kararlılığını korumak için hala oran sınırlamasına tabi tutulur. Eğer çoğu trafiğiniz tek bir öğe anahtarını hedefliyorsa, o anahtar hala sınırlı olabilir.
  • Etkili bir şekilde ölçeklenmek ve bu anahtara özgü sınırlardan kaçınmak için anahtar parçalama (key sharding) uygulayın. Okuma ve yazmaları, tıkanıklıkları azaltmak ve düzgün bir performansı sürdürmek için birkaç öğe anahtarı arasında eşit şekilde yayarak dağıtın.

Bu nedenle, sıralama veya "ilk giren, ilk çıkar" işlevselliğine ihtiyacınız yoksa, hash haritaları genellikle bir bellek deposu veri yapısı için en iyi seçimdir. Daha fazla bilgi için en iyi uygulamalara bakın.

©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.