Question

Do you know which is the safest Queries Per Second rate in update on a single entity without incurring in write contention?
Reading this document about sharding it clearly says:

it is important to note that you can only expect to update any single entity or entity group about five times a second. That is an estimate and the actual update rate for an entity is dependent on several attributes of the entity, including how many properties it has, how large it is, and how many indexes need updating.

I'm having timeout problem even with one update per second and a comment in this answer has baffled me:

You can still get write contention on individual entities if you're doing more than about 1QPS of modifications to them

Am I missing something?
How could my GAE app scale if I can't even update a single entity per second without incurring in Timeout errors?

Was it helpful?

Solution

The reason for the variance is because this isn't a hard limit. If you do 1 QPS of updates to an entity group, you probably won't notice any significant increase in timeouts or latency at all. If you do 5 QPS, you'll probably see an increased rate of timeouts, and noticeably higher latency. Beyond that, contention issues will get worse.

Generally, I think of 1 QPS as the design goal to build around, to give a reasonable margin of error for spikes.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top