20 Ocak 2021 Çarşamba

Memcached

Giriş
Not : Memcached muadili olarak "Oracle Coherence" var.

Bazı notlar şöyle.  Memcached ile clustering ve replication yetenekleri yoktur. 
Memcached’s deliberately simple architecture provides flexibility in building abstractions on top of it, as well as provides easy horizontal scalability to meet increased demand. A single memcached process by itself is a simple key-value store and deliberately has no knowledge of its peers, or even the notion of a memcached cluster.
- Sadece key/value çiftini bilir. Redis gibi farklı veri yapılarını desteklemez. 
- Memcached multi-threaded çalışır.

Memcached vs Redis
Açıklaması şöyle
Use Memcached when : Simple Key Value storage needed. Need to only store string. No need to perform any operational query on cache. Scaling vertically by using more cores and threads is easier. When keys are maximum 250 B and Values maximum 1MB, when you are ok with only LRU eviction policy. Its Volatile.

Use Redis when: You need to store objects. Scaling horizontally is easier. You need to store Set, Hash, List, Sorted Set (A non-repeating list of string values ordered by a score value). When you want to chose from multiple eviction policies. When you would want to save data (its non volatile)
Bellek Dolarsa
Açıklaması şöyle. Normalde her şey sadece bellekte saklanır
Strictly in memory and extended to save key-value details into drive using an extension extstore
Supported Eviction Policies
Açıklaması şöyle
Least Recently Used (LRU)
Transaction
Açıklaması şöyle
Memcached doesn’t support transactions
Mcrouter 
Facebook tarafından geliştirilen ve 2014 yılında open source yapılan bir ürün. Memcached sunucularının önüne konuluyor. 

Mcrouter + Consistent Hashing kullanarak havuza Memcached sunucuları eklenebiliyor. Açıklaması şöyle
Mcrouter applies a hashing algorithm against the cache key of every incoming request to deterministically shard the request to one host within a pool. This works well for evenly distributing traffic among servers, but memcached has a unique requirement that its clusters need to be arbitrarily scalable — operators need to be able to freely adjust cluster capacity in response to changing traffic demands while minimizing the client-side impact.

Consistent hashing ensures that most of a keyspace partition maps to the same server even as the total number of eligible shards increases or decreases. This allows the system to scale out transparently to the client layer due to highly localized and predictable hit rate impact, thus reducing the chance that small changes in capacity cause catastrophic drops in cluster-wide hit rate.

Hiç yorum yok:

Yorum Gönder