Itanium Innovation at HOPS
Hello there, I’m Christopher Knorr, and I lead the database development team at HOPS International. We recently ported our database to Itanium and were fortunate enough to be nominated for the 2009 Itanium Solutions Alliance Innovation Awards in the Computationally Intensive Computing category. We will be in attendance at the awards ceremony in San Francisco and couldn’t be more excited!
I would like to share some information about our powerful technology…HOPS.
The HOPS database is unique in that it focuses on processing very large databases – tables typically contain billions of rows of data with each row containing hundreds of columns. We have used HOPS for a wide variety of analysis applications including credit/gift issuing and processing reporting, health care fraud, environmental data analysis, market analysis, etc. Processing challenges we commonly face include working with very large result sets that can equal or greatly exceed (in the case of cartesian product joins) the size of the initial table(s), querying or joining tables where columns are not always indexed, and having to perform extremely large updates (adds and edits) to very large tables.
HOPS is designed with simplicity in mind. Our database kernel runs as a single instance on an SMP machine. It is heavily multi-threaded to maximize the performance of the available hardware. At the heart of our technology is a near-linear sort, which is able to take data off of disk, sort it, and write it back to disk at close to the speed that the disk i/o subsystem will allow. We make extensive use of data compression to balance bottlenecks and maximize throughput, and we employ a number of heuristics to facilitate processing speed.
I would enjoy exchanging ideas with other Itanium developers. We have spent a great deal of time tweaking our kernel to allow the compiler to better optimize the Itanium processors, but of course there is much more to be learned! HOPS technology also has its own parser and compiler to handle database filters (‘where’ clauses) and calculated columns – needless to say processing efficiency is drop-dead critical in this area given our market turf. Fun stuff with plenty of Itanium architecture implications!