I have written about this project before, mostly under its old name "MDCached" or "Multi-domain cache daemon" - which is hereby deprecated in favour of "Bullet Cache" and will be removed from the project eventually.
There are a lot of things to write about Bullet Cache - it is packed with some unique features, so that is what I will be doing in the following blog posts. The impatient can go and read the very fine manual (seriously, AsciiDoc produces some very nice output!).
In bullet points (har, har), its main features - selling points - are:
- Advanced multi-threaded design makes it extremely fast, efficient and more importantly, parallel on multi-core CPUs. Bullet Cache is designed to allow serious concurrency in its data store access.
- It implements a novel record metadata approach to cache records, making it possible to execute queries on cached records such as "get all cached data for a certain user" or "expire all data for a certain web page."
- It uses a very efficient network protocol and network IO design, allowing for the fastest path for simple "GET" operations on records to execute without a single malloc(), realloc() or memcpy() style operation.
It can be used to efficiently support large-scale caching implementations with fine-grained control!