Memcached ?
Memcached는 범용적인 메모리 캐쉬 시스템으로 Danga Interactive에서 LiveJournal개발을 위해 만들어진 것 입니다. 현재는 굉장히 많은 곳에서 활용되고 있습니다. 국내에서도 많이 쓰고 있는지는 조사를 해보지 않아서 잘 모르겠습니다. 요즘은 Memcached 외에도 Redis, Infinispan, Hazelcast 등도 각광받는 것 같습니다. (물론 저도 제대로 활용해본적은 없습니다. 공부는 하는 중입니다만)
다른 것보다 Memcached는 워낙 안정성을 인정받았기때문에 지금까지도 발전하고 쓰이고 있습니다. 내부 소스코드도 굉장히 보고 배울 것이 많습니다.(C초보인 저에게 굉장히 매력적입니다.) 이 코드에서 영감을 받거나 도움을 많이 받았다고 언급하는 오픈소스들도 있습니다. 나중에 차차 하나하나 포스팅할 예정입니다.
이 포스트에서는 볼 것은 별로 없습니다. 무엇을 정리하고 하나둘씩 작성할지 적어놓는 곳이라고 보면됩니다.
이 포스트에서는 다음에 기록할 Internals과 이 소스코드를 보고 배운점들을 먼저 제목으로 정리하고 자세한 것은 시간나면 작성하겠습니다.
Memcached Internals
- Memory Allocations
- Eviction Policy (LRU)
- Consistent Hashing
소스분석하고 배울 수 있었던 것
C를 시작한 것이 불과 몇달되지 않았는데 memcached 소스를 보면서 독학했습니다. 자바와는 또 다른 매력을 많이 느꼈습니다.
- 요즘 event-driven형태의 개발이 각광받고있습니다. 기본적으로 memcached도 그렇습니다.
- memory fragment 현상을 위해 했던 노력
- performance 개선을 위해서 했던 노력
- dynamic library을 활용한 확장
- …
Tagged: memcached