如果是你來開發這個功能,你怎麼做?
回答的不錯,你可以走了!
select
id, score from
user
order
by score desc
limit
100
candidates =
for k in range(1024):
# 每個表都取topn
rows = select id, score from user_$ order by score desc limit 100
# 聚合結果
candidates.extend(rows)
# 根據score倒排
candidates = sorted(candidates, key=lambda t: t[1], reverse=true)
# 再取topn
candidates[:100]
時間堆來確認哪些記錄過期了。量大的時候這些都是不容小噓的負擔。
class
hitslot
}class
windowslots elif(ts - this.currentslot.timestamp > 60 * 1000)
this.currentslot.onhit(postid, hits);
}void
onbeat()
hitslot slot = historyslots[0];
long ts = system.currenttimemillis();
if(ts - slot.timestamp > 8 * 60 * 60 * 1000)
}}
它的目標就是定時維持乙個 8 小時的統計視窗,並匯聚 topn 的熱帖放在記憶體裡。
這個 topn 的資料並不是特別實時,有乙個大約 1 分鐘的短暫的時間視窗。
class
hotpostsaggregator
void
onlocalreport
(int nodeid, map[int]int topnposts)
}
一道面試題的解析
一道面試題的解析 題目 1.畫三角形,四邊形,圓形,在視窗中移動,碰到視窗邊緣會自動彈回 2.通過選單,可以增加三角形,四邊形,圓形 3.對選中的圖形,可以設定填充顏色,線條寬度 4.畫三角形,四邊形,圓形,採用 bitmap 和位置兩種方式實現,位圖實現不設定填充顏色,線條寬度,隨機產生位置。5....
一道新浪面試題的解析
li x 100 for x in range 10 if x 6 li1 x 100 for x in range 10 print li print li1 執行結果 107,108,109 100,101,102,103,104,105,106,107,108,109 li lambda x ...
一道面試題
一道面試題 射擊運動員10發打中90環有多少種可能,請編寫程式計算出來,並列印出結果,0環和10環均有效。打中90環就是沒打中10環,所以打中90環跟打中10環的可能性是一樣的。然後開始遞迴狂打槍,一到10就記錄 if params i 10 在迴圈的控制中已經排除了大於10的可能性 i 10 pa...