Joe bot, an SQL query optimization assistant, updated to version 0.5.0

Meet Joe

*Update: this post reached the HN top, see the discussion of Joe bot at Hacker News!*

Joe is a Postgres query optimization assistant. Joe allows to boost the development process:

  • eliminating annoying waiting time needed to provision copies of large databases for development and testing purposes,
  • helping engineers understand details of SQL query performance.

Joe works on top of Database Lab. Every time when an engineer starts communicating with Joe, a new full-size copy of the database is provisioned.

This process is fully automated and takes only a few seconds, even for multi-terabyte databases. Such database copies are called “thin clones” because multiple clones share the same data blocks, so provisioning is super fast, and disk space consumption is very low. The clones are fully independent, so developers can modify databases. Finally, SQL execution plans are identical to production, which makes it possible to troubleshoot and optimize queries reliably without involving production databases.

Currently, Joe is provided only in the form of Slack chatbot. Slack was chosen to improve the level of collaboration of developers and DBAs. Alternative commucation ways (including beloved psql) are planned for future versions.

More about Joe features you can find in “What Is Joe Bot?”.

Demo

Joe demo

If you have Slack app installed, try the live demonstration:

  • Add the Database Lab community to your Slack: https://database-lab-team-slack-invite.herokuapp.com/.
  • Go to the #joe-bot-demo public channel.
  • Start with the help command, explain any queries, apply any changes to database schema using exec, quickly rollback changes with reset.

What’s new in version 0.5.0

Version 0.5.0 adds support of Slack API signed secrets, automated notifications when long-lasting jobs are done, various improvements in EXPLAIN plan processing, more. The full list of changes can be found in Changelog.