|
| 1 | +--- |
| 2 | +title: "A Benchmark Harness for Query Execution Correctness Verification and Query Optimizer Evaluation of Database Systems" |
| 3 | + |
| 4 | +event: Weekly Talk |
| 5 | +event_url: |
| 6 | + |
| 7 | +location: COM3-B1-15 - Meeting Rm 92 |
| 8 | +address: |
| 9 | + street: |
| 10 | + city: |
| 11 | + region: |
| 12 | + postcode: |
| 13 | + country: Singapore |
| 14 | + |
| 15 | +summary: |
| 16 | +abstract: "Query engines are the cornerstone of any relational databases, including query optimizers and query executors. It is imperative for database developers to be equipped with a tool to detect the query execution bug and evaluate the query optimizer quality during rapid iterative development phases. |
| 17 | +We propose a testing framework for query (especially join) execution verification, cardinality estimation benchmarking, and join order selection evaluation. |
| 18 | +Our core components are a data and schema generator, a complex and effective join query generator, as well as an exact cardinality and join oracle generator. In the data and schema generator, we propose a PK-driven deterministic data generation mechanism which not only compresses the entire database in a memory-saving way via mathematical relationships but also enables our tool to be aware of data and orchestrate data meaningfully. We can generate large-scale data with customizable skewness and a complex schema with rich joinable key sets, providing an ample search space for diverse join generation. |
| 19 | +For the join query generation, we implement a complex join template generator which covers intricate join graphs including chain join, star join, tree join, cycle query, and other complex join graphs. The biggest obstacle preventing existing database fuzzers from generating massive joins is to ensure their meaningfulness. To address it, we propose a synergy-aware and result-guided query parameter inference method to quantify and infer the sample spaces for query parameters, guaranteeing the effectiveness of complex join queries. |
| 20 | +In terms of the exact cardinality and join oracle generation, we formulate the Join Query Processing as the Constraint Satisfaction Problem (CSP) and build a true cardinality and join oracle generator on top of SMT solvers, providing a formal, provable, and highly reliable solution for generating exact cardinality and join ground-truth results in a self-inferable way. |
| 21 | +Our tool has been collaborating with many famous database vendors such as OceanBase, demonstrating its effectiveness by evaluating it on many open-sourced databases regarding cardinality estimation benchmarking, join order performance diagnostics, and logic bug detection." |
| 22 | + |
| 23 | +# Talk start and end times. |
| 24 | +# End time can optionally be hidden by prefixing the line with `#`. |
| 25 | +date: "2025-02-19T14:00:00Z" |
| 26 | +date_end: "2025-02-19T15:00:00Z" |
| 27 | +all_day: false |
| 28 | + |
| 29 | +# Schedule page publish date (NOT talk date). |
| 30 | +publishDate: "2017-01-01T00:00:00Z" |
| 31 | + |
| 32 | +authors: [Zhaokun Xiang] |
| 33 | +tags: [Weekly Talk] |
| 34 | + |
| 35 | +# Is this a featured talk? (true/false) |
| 36 | +featured: false |
| 37 | + |
| 38 | +image: |
| 39 | + caption: 'Image credit: [**Unsplash**](https://unsplash.com/photos/bzdhc5b3Bxs)' |
| 40 | + focal_point: Right |
| 41 | + |
| 42 | +url_code: "" |
| 43 | +url_pdf: "" |
| 44 | +url_slides: "" |
| 45 | +url_video: "" |
| 46 | + |
| 47 | +# Markdown Slides (optional). |
| 48 | +# Associate this talk with Markdown slides. |
| 49 | +# Simply enter your slide deck's filename without extension. |
| 50 | +# E.g. `slides = "example-slides"` references `content/slides/example-slides.md`. |
| 51 | +# Otherwise, set `slides = ""`. |
| 52 | +slides: |
| 53 | + |
| 54 | +# Projects (optional). |
| 55 | +# Associate this post with one or more of your projects. |
| 56 | +# Simply enter your project's folder or file name without extension. |
| 57 | +# E.g. `projects = ["internal-project"]` references `content/project/deep-learning/index.md`. |
| 58 | +# Otherwise, set `projects = []`. |
| 59 | +projects: |
| 60 | + |
| 61 | +# Slides can be added in a few ways: |
| 62 | +# |
| 63 | +# - **Create** slides using Wowchemy's [*Slides*](https://wowchemy.com/docs/managing-content/#create-slides) feature and link using `slides` parameter in the front matter of the talk file |
| 64 | +# - **Upload** an existing slide deck to `static/` and link using `url_slides` parameter in the front matter of the talk file |
| 65 | +# - **Embed** your slides (e.g. Google Slides) or presentation video on this page using [shortcodes](https://wowchemy.com/docs/writing-markdown-latex/). |
| 66 | +# |
| 67 | +# Further event details, including page elements such as image galleries, can be added to the body of this page. |
| 68 | + |
| 69 | + |
| 70 | +--- |
0 commit comments