← Back to team overview

maria-developers team mailing list archive

MDEV-6111: Optimizer trace: features and milestones


Hi Zhzhzoo,

Please find below some thoughts about features/milestones in the project. Items
at the top of the list should be done first.

The list is not necesarrily complete, any comments/additions are welcome.

- Optimizer trace collection API (is it different from Json_writer that 
  we have? Does MySQL use the same API to produce EXPLAIN FORMAT=JSON
  and produce optimizer_trace? Should we follow them?)

- Basic optimizer trace collection (just print the query and 
  "hello":"world" instead of trace). Clear the trace data at query start,
  collect the trace if tracing is switched on (and do not collect if it is off)


  Produce optimizer_trace content for features common with MySQL:
  = condition rewrite
  = partition pruning
  = range analysis
  = ref/eq_ref analysis (update_ref_and_keys)
  = (TODO what else?)

  Produce optimizer_trace content for MariaDB-specific features:
  = merged semi-join conversion
  = non-merged semi-join conversion
  = join condition pushdown
  = (TODO what else?)

- optimizer_trace_limit/optimizer_trace_offset (without this feature, 
  just save one last trace)

- Ability to produce either a pretty-printed or one-line optimizer trace

- Security
  = Who can view optimizer_trace?
  = Figure out and implement the necessary security restrictions

- Memory limits
  = Honor the @@optimizer_trace_max_mem_size setting.

Sergei Petrunia, Software Developer
MariaDB Corporation | Skype: sergefp | Blog: http://s.petrunia.net/blog

Follow ups