How can you know which DataStore is causing the queue to fill up?

My error report is getting this error quite a lot. I’ve never seen anybody in the community complain about issues, but I still would love it to be fixed.

The thing is, all the keys are just the player’s IDs… For EVERY datastore in the game (there’s 3 datastores). I’d switch to a key system like “123456789-datastore1” but It’s too late now. All my players have significant progress and I’d hate to have to reset their progress just because of this.

Is there any way I can see which DataStores it’s adding to the queue? Or just DataStore usage in general? The “Memory Store” on the game’s Analytics just returns “No data for this time period” so I’m completly lost on what to do.

Please help! Thanks.

function accessDSS(dataStoreName, operation)
    print(string.format("[%s] DSS %s: %s", os.date(), dataStoreName, operation))
end

local myDataStore = game:GetService("DataStoreService"):GetDataStore("ur data")

local success, data = pcall(function()
    return myDataStore:GetAsync("key")
end)

if success then
    logDataStoreAccess("MyDataStoreName", "Read")
else
    warn("error: " .. tostring(data))
end

-- Example of writing to the DataStore
success, data = pcall(function()
    myDataStore:SetAsync("key", "someValue")
end)

if success then
    logDataStoreAccess("MyDataStoreName", "Write")
else
    warn("error: " .. tostring(data))
end

try this

What is this for? You don’t even define what logDataStoreAccess() is in the script you sent…?

1 Like

basically when calling DS:SetAsync or DS:GetAsync it prints out the datastore’s name, you can look at the most repeated one and from there try to see whats causing the problem.

Them are not errors, they are warnings. Each player gets an amount of data syncs per minute. This is telling you they are in a queue. Not they they will fail. You would really have to push it per player to make them errors. Just slow down how fast you’re sending them to avoid seeing this. This can happen with just two sent real fast… As one would then be in a queue.

Oh, alright! Most datastore requests are done just when the game starts, so I see why it would cause something like that.

I thought the warning entailed that the queue was already filled and it would start dropping requests.

It says IF… meaning this could be a problem IF it fills up the queue. In fact it says it will start dropping them. I’m sure it would be best to not have that warning at all. This is showing you what needs to be looked at before it becomes a real problem. As in you’re sending them a bit too fast.

1 Like