En Python, disons que j'ai un modèle de classe A
qui a une ReferenceProperty b
pour modéliser la classe B
, qui a une ReferenceProperty c
pour modéliser la classe C
.Modèle Chargement en Referenced Google App Engine
En supposant une instance de A
existe déjà dans le magasin de données, je peux l'obtenir en disant:
q = A.all()
a = q.get()
Dans ce scénario, comment fonctionne le chargement de l'entité? Est-ce que a.b
est récupéré lorsque a
est récupéré? Est-ce que a.b.c
est récupéré lorsque a.b
est récupéré? Les numéros b
et c
sont-ils récupérés uniquement lors de leur premier accès? Si je devais stocker a
dans memcache, b
et c
seraient également stockés? Si ce n'est pas le cas, quand est-ce que je serais récupéré quand je recevrais a
de memcache? La raison pour laquelle je pose ces questions (outre la curiosité) est parce que j'ai une entité que je voudrais stocker dans memcache, mais elle lie à une autre entité (qui lie à une autre entité, etc.), et la taille totale des entités liées peut être supérieure à 1 Mo.
Merci!
Voici une discussion supplémentaire sur cornichon vs proto_buf: http://groups.google.com/group/google-appengine/browse_thread/thread/f91ec576cddc75de/5a6b0d8ea28e02a1 –
Ah oui, j'ai entendu parler de la chose pickle-vs-pb. Je me demande à quelle vitesse il faut décaper une corde plate? – Cameron
Dans mes tests, le décapage d'une chaîne est significativement (un facteur 10) plus rapide que le décapage d'une instance de modèle très simple. –