Bullet cache is an innovative solution to Web application cache problems. Where other cache servers fail by not providing the application enough control over its data, Bullet cache offers a unique interface which enables complex interactions between the application and its cached data.
Contrasted to most similar products, Bullet cache is designed to make the most use of multiprocessor systems and optimizes simultaneous access by a large number of users.
Bullet cache is fast!
Bullet cache is highly optimized for the mode of operation where there are hundreds of thousands of concurrent requests for small objects, as demonstrated in the following figure:
This graphs shows the cumulative sustained throughput of the Bullet cache server (in steady state) when used on the local server via Unix sockets, with 60 simultaneous connected clients which perform operations without waiting. The difference in throughput between the two graphed configurations is entirely due do their different CPU architectures: System A is a Core2-based Xeon 5430 while the System B is a Nehalem based Xeon 3440.
It is highly probable that Bullet cache is currently the world's fastest cache server.
Bullet cache is flexible!
Bullet cache is a key-value based cache server, with a twist! In addition to being highly optimized for speed, Bullet cache implements an innovative approach, enabling cache records to carry certain metadata which can be used to further optimize common operations on the application side. Using very simple and basic operations, data can be precisely queried or deleted in massive amounts, without the need to explicitly specify all record keys.
Get Bullet cache!
Bullet cache is currently in alpha phase, open for wider testing! As such, no binaries are yet provided. Please use SourceForge's services to access the newest source version.
Please contact the author at ivoras at gmail dot com for any questions, suggestions or ideas!
Note about the project name
The Bullet cache's internal name / code name is "mdcached", a remainder from a very early phase of its development - which stuck as the SourceForge project name. "mdcached" stands for "multi-domain cache daemon", as the precursors of todays record tags were much simple "domains" in which the records could have been placed.