Tôi đang đọc trên các nhóm Máy ứng dụng của Google nhiều người dùng (Fig1, Fig2, Fig3) không thể tìm ra nơi số lượng lớn dữ liệu được đọc trong báo cáo thanh toán của họ đến từ đâu.
Như bạn có thể biết, Datastore reads bị giới hạn ở mức 50K hoạt động/ngày, cao hơn ngân sách này bạn phải trả.Có bao nhiêu lần đọc Datastore tiêu thụ từng hoạt động Tìm nạp, Đếm và Truy vấn?
Hoạt động 50K nghe có vẻ như rất nhiều tài nguyên, nhưng thật không may, có vẻ như mỗi thao tác (Truy vấn, Tìm nạp thực thể, Đếm ..), ẩn một số lần đọc Datastore.
Có thể biết thông qua API hoặc một số phương pháp tiếp cận khác, số lượng lần đọc Datastore bị ẩn sau các cuộc gọi RPC.get
, RPC.runquery
phổ biến?
Appstats dường như vô dụng trong trường hợp này vì nó chỉ cung cấp chi tiết RPC chứ không phải chi phí đọc ẩn.
Có một mô hình đơn giản như thế này:
class Example(db.Model):
foo = db.StringProperty()
bars= db.ListProperty(str)
và đối tượng trong kho dữ liệu, Tôi quan tâm đến chi phí của các loại hoạt động:
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')
Tôi nghĩ rằng mỗi thực thể trả lại là một lần đọc, nếu bạn có một đạo cụ chỉnh sửa thì lần đầu tiên bạn truy cập nó cũng là một đọc. Lưu ý rằng fetch (X) không có nghĩa là các thực thể X được trả về nếu số đếm quá cao sau đó nó sẽ làm việc trong các bulks và mỗi số lượng lớn sẽ được tính là dữ liệu đọc (kích thước hàng loạt). Tôi không biết số đếm (X) hoạt động như thế nào đối với việc đọc dữ liệu, nó sẽ được tính là một lần đọc duy nhất nhưng đó là một suy nghĩ mơ hồ. –