Estoy leyendo en Google App Engine grupos de muchos usuarios (Fig1, Fig2, Fig3) que no pueden determinar de dónde proviene el gran número de lecturas del Datastore en sus informes de facturación.
Como ya sabrá, Datastore reads tienen un límite de 50K operaciones/día, por encima de este presupuesto debe pagar.¿Cuántas lecturas de Datastore consumen cada una de las operaciones Fetch, Count y Query?
Operaciones de 50K suenan como una gran cantidad de recursos, pero desafortunadamente, parece que cada operación (consulta, obtención de entidad, recuento ...), oculta varias lecturas de Datastore.
¿Es posible saber a través de API o algún otro enfoque, cuántas lecturas de Datastore están ocultas detrás de las llamadas RPC.get
, RPC.runquery
comunes?
Appstats parece inútil en este caso, ya que proporciona solo los detalles de RPC y no el costo de las lecturas ocultas.
tener un modelo simple como esto:
class Example(db.Model):
foo = db.StringProperty()
bars= db.ListProperty(str)
y entidades en el almacén de datos, estoy interesado en el costo de este tipo de operaciones:
items_count = Example.all(keys_only = True).filter('bars=','spam').count()
items_count = Example.all().count(10000)
items = Example.all().fetch(10000)
items = Example.all().filter('bars=','spam').filter('bars=','fu').fetch(10000)
items = Example.all().fetch(10000, offset=500)
items = Example.all().filter('foo>=', filtr).filter('foo<', filtr+ u'\ufffd')
Creo que cada entidad devuelta es una lectura, si tiene una referencia, entonces la primera vez que accede es también una lectura. Tenga en cuenta que fetch (X) no significa que se devuelvan entidades X si el recuento es demasiado alto, entonces funcionaría en grandes cantidades y cada bulto contaría como lecturas de datos (tamaño total). No tengo idea de cómo funciona el recuento (X) con respecto a las lecturas de datos, debería contar como una sola lectura, pero es una ilusión. –