Tag Archives: consistent

Google 提出的 Jump Consistent Hash

堆了一陣子的文章... 當有 n 台 cache server 給你使用,最傳統的作法是 hash(key) % n 決定挑哪一台 cache server,但這個方法在增加或減少機器時就會讓 cache 大規模失效。Consistent Hashing 就是希望在這種情況下 (增加或是移除 cache server 時) 可以避免大規模 cache 失效的問題。 比較基本的 Consistent Hash 作法是將 hash(key) 的值對應到 ring 上 (假設是 hash value 的範圍是 32bits,也就是 0 到 0xFFFFFFFF,那麼 … Continue reading

Posted in Computer, Murmuring, Network, Programming | Tagged , , , , , | Leave a comment

EMR 對 S3 Consistency 的補強

今年一月的時候,Netflix 曾經寫過一篇關於對 S3 的 Eventually Consistency 的問題:「Netflix 對 S3 的 Eventually Consistency 的補強...」,當時 Netflix 的作法是實做 s3mper 以確保一致性。 過了半年,AWS 的人在 EMR 上實做了類似的功能:「Consistent View for Elastic MapReduce's File System」。 看文章的說明,應該是用到 DynamoDB 負責 S3 上資料的狀態,而 DynamoDB 的資料並不會砍掉,所以在使用時要注意這點 :o

Posted in AWS, Cloud, Computer, Murmuring, Network, Software | Tagged , , , , , , , , , , , , , , , | Leave a comment

PHP 的 Memcached 的眉眉角角...

把 PHP 的 Memcached 整理一下,未必適合其他人用。 設定上: 平常應該要打開 libketama 相關設定,包含了 OPT_DISTRIBUTION 與 OPT_LIBKETAMA_COMPATIBLE。 多台 server 要注意使用 hostname 或是 IP address 連線 (尤其跨程式語言時),在 consistent hash 時會有差異。要避免因為 hostname 發生的問題,可以把這段設定放到 JSON 檔裡與其他程式語言共用。 使用 SERIALIZER_JSON,一樣是為了與其他程式語言相容。 使用上: add() 在 key 存在時會失敗,set() 則會覆蓋過去。 在 add()、set() 裡的 expiration … Continue reading

Posted in Computer, Murmuring, Network, Programming, Software | Tagged , , , , , , , , , | Leave a comment

Netflix 對 S3 的 Eventually Consistency 的補強...

眾所皆知的,Netflix 幾乎將所有服務都放在 AWS 上,這當然也包括了 Amazon S3。 在 Amazon S3 上會有 Eventually Consistency 的問題:寫入後可能會讀到舊的資料,於是就算錯資料了... Netflix 的人討論了幾種方案,後來開發 s3mper 用來解決 Amazon S3 的 Eventually Consistency 問題:「S3mper: Consistency in the Cloud」。 s3mper 透過 AWS DynamoDB 儲存檔案的 metadata,藉以得知是否 consistency。而 Amazon DynamoDB 本身雖然也是 Eventually Consistency,但多了 API … Continue reading

Posted in AWS, Cloud, Computer, Murmuring, Network, Programming, Software | Tagged , , , , , , , , , | 2 Comments