Question

Selon cette discussion de Google App Engine sur Hacker Nouvelles ,

  

Une demande DB (lecture) prend le relais sur la 100ms   magasin de données. C'est fou et inutilisable   environ 90% des demandes.

Comment déterminez-vous ce qui est un temps de réponse acceptable pour une DB requête de lecture?

J'utilise App Engine sans se rendre compte des problèmes avec la réactivité de DB. Mais, d'autre part, je ne suis pas sûr que je sais même pas ce qu'il faut chercher à cet égard:)

Était-ce utile?

La solution

L'affiche est faux. Datastore obtenir les opérations sont beaucoup plus rapides - environ 15-20ms chacun, actuellement. Datastore requête Les opérations peuvent être plus lents, parce qu'ils sont beaucoup plus impliqués et de retour plus de données, mais ils complète encore partout de 30-100ms pour une requête typique. D'autres affiches ont amplement traité si c'est « acceptable » ou non.

Autres conseils

Vous pouvez mesurer avec précision combien chaque appel RPC (datastore ou autre) prend, grâce à Guido van Rossum plus. 100 millisecondes est très bien pour les applications les plus bien conçues - si vous avez besoin de faire deux ou trois requêtes pour servir une page, vous pouvez servir encore en moins d'un demi-seconde, même s'il y a beaucoup de traitement et le rendu impliqué ... pas trop minable. De plus, vous pouvez utiliser memcache pour réduire un grand nombre de ces latences, etc.

Que voulez-vous dire par acceptable? Quel type d'application que vous écrivez? Acceptable signifie différentes choses pour différents domaines / applications / personnes. Tout d'abord, vous devez décider à quelle vitesse vous voulez que votre application pour répondre à une demande. Lisons 1 seconde seulement pour l'amour de la discussion. Maintenant, combien de demandes DB avez-vous besoin de faire pour répondre à cette demande? Disons 5. Disons que nous avons aussi d'autres 400ms vaut traitement pour le faire. OK, c'est 5 fois lit 100ms chacun, plus 400ms d'autres choses. 900ms total, ce qui est inférieur à notre objectif de 1 seconde. Parfait! 100ms est un taux de lecture acceptable. En fait, 120ms serait encore acceptable, à peine.

Maintenant, nous généralisons:

numberOfReads * readTime + otherStuffTime = TotalTime

Remplissez vos numéros, et vous pouvez voir ce qui est un temps acceptable pour votre situation particulière.

Si vous ne l'avez pas remarqué aucun problème alors il est, par définition, un temps de réponse acceptable. La seule question est combien de temps vos utilisateurs sont heureux d'attendre.

Un « temps de réponse acceptable pour une demande de lecture DB » dépend entièrement de votre application et vos utilisateurs.

Si le résultat net est que votre site fonctionne assez vite pour vous satisfaire et vos utilisateurs alors le temps de réponse des services fournis par Google dans leur AppEngine sont acceptables.

Maintenant, en regardant plus en profondeur cette question, il semble que nous parlons de GET de. sont les chiffres de latence GET et il me semble que le temps d'attente moyen est plus proche de 50ms alors 100. Je ne dis pas ce qui est bon, mais je ne pense pas qu'il soit exact de dire 100ms.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top