Sharing

2013年2月6日 星期三

Zookeeper Apache

官網

http://zookeeper.apache.org/
http://zookeeper.apache.org/doc/r3.3.2/zookeeperOver.html

Zookeeper 是一個分散式的儲存系統, 最常見是用來儲存分散式系統的設定, 就我看來, 他就像是分散式系統上的 registry, 同時他也提供了一些機制來幫助分散式中每一點同步資料, 同步意見, 所以他不是一個檔案系統, 不適合存大量的資料. 他也不是完整的 Configuration Management, 只能算是 Configuration Storage.

其它簡介

http://highscalability.com/zookeeper-reliable-scalable-distributed-coordination-system
http://rdc.taobao.com/blog/cs/?p=162
http://www.searchtb.com/2011/01/zookeeper-research.html

Python Binding


是一個用純 Python 實作的 Zookeeper client, 還滿好用的, 大量減化了和 Zookeeper 溝通的困難處, 而且一些進階的功能, 像是 Lock, Party, Election 都有實作出來, 所以推薦使用 Kazoo 做為 Zookeeper 的 Python Binding

拜佔庭將軍問題

在尋求一致的的過程中, 如果有消息遺失或是被內賊竄改, 在什麼情況下仍然能讓所有人的意見達成一致性?

http://en.wikipedia.org/wiki/Byzantine_fault_tolerance
拜占庭將軍問題

Paxos 演算法

這個演算法是用來確保傳遞的消息的一致性, 在分散式系統內經常會被用到, 和拜佔庭將軍不同點在於, 這個演算法不假設有內賊存在的可能性.  但主要用來解決資料會隨著時間而改變, 如何確保每個人擁有的資料最終可以更新到最新的版本且是一致的.  更簡言的說法是一種分散式投票系統.

http://en.wikipedia.org/wiki/Paxos_algorithm
Zookeeper全解析
Paxos算法
http://research.microsoft.com/en-us/um/people/lamport/pubs/lamport-paxos.pdf




沒有留言: