Parallelizing extensible query optimizers
Proceedings of the 2009 ACM SIGMOD International Conference on Management of data
Reversing statistics for scalable test databases generation
Proceedings of the Sixth International Workshop on Testing Database Systems
Hi-index | 0.00 |
Query optimizers are among the most complex software components in any database system and are naturally prone to contain software defects. Despite significant efforts in quality assurance, customers occasionally encounter unexpected errors in production systems. A self-contained repro of the problem is often the best approach toward a speedy resolution of the issue. However, repros are notoriously difficult to obtain as they require schema definition, the offending query, and potentially many other pieces of data that are difficult to capture in a consistent and accurate way. As a result, query optimizer issues have a reputation of being hard to tackle and requiring dedicated resources and exceedingly long turnaround time to provide solution to the customer. In this paper we present AMPERe, a mechanism to automatically secure fully self-contained bug repros, as implemented in the optimizer of Greenplum Database. Raising an internal error or run-time assertion automatically triggers the generation of AMPERe-dumps. Similar in nature to error reports of operating systems, AMPERe goes beyond such tools as it delivers a complete minimal repro that allows replaying the problem instantly in isolation on any lab machine. We present the overall architecture of this framework and report on initial experiences with AMPERe as part of Greenplum's regular software development practices.