Domanda

Secondo questa discussione di Google App Engine su Hacker News,

Una richiesta DB (lettura) richiede 100 ms sul DataStore.È folle e inutilizzabile per circa il 90% delle applicazioni.

Come si determina qual è il tempo di risposta accettabile per una richiesta di lettura DB?

Utilizzo App Engine senza notare alcun problema con la reattività del DB.Ma, d'altra parte, non sono nemmeno sicuro di sapere cosa cercare a questo proposito :)

È stato utile?

Soluzione

Il manifesto è sbagliato.Le operazioni di acquisizione del datastore sono molto più veloci: attualmente circa 15-20 ms ciascuna.Archivio dati domanda le operazioni possono essere più lente, perché sono molto più coinvolte e restituiscono più dati, ma vengono comunque completate in un tempo compreso tra 30 e 100 ms per una query tipica.Altri autori hanno ampiamente spiegato se ciò sia "accettabile" o meno.

Altri suggerimenti

È possibile misurare con precisione quanto ogni chiamata RPC (datastore o altro) sta prendendo, grazie al di Guido van Rossum AppStats relativamente nuovo componente (è parte del SDK di serie dal 1.3.1). Vedere qui per più. 100 millisecondi è bene per la maggior parte delle applicazioni ben progettate - se hai bisogno di fare due o tre richieste per servire una pagina, si può ancora servire in meno di mezzo secondo, anche se c'è un sacco di elaborazione e il rendering coinvolto ... non troppo squallido. Inoltre, è possibile utilizzare memcache per ridurre molte di queste latenze, ecc.

Che cosa si intende per accettabile? Che tipo di applicazione stai scrivendo? mezzi accettabili cose diverse per i diversi domini / applicazioni / persone. In primo luogo, si dovrebbe decidere quanto velocemente si desidera la vostra applicazione per rispondere a una richiesta. Prendiamo uno secondo, solo per amor di discussione. Ora, quante richieste di DB non è necessario fare per soddisfare tale richiesta? Diciamo 5. Facciamo anche dire che abbiamo anche 400ms valore di altre elaborazioni da fare. OK, così che è 5 volte legge 100 ms ciascuno, più 400ms di altre cose. 900ms totale, che è meno rispetto al nostro obiettivo di 1 secondo. Perfetto! 100ms è un tasso di lettura accettabile. In realtà, 120ms sarebbero ancora accettabili, appena appena.

Ora, per non generalizziamo:

numberOfReads * readTime + otherStuffTime = TotalTime

Inserisci i tuoi numeri, e si può vedere che cosa è un tempo accettabile per la vostra situazione particolare.

Se non avete notato eventuali problemi, allora è, per definizione, un tempo di risposta accettabile. L'unica domanda è quanto tempo gli utenti sono felice di aspettare.

Una "un tempo di risposta accettabile per un DB richiesta di lettura" dipende interamente dalla vostra applicazione e gli utenti.

Se il risultato netto è che il vostro sito corre abbastanza veloce per soddisfare voi ei vostri utenti quindi il tempo di risposta lenta dei servizi forniti da Google nella loro AppEngine sono accettabili.

Ora, guardando più a fondo in questo particolare problema, sembra che stiamo parlando di GET di. qui sono le cifre per GET latenza e mi sembra che la latenza media è più vicino a 50ms poi 100. non sto dicendo che è buono, ma non credo che sia corretto dire 100ms.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top