What is Minuteman?
Minuteman provides fast analytics using Redis as a backend. Uses bitwise operations to provide complex data analysis and reporting.
Wikipedia: Minutemen were members of teams from Massachusetts that were well-prepared militia companies of select men from the American colonial partisan militia during the American Revolutionary War. They provided a highly mobile, rapidly deployed force that allowed the colonies to respond immediately to war threats, hence the name.
What makes it so fast?
Redis makes it fast, stupid fast. The core concept of using bit arrays to store information plus the nuclear tornado that powers Redis makes the mixture a fast and furious way to store analytics.
I use Rails, is there a fast way to use it?
What's the idea behind it?
It's all about the bytes, well, actually it's all about Redis. Since Redis 2.6 bit operations are part of this great db and that inspired different people. Thanks to them I've built Minuteman:
- http://blog.getspool.com/2011/11/29/fast-easy-realtime-metrics-using-redis-bitmaps/
- http://amix.dk/blog/post/19714
- http://en.wikipedia.org/wiki/Bit_array
Getting started
How about complex operations?
What can I do if I want to join it with my User table?
Minuteman explained
Let's go through bit operations once again:
Having our users represented as marked bits gives us access to bit operations:
AND: &
OR: |
XOR: ^
NOT: ~
Pictures from http://www.micahcarrick.com/tutorials/avr-microcontroller-tutorial/avr-c-programming.html