Glow Cache 构架



Glow Cache 构架

什么是Cache Wiki上说:a cache is a component that stores data so future requests for that data can be served faster 在绝大多数服务器框架中,就是用内存代替数据库,以达到提高速度的目的。 Cache hit rate 你不可能无限制地把所有数据都写入cache中,cache system总会把一些数据丢弃。当一个"读"操作访问了不在cache中的数据,会产生一次backend storage读,以及一次cache"写"(写回cache),我们称之为cache miss。显然,一个cache miss会比直接访问backend storage有更大的开销。因此一个成熟的cache系统,应该极大地降低cache miss,保持cache hit在90%,甚至更高。 Glow Cache 概括 不管是write-through还是write-back,任何一次"写"操作,都会更新cache。而cache的目的,是提高"读"操作的速度。细心的读者或许会发现,这其中有一些逻辑上的问题:如果"写"完的数据,不再被"读",不是白写了? 的确。如果"写"操作和"读"操作相对平衡,那这样的设计将会有比较好的效果。因为cache system会定期把数据丢弃。如果"写"进cache的数据,有90%在被cache丢弃前就被"读"过,那么hit rate就有90%。但实际生产环境中,我们发现,"写"操作和"读"操作并不平衡: 在用户记录健康信息的时候,"读"操作远远低于"写"操作,而"写"进cache的数据,一部分会被马上"读"到,另一部分不会被马上"读"到。 而在用户浏览论坛的时候,"读"操作则远远高于"写"操作,并且"读"操作请求的数据,大部分都不是刚被"写"过的。 为了达到90% cache hit rate,提高cache的容量,是一个简单粗暴的方式。这样,"写"进cache的数据,会存留更多的时间,随时准备被"读"。但随着数据量越来越大,经济成本会越来越高,即便一个创业团队能负担的起,也非常不划算——性价比太低。 作为一个服务器构架师,创业公司的程序猿,应该采用最合适的技术框架,即解决问题又节约成本。于是,Glow的cache,是一种结合了write-through和write-

Read full article from Glow Cache 构架


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts