Fourth Annual SIGMOD Programming Contest :: A Multidimensional Indexing System
Student teams from degree granting institutions are invited to compete in the fourth annual SIGMOD programming contest. This year's task is to implement a multidimensional high-throughput in-memory indexing system. Submissions will be judged based on their overall performance on a variety of different workloads. A shortlist of finalists will be invited to present their implementations at SIGMOD 2012 in Scottsdale, Arizona, USA, where the winning team will be awarded a prize of
News and Updates
Please subscribe to our mailing list to stay up-to-date.
The task for this year’s contest is the implementation of a multidimensional high-throughput in-memory index structure that supports common database operations such as point and range queries as well as data manipulation. Application scenarios for such multidimensional indexes are, for example, multimedia indexing, CAD or geospatial data.
We provide a basic interface for index creation, insert, update, delete, point and range queries. As point queries are special range queries, both cases will be handled by one function (optimizations to be handled inside each implementation). All data will be given in the form of a record represented by a multidimensional key and some raw binary data (payload). The workload includes exact- (all index attributes specified) and partial- (subset of index attributes specified) match point queries (conjunctive predicates only), range queries (with ordering), as well as exact-match data manipulations.
The winner will be the submission that completes all of the queries with the smallest average execution time (we will provide a leaderboard that measures the average number of transactions per second) while also passing a set of correctness tests (some of which we will make public).
In this section, we give details about the task requirements. To evaluate your solution, we will run a variety of different benchmarks with different workloads on it. There is a default configuration, which we use for the majority of benchmarks, but in order to get a general solution, our benchmark suite includes tests that take each parameter to its limits.
The detailed interface is available in the Resources-section.
We provide a configurable benchmark that produces workloads, which consist of three transaction types as stated in the task description. Contestants are able to use this benchmark for their private evaluation. However, we use the same benchmark driver for the leaderboard and the final evaluation. The leaderboard driver will use the given default values, while the final evaluation additionally uses some other common workloads and workloads that take each individual parameter to its limit.
Submitting Your Implementation
While we encourage you to test your implementation locally by providing a basic benchmark and a set of unit tests, we offer an online evaluation system allowing you to run the benchmark on our test machine. Of course we only run the public benchmark, which consists of smaller and less critical performance tests.
We also provide a leaderboard to help you to keep track of your progress and compare the performance of your implementation with implementations by other contestants.
Test hardware specifications:
In order to run your code on our machine as well as for your final submission, you are required to submit a shared 64-bit linux compatible library (*.so), which implements the given interfaces. We will link our test drivers against this library and measure the overall execution time for each workload.
For the final submission we additionally need the following things:
You can submit your implementations using your dashboard. The submission deadline is March 25 at 23:59 UTC.
The submission deadline for the second round (finalists only) is May 6 at 23:59 UTC.
The ACM SIGMOD 2012 Programming Contest is open to undergraduate and graduate students all over the world. A team may be formed by one or more students, who may not necessarily be enrolled at the same institution. All team members must be actively enrolled as a student at an accredited degree-granting institution at the beginning of the competition (Dec. 14, 2011). Several teams from the same institution can compete independently. Students associated with the organizers are not eligible to enter. Students who are enrolled at TU-Dresden and still want to join the competition, please contact Thomas Kissinger.
All teams have to supply their source codes, in order to allow us to review the code, and agree to license their code under the MIT License. The finalist implementations will be made public on this website. Teams may choose to use third-party libraries, as long as they do not implement core functions of the system and are compatible with the MIT License (So using a hash map implementation might be allowed, but using a prebuilt indexing system is not). Be aware that the usage of a third-party library can lead to a disqualification, if one of these rules is violated.
This contest is organized by the Database Technology Group at TU-Dresden in collaboration with the MIT Computer Science and Artificial Intelligence Laboratory (CSAIL).
A poster that can be used to promote the contest at universities is available here:
It is intended for A3 printing, but will still be readable on a single page A4 sized paper.
We have also created a version that is optimized for printing on letter-sized paper:
Last Update: September 19, 2012 11:11 CEST
Author Database Technology Group, Technische Universität Dresden
Tel.: +49 351 463-38589
Fax: +49 351 463-38259
Student Research Assistant
Lukas M. Maas
Tel.: +49 351 463-38383
Fax: +49 351 463-38259
Visiting Address (View)
Nöthnitzer Str. 46
Technische Universität Dresden
Dep. of Computer Science
Institute for System Architecture
Database Technology Group