http://engineering.twitter.com/2012/07/caching-with-twemcache.html
트위터에서 memcached 1.4.4 버전을 기반으로 만든 twemcache(https://github.com/twitter/twemcache)를 오픈했다.
mysql을 사용하는 twitter에 맞게 최적화되어 있다.
- as an optimization for disk where cache is used as the in-memory serving layer to shed load from databases.
- as an optimization for cpu where cache is used as a buffer to store items that are expensive to recompute.
특정 User로 인해서 mysql의 부하가 많이 심하게 높아서 고민했던 트위터가 결국 캐쉬를 도입할 수 없었던 것으로 보인다.
기존의 memcached가 도입했던 slab allocation의 단점을 random eviction으로 해결했다.
(memory compaction 하면서 더 이상 cache 저장을 못해서 실패하는 경우를 회피하는 방법이 없어서 재시작하는 작업을 했었다. 그러나, twitter에서는 이 부분을 쉽게 해결하기 위해서 그냥 slab 하나를 빼서, 새로운 캐쉬를 slab에 넣는 코드로 변경한듯)
Random eviction 데모.
http://www.youtube.com/watch?v=EtROv2or8SE&feature=youtu.be&hd=1
특정 tweets가 많이 사용할 때, 어떻게 사용하지 패턴을 잘 볼 수 있도록 운영을 잘 하기 위한 만든 Tool도 소개되었다. lock 없는 ring buffer로 만든 command line으로 제공되는 툴을 이용해서 비동기로 파일이나 소켓으로 dump도 할 수 있다.
'scribbling' 카테고리의 다른 글
가끔씩 까먹는 Encoding 이야기 (0) | 2012.07.25 |
---|---|
Git Log 정보 (0) | 2012.07.18 |
Apple 플랫폼과 시각 장애인의 아이폰 사용기 (0) | 2012.07.10 |
메신저 피싱에 대한 좋은 방어의 예-카톡의 스마트 인지 기술 (0) | 2012.07.09 |
Spring의 아버지 로드 존슨이 Spring을 떠나다. (0) | 2012.07.06 |