
分析一下QPS,日活躍度。

比較粗暴的方式:
我們會實(shí)時有一個log,來記錄所有單詞的出現(xiàn)頻率。然后用SQL抓取 TOP 多少的詞with a prefix

問題是Like 這種比較慢,是一種range query: >=...<=....
比較好的方法是用Trie.


如何做sharding? 所有數(shù)據(jù)存在一個機(jī)器上太多了。我們可以分幾個機(jī)器。并且使用consistent hashing的方法。這樣機(jī)器增多,還是會map到原本的key。比如"a" prefix全部去service 3, 'ad' prefix全部去service 1...

Reduce Log File。 每一個單詞我們count++ 只有當(dāng)random number chosen from 1--1000 且 為1的時候, 1/1000.對于那么沒幾次的數(shù)據(jù)就不存了。

基本對應(yīng)Leetcode search autocomplete這道題。

solution: https://leetcode.com/problems/design-search-autocomplete-system/solution/#approach-3-using-trieaccepted
暴力HashMap法:

Trie ?beat 90%




