Query per secondo sostenibili [QPS] senza incorrere in errori di timeout
-
16-10-2019 - |
Domanda
Sai che è il più sicuro query al secondo tasso di aggiornamento su una singola entità senza incorrere in lizza scrittura?
Lettura questo documento su sharding si dice chiaramente:
È importante notare che è possibile solo aspettare di aggiornare qualsiasi singolo entità o entità del gruppo su cinque volte al secondo . Questa è una stima e la frequenza di aggiornamento reale per un entità dipende vari attributi dell'entità, compresi come molte proprietà che ha, quanto grande è, e quanti hanno bisogno indici l'aggiornamento.
Sto avendo problema di timeout anche con un aggiornamento al secondo e un commento in questa risposta mi ha sconcertato:
È ancora possibile ottenere contesa di scrittura su entità individuali se si sta facendo più di circa 1QPS di modifiche a loro
mi sto perdendo qualcosa?
Come potrei mia scala applicazione GAE se posso nemmeno aggiornare una singola entità al secondo senza incorrere in timeout errori?
Soluzione
La ragione per la varianza è perché questo non è un limite rigido. Se lo fai 1 QPS di aggiornamenti di un gruppo di entità, probabilmente non noterete alcun aumento significativo timeout o la latenza a tutti. Se lo fai 5 QPS, probabilmente vedrete un aumentato tasso di timeout, e la latenza notevolmente più alto. Oltre a ciò, le questioni di contesa peggiorerà.
In generale, penso a 1 QPS come l'obiettivo di progettazione per costruire intorno, per dare un ragionevole margine di errore per i picchi.