2

我有一個處理產品項目的Android客戶端,我想創建一個界面,以在任何給定時間顯示最流行的程序。GAE/J現場產品評分的碎片計數器計算

我已閱讀並使用分片計數器來實現高度可擴展和並行計數。就計算而言,這一直運作良好。

但是,當計算單個請求的前10個最受歡迎的產品項目時,問題就開始了,我必須首先獲取它們的所有產品實體,然後獲取每個產品實體的碎片計數器並將其添加最後將它們分類以獲得最受歡迎的。

這裏的問題是,爲了找出什麼是最流行的,我必須重新計算所有碎片計數器。乘以10000產品和我的單個用戶的請求變得緩慢地獄。

我想過使用cron作業計算結果並存儲的想法。你會推薦我這樣做嗎?有沒有人處理過類似的情況?

謝謝!

回答

1

按照您的建議,定期將計數器合併到一個只讀值中,或者使用備用方法來保留高併發計數器,如this

如果你使用前一種方法,你可能想使用從cronjob觸發的mapreduce。