Most efficient method of handling MemoryStoreService queues?

I am currently developing a cross-server matchmaking system that allows players to load into matches efficiently using MemoryStoreService.

I believe Memory Store Queues are the best way to go about this. However, I’ve also taken note that dozens of servers requesting data like :ReadAsync() or :AddAsync() will most likely greatly exceed the 1000 + 100 * [number of concurrent users] request limit :sweat_smile:

I’ve taken note of things such as Sharding, which stores multiple small data structures, rather than one big data structure.

What are some ways of preventing these issues? I’ve spent a good amount of time researching things that could help me / educate me better, but I’m still not 100% sure :smiling_face_with_tear:

-- Should the queue be split into three different "shards", like this:
local MatchmakingQueue1 = MemoryStoreService:GetQueue("MatchmakingQueue1")
local MatchmakingQueue2 = MemoryStoreService:GetQueue("MatchmakingQueue2")
local MatchmakingQueue3 = MemoryStoreService:GetQueue("MatchmakingQueue3")

-- Or put into one big structure, like this:
local MatchmakingQueue = MemoryStoreService:GetQueue("MatchmakingQueue")

Any tips are greatly appreciated!

Isn’t the Quota per minute, so you’re saying that each of your users will make more then 100 requests to memory store per minute?

1 Like

just realized i read it super wrong. :smiling_face_with_tear:

i’ll mark this as a solution! was just wondering if with the given limit the service provides it would cause issues, but with the extra memory given depending on the amount of people playing the game, it won’t be much of an issue.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.