I’ve been trying to do tests to figure this out. But I couldn’t figure this clearly out.
I’ve been spamming :SetAsync()
and :GetAsync()
and even use :UpdateAsync()
, and then something with the MemoryStoreQueue, to tell if something is writing or not… (but the results where mehh…)
So I am going to ask this here.
Let’s say hypothetically, you’re using :UpdateAsync()
BUT AT THE SAME TIME, you join a SubPlace e.g. through TeleportService.
Let’s say, :UpdateAsync("key")
has been called but IS NOT finished yet.
But you loaded into the SubPlace and are using :GetAsync("key")
on the same key…
The question here is, whether it’s going to load the OLD or the NEW one.
Because I don’t think there’s anything that guarantees that, is there? That’s what I’ve been trying to test.
However, there’s also :ListVersionsAsync
, so the question is… if something like :SetAsync
or :UpdateAsync
gets called, BUT IS NOT FINISHED by internal functions…
Does it reserve a new version though, and yield any future :GetAsync()
to get the newest data, even if it wasn’t written yet?