Does DataStore budget accumulate over time?

Hello,

I’m checking the datastore limits and just trying to be sure I get my numbers right so I don’t exceed the budget and I handle the budget accordingly.

So I was analyzing the Set() request budget per minute which should be 70 in my case (60 + me, the only user in studio * 10).

And when I called GetRequestBudget API it kept returning a value incrementing by 70. So at the start of the server the budget was ~102, then it went up to 172, then 242, etc per minute.

DataStoreService:GetRequestBudgetForRequestType(Enum.DataStoreRequestType.SetIncrementAsync)

Does this mean if I can strategically store only on demand I can accumulate a higher budget ( > 70 stores) for later? Or should I stick with the rule of thumb 60 + num players * 10 / minute?

Thanks for reading.

2 Likes

Honestly you shouldn’t be hitting anywhere close to the allotted budget if you’re handling your datastores right and have a solid understanding of Caching. Just my two cents.

2 Likes

You shouldn’t use more budget than you get each minute or you will slowly run out of budget

Yes, you start of with a reasonable budget, which then will accumulate over time (there probably is a maximum but I haven’t tested that). Why would you need to fire off a lot of successive GetAsync calls though? Or why would you be hitting the rate limits in the first place? If you’re worried about rate limits you’re probably doing something wrong.

Edit: Just tested with 2 players, and the maximum budget for GetAsync was 240, so it’s probably about 3x of the budget you get per minute. (Studio appears to not have this limitation)

Edit 2: 3 players all maximum

5 Likes

@Isosta yeah I’m caching in many ways. I’m working on a very dynamic DataStore system that handles capturing the environment for the players so I worry that the there may be quite a few requests eventually. Regardless I think the reason for wondering about the budget is I’m just making sure that I can produce a debugging system that gives good statistics on the usage.

I don’t think I will get anywhere close to the limits. Just for benchmarking purposes, I want to see how good I’m doing. :slightly_smiling_face:

Where are you seeing the UI for those Async stats?

Edit: Never mind I see it now in the developer console. Can’t believe I haven’t noticed that before. Really helpful.

1 Like