Voldemort in the Wild
At kaChing, we’ve tried to embraced as much of the lean startup methodology as possible. In keeping with the spirit, we’ve worked to scale our infrastructure smartly, using data to drive our decisions and discarding speculation. As part of our infrastructure, we’ve embraced Project Voldemort as a highly performant and reliable data store. One experiment… Read more
Amusing log message
Some of us found this (a little too) amusing: [pool-http-jetty-exec-thread-3] 20100122140052,WARN,com.kaching.trading.core.BalanceCalculation$1, missing price for stock AAGH on portfolio [elided] com.kaching.trading.core.StockMissingException: AAGH @ 01/22/2010 at com.kaching.trading.core.PositionMetrics.getPositionValues(PositionMetrics.java:265) at com.kaching.trading.core.PositionMetrics.getLongPositionValues(PositionMetrics.java:251) at com.kaching.trading.core.PositionMetrics.getAggregateLongValue(PositionMetrics.java:274) at com.kaching.trading.core.PositionMetrics.getTotalValue(PositionMetrics.java:286)
Complement TDD with MDA
Test Driven Development (aka TDD) is on the rise. Good developers understand that code with no proper testing is dead code. You can’t trust it to do what you want and its hard to change. I’m a strong believer in Dijkstra’s observation that “Program testing can be a very effective way to show the presence… Read more
Actually Implementing Group Management Using ZooKeeper
ZooKeeper offers, in the words of its documentation, “off-the-shelf… group management”. The “off-the-shelf” part is inaccurate; it really offers the proper primitives to *implement* group management, but it’s up to you to fill in a few missing pieces. I’ll be describing one type of group management system I built at KaChing using ZooKeeper: A group… Read more
Flexible Log Monitoring with Scribe, Esper, and Nagios
If you have yourself a pretty decent sized cluster, there’s probably a good chance that you’ve had the following experience: One day, while routinely browsing some server logs, you stumble upon some concerning entries that you wish you had been made aware of sooner. You could probably go back and write some custom scripts that… Read more
Subversion Backup
Yes, we’re using Subversion. I know that distributed version control systems (e.g. Git) are cool and we might get there sometime, but for misc reasons we’re still using SVN. For the records, some of us are using GIT-SVN and we’re working and releasing from trunk (part of a the lean startup methodology) so the branching… Read more