2017-11-24 39 views
8

Tôi đang sử dụng Cosmos DB với bộ điều hợp Mongo, truy cập qua số Ruby mongo driver. Hiện tại có khoảng 2,5 triệu bản ghi trong db.Azure Cosmos DB: 'Yêu cầu tỷ lệ lớn' cho truy vấn đếm đơn giản

Khi truy vấn tổng số lượng hồ sơ, không có vấn đề gì:

2.2.5 :011 > mongo_collection.count 
D, [2017-11-24T11:52:39.796716 #9792] DEBUG -- : MONGODB | XXX.documents.azure.com:10255 | admin.count | STARTED | {"count"=>"xp_events", "query"=>{}} 
D, [2017-11-24T11:52:39.954645 #9792] DEBUG -- : MONGODB | XXX.documents.azure.com:10255 | admin.count | SUCCEEDED | 0.15778699999999998s 
=> 2565825 

Nhưng khi tôi cố gắng để đếm số lượng hồ sơ được tìm thấy dựa trên một đơn giản đâu, tôi gặp phải lỗi Request rate is large:

2.2.5 :014 > mongo_collection.find(some_field: 'some_value').count 
D, [2017-11-24T11:56:11.926812 #9792] DEBUG -- : MONGODB | XXX.documents.azure.com:10255 | admin.count | STARTED | {"count"=>"some_table", "query"=>{"some_field"=>"some_value"}} 
D, [2017-11-24T11:56:24.629659 #9792] DEBUG -- : MONGODB | XXX.documents.azure.com:10255 | admin.count | FAILED | Message: {"Errors":["Request rate is large"]} 
ActivityId: 0000-0000-0000-000000000000, Request URI: /apps/XXX/services/XXX/partitions/XXX/replicas/XXX/, RequestStats: , SDK: Microsoft.Azure.Documents.Common/1.17.101.1 (16500), Message: {"Errors":["Request rate is large"]} 

Tôi hiểu cách lỗi hoạt động, nhưng tôi không hiểu cách truy vấn như vậy có thể tối đa RU/s (được đặt ở giá trị tối đa 10.000), vì trường tôi đang truy vấn được lập chỉ mục (tự động).

Bất kỳ lời khuyên nào sẽ được đánh giá rất nhiều!

+0

Tôi đang đối mặt với cùng một vấn đề, nó thực sự tồi tệ –

+0

Không thực sự là giải pháp, nhưng tôi đã bật [Pipeline tổng hợp trong trang Tính năng xem trước] (https://azure.microsoft.com/en-us/blog)/azure-cosmosdb-extends-hỗ trợ-cho-mongodb-aggregation-pipeline-unique-indexes-và-more /) trong cổng Azure. Bằng cách đó bạn có thể viết lại bạn truy vấn để sử dụng mệnh đề nhóm, điều này sử dụng rất ít RU/s. – bramj

Trả lời

3

Lỗi là do thiết kế, điều đó có nghĩa là một ứng dụng đang gửi yêu cầu đến dịch vụ DocumentDB với tốc độ cao hơn mức 'thông lượng dự trữ' cho một tầng thu thập.

Giải pháp là thử lại yêu cầu tương tự sau một thời gian. Để biết thêm giải pháp, hãy kiểm tra điều này article.

Các vấn đề liên quan