citusdata / citusdata/citus

Harden database commands against failures

Open
#7,369 0 comments 0 reactions 1 assignee Claimed by @onurctirtir View on GitHub
bug DDL usability
Dominant language
C
Stars
12.8k
Forks
794
Avg merge
2d 14h
Merged PRs (30d)
31

Description

Today, for database commands that cannot be executed in a transaction block (**), we don't do much next time when the command is invoked, if the prior invocation failed in the midway, e.g., if CREATE DATABASE succeeded on some nodes but not on all. We should do something better than this. For example, @thanodnl shared this as an idea on how we could handle failure scenarios for CREATE DATABASE better:
> eg, could we use a trick where we create the database with a temporary name on all nodes and then transactionally rename the database
> we could track the temporary names in a local catalog table for cleanup later if required etc.

- CREATE DATABASE ✅ https://github.com/citusdata/citus/pull/7483
- DROP DATABASE
- ALTER DATABASE SET TABLESPACE

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.