Google App Engine gruplarında birçok kullanıcının (, Fig2, Fig3), fatura raporlarında yüksek miktarda Datastore okumasının nereden geldiğini bulamıyorum.
Bildiğiniz gibi, Datastore reads 50K işlem/güne sınırlıdır, bu bütçenin üzerinde ödemeniz gerekir.Her bir Getirme, Sayma ve Sorgulama işlemlerini kaç Datastore okuyor?
50K işlemleri çok fazla kaynak gibi görünüyor, ancak açıkçası, her işlemin (Sorgu, Varlık getirisi, Sayım ..) birçok Datastore okumasını gizlediği görülüyor.
API ya da başka bir yaklaşımla bilmek mümkün mü, ortak olan RPC.get
, RPC.runquery
çağrılarının arkasında kaç tane Datastore okuması var? Bu durumda, sadece RPC ayrıntılarını verdiği ve gizli okuma maliyetini vermediği için, yararsız görünmektedir. Basit böyle Modeli olması
: veri deposuna
class Example(db.Model):
foo = db.StringProperty()
bars= db.ListProperty(str)
ve varlıkları, ben operasyonların bu tür maliyeti ilgileniyorum:
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')
Geri dönen her öğenin bir okuma olduğunu düşünüyorum, eğer bir ref sahne varsa, o zaman ilk kez eriştiğinizde okuma da olur. Getirmenin (X), sayım çok yüksek olduğunda X öğelerinin döndüğü anlamına gelmediğine dikkat edin, daha sonra yığınlarda çalışır ve her yığın, veri okundu olarak sayılır (toplu boyut). Sayımın (X) veri okumaları açısından nasıl çalıştığı hakkında hiçbir fikrim yok, tek bir okuma olarak sayılmalı, ama onun arzulu bir düşüncesi. –