一致性哈希
?環形Hash解決節點的增刪問題,虛擬節點解決平衡性問題。
http://blog.csdn.net/kongqz/article/details/6695417 ? http://www.jiacheo.org/blog/174 ? http://blog.csdn.net/sparkliang/article/details/5279393 ?(虛擬節點)
?
C10K問題
編寫連接數巨大的高負載服務器程序時,經典的多線程模式和select模式都不再適用。 應當拋棄它們,采用epoll/kqueue/dev_poll來捕獲I/O事件。最后簡要介紹了AIO。
epoll:(1) LT水平觸發 (2) ET邊緣觸發
epoll優于傳統select及poll有以下幾點:
(1) epoll不會隨著fd數目的增長而效率降低,而且一個進程同時打開的fd數目的限制也不會成為瓶頸。
(2) epoll使用mmap來進行內核與用戶空間的消息傳遞,以此避免內存拷貝的代價。
http://www.kegel.com/c10k.html ? http://blog.sina.com.cn/s/blog_68ffc7a40101822l.html ? http://wenku.baidu.com/view/33e41da6f524ccbff12184f9.html
蓄水池抽樣
題目:有一個很大很大的輸入流,大到沒有存儲器可以將其存儲下來,而且只輸入一次,如何從這個輸入流中隨機取得k個記錄?(N未知)
for i= k+1 to N
M=random(1, i);
if( M < k)
SWAP the Mth value and ith value
end for
http://www.cnblogs.com/giraffe/p/3223369.html
無鎖隊列
CAS操作——Compare & Set,或是 Compare & Swap,現在幾乎所有的CPU指令都支持CAS的原子操作。
1)無鎖隊列主要是通過CAS、FAA這些原子操作,和Retry-Loop實現。這些技術都可以用在其它的無鎖數據結構上。
2)對于Retry-Loop,其實和鎖什么什么兩樣。只是這種“鎖”的粒度變小了,主要是“鎖”HEAD和TAIL這兩個關鍵資源。而不是整個數據結構。
http://coolshell.cn/articles/8239.html
數據庫Sharding
Sharding的基本思想就要把一個數據庫切分成多個部分放到不同的數據庫(server)上,從而緩解單一數據庫的性能問題。不太嚴格的講,對于海量數據的數據庫,如果是因為表多而數據多,這時候適合使用垂直切分,即把關系緊密(比如同一模塊)的表切分出來放在一個server上。如果表并不多,但每張表的數據非常多,這時候適合水平切分,即把表的數據按某種規則(比如按ID散列)切分到多個數據庫(server)上。當然,現實中更多是這兩種情況混雜在一起。
http://blog.csdn.net/bluishglc/article/details/6161475
(待續)
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
