1. basic key-value: hash table in memory on single machine. while memory is not enough, a.compress data b.store reference to external/disk file
2. distributed key-value storage
-partition data / sharding
-balance loading
-system availability - replica
-consistency - the commit log, or coordinator holds the latest copy, or cordinator resolve the conflicts on the flyby reading multiple servers
- reading performance: use cache (refer to design a cache system)
refer: http://blog.gainlo.co/index.php/2016/06/14/design-a-key-value-store-part-i/
redis http://www.slideshare.net/dvirsky/introduction-to-redis
http://key-value-stories.blogspot.com/2015/02/memcached-internals-design.html
https://groups.google.com/forum/#!topic/memcached/BA67vpuGQYU
No comments:
Post a Comment