Veri depolarına yaptığınız istekler, zayıf bağlantı veya diğer sorunlar nedeniyle başarısız olabilir. Hataları işlemek ve hata kodu ile mesajlar döndürmek için veri depo fonksiyonlarını pcall() içine sarın.
Başarısız bir yazma çağrısı, örneğin UpdateAsync(), oyun sunucusunun başarılı bir yanıt almadığı anlamına gelir. Bu, arka uç yazısının gerçekleşmediğini daima garanti etmez. Bazı hata senaryolarında, son yazma durumu çağırıcıya bir sonraki okuma işlemiyle doğrulanana kadar bilinmez.
Hata kodu referansı
| Hata kodu | Hata adı | Hata mesajı | Notlar | |
|---|---|---|---|---|
| 101 | KeyNameEmpty | Anahtar adı boş olamaz. | Veri deposu fonksiyonuna girilen anahtarın boş bir dize olduğunu kontrol edin. | |
| 102 | KeyNameLimit | Anahtar adı 50 karakter limitini aşıyor. | Veri deposu fonksiyonuna girilen anahtarın uzunluğunun 50'yi aşıp aşmadığını kontrol edin. | |
| 103 | ValueNotAllowed | DataStore'da X kullanımına izin verilemez. | Kötü bir güncelleme işlevi X türünde bir değer döndürdü. | |
| 104 | CantStoreValue | DataStore'da X saklanamaz. | Güncelleme işlevi X türünde bir değer döndürdü ve bu değer serileştirilemedi. | |
| 105 | ValueTooLarge | Serileştirilmiş değer X limitini aşıyor. | SetAsync() veya UpdateAsync() ile bir değer ayarlıyorsanız, değerin serileştirilmiş uzunluğu X boyutunu aşamaz. Verinin serileştirilmiş uzunluğunu kontrol etmek için JSONEncode() kullanın. | |
| 106 | MaxValueInvalid | MaxValue bir tamsayı olmalıdır. | GetSortedAsync() için maksimum bir değer geçiriyorsanız, bu değer bir tamsayı olmalıdır. | |
| 106 | MinValueInvalid | MinValue bir tamsayı olmalıdır. | GetSortedAsync() için bir minimum değer geçiriyorsanız, bu değer bir tamsayı olmalıdır. | |
| 106 | PageSizeGreater | PageSize önceden tanımlanmış bir aralıkta olmalıdır. | OrderedDataStore için minimum sayfa boyutu 1'dir. | |
| 106 | PageSizeLesser | PageSize önceden tanımlanmış bir aralıkta olmalıdır. | OrderedDataStore için maksimum sayfa boyutu 100'dür. | |
| 107 | MinMaxOrderInvalid | MaxValue MinValue'dan büyük veya eşit olmalıdır. | Maksimum değer, GetSortedAsync() için minimum değerden büyük veya eşit olmalıdır. | |
| 301 | GetAsyncThrottle | GetAsync isteği bırakıldı. İstek throttling'e tabi oldu ancak kuyruk doluydu. | GetAsync() isteği maksimum kuyruk boyutunu aştı ve Roblox mevcut throughput'ta istekleri işleyemiyor. | |
| 302 | SetAsyncThrottle | SetAsync isteği bırakıldı. İstek throttling'e tabi oldu ancak kuyruk doluydu. | SetAsync() isteği maksimum kuyruk boyutunu aştı ve Roblox mevcut throughput'ta istekleri işleyemiyor. | |
| 303 | IncreAsyncThrottle | IncrementAsync isteği bırakıldı. İstek throttling'e tabi oldu ancak kuyruk doluydu. | IncrementAsync() isteği maksimum kuyruk boyutunu aştı ve Roblox mevcut throughput'ta istekleri işleyemiyor. | |
| 304 | UpdateAsyncThrottle | UpdateAsync isteği bırakıldı. İstek throttling'e tabi oldu ancak kuyruk doluydu. | UpdateAsync() isteği maksimum kuyruk boyutunu aştı ve Roblox mevcut throughput'ta istekleri işleyemiyor. | |
| 304 | TransformThrottle | UpdateAsync isteği bırakıldı. İstek throttling'e tabi oldu ancak kuyruk doluydu. | UpdateAsync() isteği maksimum kuyruk boyutunu aştı ve Roblox mevcut throughput'ta istekleri işleyemiyor. | |
| 305 | GetSortedThrottle | GetSorted isteği bırakıldı. İstek throttling'e tabi oldu ancak kuyruk doluydu. | GetSortedAsync() isteği maksimum kuyruk boyutunu aştı ve Roblox mevcut throughput'ta istekleri işleyemiyor. | |
| 306 | RemoveAsyncThrottle | RemoveAsync isteği bırakıldı. İstek throttling'e tabi oldu ancak kuyruk doluydu. | RemoveAsync() isteği maksimum kuyruk boyutunu aştı ve Roblox mevcut throughput'ta istekleri işleyemiyor. | |
| 401 | DataModelNoAccess | İstek başarısız oldu. DataModel, deneyim kapanırken erişilemez. | DataModel başlatılmamış çünkü deneyim kapanıyor. | |
| 402 | LuaWebSrvsNoAccess | İstek başarısız oldu. LuaWebService, deneyim kapanırken erişilemez. | LuaWebService başlatılmamış çünkü deneyim kapanıyor. | |
| 403 | StudioAccessToApisNotAllowed | API erişimi etkinleştirilmediği için Studio'dan DataStore'a yazılamaz. | Studio'da veri mağazalarını kullanmak için API erişiminin etkin olması gerekir. | |
| 404 | InternalError | OrderedDataStore mevcut değil. | Bu isteğe ilişkin OrderedDataStore bulunamadı. Bu, veri bozulmasının bir işareti olabilir. Daha sonra tekrar deneyin. | |
| 501 | InternalError | Cevap, veri bozulmuş olabileceği için ayrıştırılamıyor. | Sunucu, isteğinize yanıtı ayrıştıramadı. Bu, veri bozulmasının bir işareti olabilir. Daha sonra tekrar deneyin. | |
| 502 | RequestRejected | API Hizmetleri, isteği hata ile X ile reddetti. | Roblox sunucularında işleme sırasında hata X meydana geldi. Daha sonra tekrar deneyin. | |
| 503 | InternalError | Veri deposu isteği başarılıydı ama anahtar bulunamadı. | İstenen anahtar veri deposunda bulunamadı. Bu, veri bozulmasının bir işareti olabilir. Daha sonra tekrar deneyin. | |
| 504 | InternalError | Veri deposu isteği başarılıydı ancak yanıt doğru şekilde formatlanmamıştı. | Sunucu, isteğinize yanıtı ayrıştıramadı. Bu, veri bozulmasının bir işareti olabilir. Daha sonra tekrar deneyin. | |
| 505 | InternalError | OrderedDataStore isteği başarılıydı ama yanıt doğru şekilde formatlanmamıştı. | Sunucu, OrderedDataStore isteğinize yanıtı ayrıştıramadı. Bu, veri bozulmasının bir işareti olabilir. Daha sonra tekrar deneyin. | |
| 509 | OperationNotAllowed | Kişisel RCC'de çalışırken veri deposu işlemleri engellenmiştir, olası veri bozulmalarını önlemek için. | Özel RCC kanallarında veri deposu yazmaları engellenmiştir. | |
| 511 | AttributeSizeTooLarge | Meta veri özellik boyutu X limitini aşıyor. | Serileştirilmiş meta veri boyutu X limitini aşıyor. Değer X dinamik. Boyut değişirse, değer de değişir. | |
| 512 | UserIdLimitExceeded | UserID boyutu X limitini aşıyor. | Kullanıcı tarafından sağlanan kullanıcı kimlikleri dizisinin uzunluğu X limitini aşıyor. | |
| 513 | AttributeFormatError | Anahtar userId formatı geçersiz. | Sağlanan kullanıcı kimliği bir sayı değildir. | |
| 513 | AttributeFormatError | Anahtar meta veri formatı geçersiz. | Meta veri bir tablo değildir. | |
| GetVersionAsyncThrottle | GetVersionAsync isteği bırakıldı. İstek throttling'e tabi oldu. | GetVersionAsync() isteği maksimum kuyruk boyutunu aştı ve Roblox mevcut throughput'ta istekleri işleyemiyor. | ||
| GetVersionAtTimeAsyncThrottle | GetVersionAtTimeAsync isteği bırakıldı. İstek throttling'e tabi oldu. | GetVersionAtTimeAsync() isteği maksimum kuyruk boyutunu aştı ve Roblox mevcut throughput'ta istekleri işleyemiyor. | ||
| ListDataStoresAsyncThrottle | ListDataStoresAsync isteği bırakıldı. İstek throttling'e tabi oldu. | ListDataStoresAsync() isteği maksimum kuyruk boyutunu aştı ve Roblox mevcut throughput'ta istekleri işleyemiyor. | ||
| ListKeysAsyncThrottle | ListKeysAsync isteği bırakıldı. İstek throttling'e tabi oldu. | ListKeysAsync() isteği maksimum kuyruk boyutunu aştı ve Roblox mevcut throughput'ta istekleri işleyemiyor. | ||
| ListVersionsAsyncThrottle | ListVersionsAsync isteği bırakıldı. İstek throttling'e tabi oldu. | ListVersionsAsync() isteği maksimum kuyruk boyutunu aştı ve Roblox mevcut throughput'ta istekleri işleyemiyor. | ||
| RemoveVersionAsyncThrottle | RemoveVersionAsync isteği bırakıldı. İstek throttling'e tabi oldu. | RemoveVersionAsync() isteği maksimum kuyruk boyutunu aştı ve Roblox mevcut throughput'ta istekleri işleyemiyor. | ||
| InvalidTimestamp | Zaman damgası pozitif olmalı ve gelecekte on dakikadan fazla olmamalıdır. | GetVersionAtTimeAsync() için sağlanan zaman damgası geçerli değildi. | ||
| StandardReadExperienceThrottled | StandardRead isteği deneyim limitleri nedeniyle throttling'e tabi oldu. | GetAsync(), GetVersionAsync(), GetVersionAtTimeAsync(), veya standart bir veri deposunun UpdateAsync() okumasının StandardRead deneyim seviyeli oran limitini aştığı bir istek yapıldı. | ||
| StandardWriteExperienceThrottled | StandardWrite isteği deneyim limitleri nedeniyle throttling'e tabi oldu. | SetAsync(), IncrementAsync(), veya standart bir veri deposunun UpdateAsync() yazma işleminin StandardWrite deneyim seviyeli oran limitini aştığı bir istek yapıldı. | ||
| StandardListExperienceThrottled | StandardList isteği deneyim limitleri nedeniyle throttling'e tabi oldu. | ListKeysAsync(), ListVersionsAsync(), veya standart veri depolarındaki ListDataStoresAsync() için yapılan bir isteğin StandardList deneyim seviyeli oran limitini aştığı bir istek yapıldı. | ||
| StandardRemoveExperienceThrottled | StandardRemove isteği deneyim limitleri nedeniyle throttling'e tabi oldu. | Bir standart veri deposunda RemoveAsync() için yapılan bir isteğin StandardRemove deneyim seviyeli oran limitini aştığı bir istek yapıldı. | ||
| OrderedReadExperienceThrottled | OrderedRead isteği deneyim limitleri nedeniyle throttling'e tabi oldu. | GetAsync() veya sıralı bir veri deposunun UpdateAsync() okuması için yapılan bir isteğin OrderedRead deneyim seviyeli oran limitini aştığı bir istek yapıldı. | ||
| OrderedWriteExperienceThrottled | OrderedWrite isteği deneyim limitleri nedeniyle throttling'e tabi oldu. | SetAsync(), IncrementAsync(), veya sıralı bir veri deposundaki UpdateAsync() yazma işleminin OrderedWrite deneyim seviyeli oran limitini aştığı bir istek yapıldı. | ||
| OrderedListExperienceThrottled | OrderedList isteği deneyim limitleri nedeniyle throttling'e tabi oldu. | GetSortedAsync()'a yapılan bir istek, sıralı bir veri deposundaki OrderedList deneyim seviyeli oran limitini aştı. | ||
| OrderedRemoveExperienceThrottled | OrderedRemove isteği deneyim limitleri nedeniyle throttling'e tabi oldu. | RemoveAsync()'a yapılan bir istek, sıralı bir veri deposundaki OrderedRemove deneyim seviyeli oran limitini aştı. | ||
| StandardReadGameServerThrottled | StandardRead isteği oyun sunucu limitleri nedeniyle veya kuyruk dolu olduğundan throttle edildi. | GetAsync(), GetVersionAsync(), GetVersionAtTimeAsync(), veya standart bir veri deposunun UpdateAsync() okumasının StandardRead oyun sunucu seviyeli oran limitini aştığı bir istek yapıldı. | ||
| StandardWriteGameServerThrottled | StandardWrite isteği oyun sunucu limitleri nedeniyle veya kuyruk dolu olduğundan throttle edildi. | SetAsync(), IncrementAsync(), veya standart bir veri deposunun UpdateAsync() yazma işlemine yapılan bir isteğin StandardWrite oyun sunucu seviyeli oran limitini aştığı bir istek yapıldı. | ||
| StandardListGameServerThrottled | StandardList isteği oyun sunucu limitleri nedeniyle veya kuyruk dolu olduğundan throttle edildi. | ListKeysAsync(), ListVersionsAsync(), veya standart veri depolarındaki ListDataStoresAsync() isteğinin StandardList oyun sunucu seviyeli oran limitini aştığı bir istek yapıldı. | ||
| StandardRemoveGameServerThrottled | StandardRemove isteği oyun sunucu limitleri nedeniyle veya kuyruk dolu olduğundan throttle edildi. | Standart bir veri deposunda RemoveAsync() isteğinin StandardRemove oyun sunucu seviyeli oran limitini aştığı bir istek yapıldı. | ||
| OrderedReadGameServerThrottled | OrderedRead isteği oyun sunucu limitleri nedeniyle veya kuyruk dolu olduğundan throttle edildi. | GetAsync() veya sıralı bir veri deposunun UpdateAsync() okumasının OrderedRead oyun sunucu seviyeli oran limitini aştığı bir istek yapıldı. | ||
| OrderedWriteGameServerThrottled | OrderedWrite isteği oyun sunucu limitleri nedeniyle veya kuyruk dolu olduğundan throttle edildi. | SetAsync(), IncrementAsync(), veya sıralı bir veri deposunun UpdateAsync() yazma işleminin OrderedWrite oyun sunucu seviyeli oran limitini aştığı bir istek yapıldı. | ||
| OrderedListGameServerThrottled | OrderedList isteği oyun sunucu limitleri nedeniyle veya kuyruk dolu olduğundan throttle edildi. | GetSortedAsync()'a yapılan bir istek, sıralı bir veri deposundaki OrderedList oyun sunucu seviyeli oran limitini aştı. | ||
| OrderedRemoveGameServerThrottled | OrderedRemove isteği oyun sunucu limitleri nedeniyle veya kuyruk dolu olduğundan throttle edildi. | RemoveAsync()'a yapılan bir istek, sıralı bir veri deposundaki OrderedRemove oyun sunucu seviyeli oran limitini aştı. |
Sunucu hata kodları
| Hata adı | Hata mesajı | Notlar |
|---|---|---|
| DatastoreDeleted | Veri deposu silindi. | Veri deposu üzerinde bir işlem yapılamadı çünkü veri deposu daha önce silindi. |
| DatastoreThrottled | İstek oranı, datastore için izin verilen maksimumu aşıyor. | Tek bir veri deposuna çok fazla istek gönderildi. |
| InternalServerError | Bir iç sunucu hatası meydana geldi. | Roblox sunucularında nadiren karşılaşılan bir hata. Tekrar deneyin, tercihen üssel bir duraklama ile. |
| InvalidExclusiveStartKey | Sağlanan özel başlangıç anahtarı geçerli değildir. | Bir liste işlemi için sağlanan özel başlangıç anahtarı (imleç) geçerli değildir. Örneğin, ListKeysAsync(). |
| InvalidPlace | Sağlanan yer geçersizdir. | Yer için eşleşen Evren ID'si yok. Daha sonra tekrar deneyin. |
| InvalidTarget | Sağlanan hedef geçersizdir. | Sıralı veri deposu anahtar adı 50 karakter limitini aşıyor. |
| InvalidUniverse | Sağlanan evren geçersizdir. | Evren için eşleşen Yer ID'si yok. Daha sonra tekrar deneyin. |
| InvalidUserIds | Sağlanan kullanıcı kimlikleri geçerli bir formatta değildir. | Kullanıcı kimliklerini ayrıştırmakta başarısız olundu. |
| KeyThrottled | İstek oranı, anahtar için izin verilen maksimumu aşıyor. | Bir anahtar için izin verilen maksimum istek oranını aşan bir istek yapılmıştır. |
| KeyNotFound | İstenen anahtar mevcut değil. | Anahtar mevcut değil. |
| N/A | İlerlemek için sayfa yok. | Bu hata, son sayfada Pages:AdvanceToNextPageAsync() çağrıldığında oluşur. |
| StandardReadExperienceThrottled | Standart okuma isteği oranı deneyim için izin verilen maksimumu aşıyor. | GetAsync(), GetVersionAsync(), GetVersionAtTimeAsync(), veya standart bir veri deposunda UpdateAsync() okuması için yapılan istek, StandardRead deneyim seviyeli oran limitini aştı. |
| StandardWriteExperienceThrottled | Standart yazma isteği oranı deneyim için izin verilen maksimumu aşıyor. | SetAsync(), IncrementAsync(), veya standart bir veri deposunda UpdateAsync() yazma işlemi için yapılan istek, StandardWrite deneyim seviyeli oran limitini aştı. |
| StandardListExperienceThrottled | Standart liste isteği oranı deneyim için izin verilen maksimumu aşıyor. | ListKeysAsync(), ListVersionsAsync(), veya standart veri depolarındaki ListDataStoresAsync() için yapılan bir isteğin StandardList deneyim seviyeli oran limitini aştığı bir istek yapıldı. |
| StandardRemoveExperienceThrottled | Standart kaldırma isteği oranı deneyim için izin verilen maksimumu aşıyor. | Bir standart veri deposunda RemoveAsync() isteğinin StandardRemove deneyim seviyeli oran limitini aştığı bir istek yapıldı. |
| OrderedReadExperienceThrottled | Sıralı okuma isteği oranı deneyim için izin verilen maksimumu aşıyor. | GetAsync() veya sıralı bir veri deposunun UpdateAsync() okuması için yapılan bir istek, OrderedRead deneyim seviyeli oran limitini aştı. |
| OrderedWriteExperienceThrottled | Sıralı yazma isteği oranı deneyim için izin verilen maksimumu aşıyor. | SetAsync(), IncrementAsync(), veya sıralı bir veri deposunun UpdateAsync() yazma işlemi için yapılan bir istek, OrderedWrite deneyim seviyeli oran limitini aştı. |
| OrderedListExperienceThrottled | Sıralı liste isteği oranı deneyim için izin verilen maksimumu aşıyor. | GetSortedAsync()'a yapılan bir istek, sıralı bir veri deposundaki OrderedList deneyim seviyeli oran limitini aştı. |
| OrderedRemoveExperienceThrottled | Sıralı kaldırma isteği oranı deneyim için izin verilen maksimumu aşıyor. | RemoveAsync()'a yapılan bir istek, sıralı bir veri deposundaki OrderedRemove deneyim seviyeli oran limitini aştı. |
Limitler
Veri modellerinin limitleri vardır. Bir deneyim bu limitleri aşarsa, hizmet otomatik olarak deneyimin veri deposu kullanımını throttling'e tabi tutar ve gelecekteki istekleri aşağıdaki kuyruklardan birine yerleştirir:
- Set
- Sıralı set
- Get
- Sıralı get
Kuyruktaki istekler, alındıkları sıraya göre işlenir. Çağrılan fonksiyon, isteği hâlâ kuyrukta kaldığı sürece duraksamaya devam eder. Eğer veri deposu anahtarı kendisi throttling'e tabi tutulursa, istek bir kuyruğa yerleştirilir ama geçici olarak atlanır.
Her kuyruk 30 istek limiti ile sınırlıdır. Bir kuyruğun limiti aşıldığında, istekler 301-306 aralığında bir hata kodu ile başarısız olur, bu da isteklerin tamamen bırakıldığını gösterir.
Erişim limitleri
Veri depoları hem deneyim hem de sunucu seviyeli limitlere tabidir. Deneyim seviyeli limitler, deneyim genelindeki toplam eş zamanlı kullanıcı sayısına göre ölçeklenirken, sunucu seviyeli limitler yapılandırılabilir ve yaratıcı tarafından bir araç olarak kullanılmak üzere tasarlanmıştır.
Deneyim Limitleri
Her deneyime veri deposu türüne, istek türüne ve eş zamanlı kullanıcı sayısına dayalı olarak belirli sayıda veri deposu isteğine izin verilir. Her veri deposu türü ve istek türü için limit, listelenen tüm fonksiyonlar arasında paylaşılır.
UpdateAsync() fonksiyonu, hem okuma hem de yazma istek bütçesinden düşer. Tek bir çağrı her iki limiti de azaltır.
Standart veri depoları
| İstek türü | Fonksiyonlar | Dakikada istek |
|---|---|---|
| Okuma | GetAsync() GetVersionAsync() GetVersionAtTimeAsync() UpdateAsync() | 250 + eş zamanlıKullanıcılar × 40 |
| Yazma | SetAsync() IncrementAsync() UpdateAsync() | 250 + eş zamanlıKullanıcılar × 20 |
| Listeleme | ListDataStoresAsync() ListKeysAsync() ListVersionsAsync() | 10 + eş zamanlıKullanıcılar × 2 |
| Kaldırma | RemoveAsync() | 100 + eş zamanlıKullanıcılar × 40 |
Sıralı veri depoları
| İstek türü | Fonksiyonlar | Dakikada istek |
|---|---|---|
| Okuma | GetAsync() UpdateAsync() | 250 + eş zamanlıKullanıcılar × 40 |
| Yazma | SetAsync() IncrementAsync() UpdateAsync() | 250 + eş zamanlıKullanıcılar × 20 |
| Listeleme | GetSortedAsync() | 100 + eş zamanlıKullanıcılar × 2 |
| Kaldırma | RemoveAsync() | 100 + eş zamanlıKullanıcılar × 40 |
Sunucu limitleri
Her sunucu, o sunucudaki oyuncu sayısına dayalı her istek türü için yapılandırılabilir bir oran limiti taşır. Sunucular, ilk oluşturulduklarında bir kezliğine ek bir istek bütçesi kazanır. GetRequestBudgetForRequestType() API'sini kullanarak mevcut sunucunun her an yapabileceği veri deposu isteği sayısını onaylayabilirsiniz.
Bu limitler, yaratıcı tarafından yapılandırılabilir ve SetRateLimitForRequestType() API'si kullanılarak yaratıcı, her istek türü için kendi veri deposu oran limitlerini yapılandırabilir.
API çağrısı yapılmadığında aşağıdaki varsayılan oran limitleri geçerlidir:
Standart veri depoları
| İstek türü | DataStoreRequestType Enum | Fonksiyonlar | Dakikada istek |
|---|---|---|---|
| Okuma | StandardRead | GetAsync() GetVersionAsync() GetVersionAtTimeAsync() UpdateAsync() | 60 + numPlayers × 40 |
| Yazma | StandardWrite | SetAsync() IncrementAsync() UpdateAsync() | 60 + numPlayers × 40 |
| Listeleme | StandardList | ListDataStoresAsync() ListKeysAsync() ListVersionsAsync() | 5 + numPlayers × 2 |
| Kaldırma | StandardRemove | RemoveAsync() | 60 + numPlayers × 40 |
| KaldırmaVersiyonu (Kaldırıldı) | RemoveVersionAsync | RemoveVersionAsync() | 5 + numPlayers × 2 |
Sıralı veri depoları
| İstek türü | DataStoreRequestType Enum | Fonksiyonlar | Dakikada istek |
|---|---|---|---|
| Okuma | OrderedRead | GetAsync() UpdateAsync() | 60 + numPlayers × 40 |
| Yazma | OrderedWrite | SetAsync() IncrementAsync() UpdateAsync() | 30 + numPlayers × 5 |
| Listeleme | OrderedList | GetSortedAsync() | 5 + numPlayers × 2 |
| Kaldırma | OrderedRemove | RemoveAsync() | 30 + numPlayers × 5 |
Veri limitleri
Veri depoları, her bir giriş için ne kadar veri kullanılabileceğini sınırlar.
Veri deposu adı, anahtar adı ve kapsam hepsi belirli bir karakter uzunluğunun altında olmalıdır. Uzunluklarını kontrol etmek için string.len() kullanın.
Veri (anahtar değeri), başlangıç türünden bağımsız olarak bir dize olarak da saklanır. Verinin boyutunu JSONEncode() işlevi ile kontrol edebilirsiniz; bu işlev, Luau verilerini serileştirilmiş bir JSON tablosuna dönüştürür.
| Öğeler | En fazla karakter sayısı |
|---|---|
| Veri deposu adı | 50 |
| Anahtar adı | 50 |
| Kapsam | 50 |
| Veri (anahtar değeri) | 4,194,304 her bir anahtar için |
Meta veri limitleri
Kullanıcı tanımlı meta verilerin karakter sayısına ilişkin limitler.
| Öğeler | En fazla karakter sayısı |
|---|---|
| Anahtar adı | 50 |
| Değer | 250 |
| Anahtar-değer çiftleri | 300 |
Throughput limitleri
Anahtar başına throughput limitleri, Roblox sunucularında performansın optimal olmasını sağlar. Her limit, deneyim üzerindeki her bir anahtar için geçerlidir ve zamanla yenilenir.
Roblox, anahtara bağlı kota kullanımını son 60 saniye boyunca gözlemler. Eğer kullanım, mevcut isteği de kapsayacak şekilde throughput limitinin içinde ise, istek onaylanır. Kullanım limiti aşarsa, istek reddedilir.
| İstek türü | Limit |
|---|---|
| Okuma | Dakikada 25 MB |
| Yazma | Dakikada 4 MB |
Yukarıdaki throughput limitlerinin yanı sıra, Roblox verileri dahili bir şemaya dayalı olarak parçalara ayırır. Bu nedenle, arka uç sunucusu aynı veri deposuna yüksek hacimde istek alırsa, daha fazla throttling'e yol açabilir. Nedeni her ne olursa olsun, throttling ya DatastoreThrottled ya da KeyThrottled hataları olarak görünürken, throughput limitinin bir veri deposu veya bir anahtar için aşıp aşılmadığına bağlı olarak bu hata mesajları hem sıralı hem de standart veri depoları için geçerlidir.
Depolama limitleri
Gelecekte, ölçeklenebilir ve stabil bir depolama deneyimi sağlamak için veri depoları, depolama kullanımınız üzerinde bir deneyim seviyesinde depolama limiti uygulayacaktır.
Bu limit, her deneyiminiz için temel bir limitin ve deneyiminizdeki yaşam boyu kullanıcı sayısına dayalı bir kullanıcı başına limitin toplamı olacaktır. Yaşam boyu kullanıcı, deneyiminize en az bir kez katılan herhangi bir kullanıcıdır.
Depolama limiti şu formülle hesaplanacaktır: Toplam en son sürüm depolama limiti = 100 MB + 1 MB * yaşam boyu kullanıcı sayısı.
Sildiğiniz veya değiştirdiğiniz anahtarlar, sürüm API'leri aracılığıyla hala erişilebilir olsa bile, deneyiminizin depolama kullanımına katkıda bulunmaz. Ancak, Açık Bulut üzerinden silinen tüm veri depoları DeleteDataStore yöntemi, 30 günlük işleme dönemi boyunca depolama kullanımınıza katkıda bulunmaya devam eder, ta ki kalıcı olarak silinsinler.