問個資料庫的問題。現在是否有符合下面這些條件的資料庫:
- 只要有 (key,value) 即可,不需要到 SQL 那種複雜的架構
- 可以用多台機器 Cluster,並且有 Replication,不受到單一機器的 Bottleneck
- 不存在 Single Point of Failure
- 可線上擴充機器
BerekeleyDB 的 Replication (即 Single Master, Read-only Slave) 最後會卡在 Writing,而且空間的消耗讓人不是很滿意。Google Filesystem 的架構仍然有 Single Point of Failure (我想他們應該是用 Layer 4 Switch 或是其他配合硬體的方式解決),所以我想問的是,有沒有數學方法就可以滿足上面要求的資料庫?
Update:我希望每個 node 都是 1TB,初期大約三十台到六十台機器,以後可以擴充到上千台,每個 key 都會有四份資料放在 DB 裡面。
用 Memcached 试试吧,算不上数据库,但是很稳定,应该可以满足你的需要,唯一的问题是只能放在内存, 要保存到硬盘要自己想办法
[1] http://www.danga.com/memcached/
請問 "BerekeleyDB 最後會卡在 Writing" 指的是 slave read-only 嗎? 還是有其他的缺陷? 是不是可以請你進一步說明呢? 謝謝.
跟 MySQL Replication 類似的問題,參考 LiveJournal 的 LiveJournal Backend 投影片,有人翻成簡體中文:http://www.example.net.cn/archives/2006/03/olivejournaloio.html
memcached 我很早前就用過了:http://gslin.org/2004/12/08/270/
我一看到這一篇, 想到的是.......
你要不要拿 Bind 改一改來用啊? (爆)
是,我reply完就看到你之前那篇讲memcached的了, =_=!!!
也許你可以試試看
Distributed Hash Table
ex: OpenDHT, Bamboo DHT, etc.
當然 在key,value還沒有機會copy到第二台機器之前 存在Single Point of Failure
但是只要有機會傳出去 就沒問題了
DHT 的 query 太慢。
http://meta.wikimedia.org/wiki/Tugelacache
這個改一下說不定能用@@
thanks, I'll check it.