UVa Online Judge (UVa OJ) is one of the oldest and still one of the most popular online judges around. The rate of submissions to the UVa OJ has increased three-fold since the past 2 years. The growth poses a challenge in maintaining statistics / ranklists as the cost to update the indexes in the database becomes higher. In this talk, I will discuss how uHunt API maintains statistics / ranklists in memory (instead of disk) to achieve hundred times faster in updates without sacrificing consistency. I will also discuss how to use uHunt API to build new tools and show some of the applications built on top of uHunt API.
I develop UVa Hunting (now renamed to uHunt) back in 2002 as a hobby and at the same time, self-learned most of algorithms and data structures from UVa OJ which in turn helped my team win the ACM ICPC Regional Kaohsiung 2006 (and advanced to the World Final Tokyo 2007). I received my PhD from National University of Singapore in 2012 and currently, I am a software engineer at Google.