Git Product home page Git Product logo

Comments (9)

ozgune avatar ozgune commented on May 21, 2024

We have 4 other issues that relate to propagating DDL changes. For now, I'm using this issue as a high level one and documenting other issues below.

  • Issue #168 talks about extending DDL commands for Alter, Delete, and Create Table to support table sharding. I'm happy to at least remove the Alter Table part from this issue. @samay-sharma, what do you think?
  • Issue #265 relates to failure handling for DDL command propagation. We decided to think about this as part of v2 changes (#25).
  • Issue #312 relates to propagating CREATE INDEX commands that don't have index names.
  • Issue #1007 relates to running CREATE INDEX CONCURRENTLY.
  • Issue #1239 relates to adding support for ALTER TABLE ADD/DROP CONSTRAINT commands.

After release, we must remember to reply to citusdata/pg_shard#98 to direct future readers to this project so they can benefit from the DDL stuff it provides. At that point, we can close that ticket.

The following 4 issues don't directly relate to DDL command propagation, but are worth mentioning nonetheless.

  • Issue #54 and #184 talks about DDL propagation for Unlogged Tables
  • Issue #192 talks about DDL commands and defining primary keys
  • Issue #40 talks about creating distributed materialized views

The following issues were related to DDL propagation. They have since been resolved:

  • Issue #131 improves DDL propagation's performance by running these commands in parallel.
  • Issue #274 touches on a potential usability issue with our current behavior -- for Citus pre-4.1 customers who built their own DDL propagation scripts.
  • Issue #132 relates adding error or warning messages for unsupported ALTER TABLE commands.
  • Issue #86 relates to propagating TRUNCATE to shards.

from citus.

samay-sharma avatar samay-sharma commented on May 21, 2024

Adding 2 more issues which we should evaluate during DDL propagation v2:

#356 relates to avoiding passing the text query string directly to the worker nodes.
#357 relates to considering if we should run the command on the master before the workers.

from citus.

ozgune avatar ozgune commented on May 21, 2024

Adding two more issues to evaluate during DDL propagation v2:

#354 relates to improving DDL propagation support for index related commands.
#376 relates to improving DDL propagation support for database related commands.

from citus.

lithp avatar lithp commented on May 21, 2024

#513 also relates to this issue. ALTER TABLE ... SET NOT NULL can have partial failures if some shards have rows with null values

from citus.

onderkalaci avatar onderkalaci commented on May 21, 2024

I have a question here. Are there any blockers not to support CONCURRENTLY for index creation?

from citus.

aamederen avatar aamederen commented on May 21, 2024

#633 relates to improving DDL propagation support for rename related commands.

from citus.

ozgune avatar ozgune commented on May 21, 2024

@onderkalaci -- We're now tracking CREATE INDEX CONCURRENTLY in #1007.

(edited based on @anarazel's comment below)

The reason we currently don't support it is failure semantics. With CREATE INDEX, we can issue the command within a transaction block. If we observe a failure, we can roll it back. CREATE INDEX CONCURRENTLY doesn't run inside a transaction, so we may need to incorporate more logic to handle out-of-band errors.

from citus.

anarazel avatar anarazel commented on May 21, 2024

from citus.

marcocitus avatar marcocitus commented on May 21, 2024

Most of the issues referenced here are closed. DDL is now transactional, parallel, and supports many more commands, including CREATE INDEX CONCURRENTLY. We can use individual issues to track missing features (or open a new parent issue).

from citus.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.