2010-08-28 5 views
8

Je sais que le moteur de l'application utilise memcache et le datastore pour les sessions. Je peux voir dans appstats que quand j'appelle getSession(), créer une nouvelle session, que 1 memcache et 1 datastore mis se produisent.Comment fonctionnent exactement les sessions Google App Engine pour Java?

Cependant, dans chaque requête de mon application, j'obtiens l'objet utilisateur courant de la session. Et aucun memcache ou datastore ne s'affiche dans appstats.

Comment cela fonctionne-t-il?

+0

Changez-vous quelque chose dans le contexte de la session? –

+1

Théoriquement, une couche de cache supplémentaire en mémoire pourrait réduire le nombre de hits memcache. Tant qu'une application ne fonctionne que sur un seul serveur, cela serait tout à fait logique car cela réduirait considérablement le trafic réseau. – sfussenegger

Répondre

1

Le blog "Easy Performance Profiling with Appstats" de Google contient un bel article sur le profilage de memcache dans Appstats. Il est discuté en Python, mais fait référence à l'utilisation de Appstats pour Java.

De: "Google App Engine>Appstats for Java"

Comment ça marche?

Le filtre de servlet Appstats s'ajoute au cadre d'appels de procédure à distance qui sous-tend les API App de service du moteur. Il enregistre les statistiques pour tous les appels d'API effectués au cours du gestionnaire de requêtes, puis stocke les données dans memcache, en utilisant un espace de noms de __appstats__. Appstats conserve les statistiques pour les 1000 demandes les plus récentes (environ). Les données comprennent des enregistrements récapitulatifs, d'environ 200 octets chacun, et des enregistrements de détail, pouvant aller jusqu'à 100 Ko chacun.

La version Java de Appstats utilise des valeurs et des comportements fixes pour la manière dont les données sont stockées dans memcache et dans le magasin de données. (Ceux-ci ne peuvent pas être configurés comme ils peuvent avec la version Python de Appstats.)

Si vous rencontrez des problèmes avec les données memcache ne se présente pas dans Appstats, vous voudrez peut-être regarder JCache comme une interface à l'App Service de memcache du moteur. Ou, il y a quelques outils adaptés aux statistiques de memcached de rapport recommandées here.

Cheers.

+0

Je ne pense pas que cela ne se présente pas, je pense que la session n'utilise pas réellement le memcache à ces points, parce que mon cpu_usage ne monte pas non plus. – Kyle