Commit Graph

4165 Commits (7c891a01a96ab2f7dd33e96fa3933a807cf5a96c)

Author SHA1 Message Date
Sait Talha Nisanci 99bb79745a Commit transaction for VACUUM on shell table
With postgres 13, there is a global lock that prevents multiple VACUUMs
happening in the current database. This global lock is taken for a short
time but this creates a problem because of the following:

- We execute the VACUUM for the shell table through the standard process
utility. In this step the global lock is taken for the current database.
- If the current node has shard placements then it tries to execute
VACUUM over a connection to localhost with ExecuteUtilityTaskList.
- the VACUUM on shard placements cannot proceed because it is waiting
for the global lock for the current database to be released.
- The acquired lock from the VACUUM for shell table will not be released
until the transaction is committed.
- So there is a deadlock.

As a solution, we commit the current transaction in case of VACUUM after
the VACUUM is executed for the shell table. Executing the VACUUM on a
shell table is not important because the data there will probably be
truncated. PostprocessVacuumStmt takes the necessary locks on the shell
table so we don't need to take any extra locks after we commit the
current transaction.
2020-10-09 10:57:44 +03:00
Hadi Moshayedi e481e73d18 Encapsulate snapshot used for reading stripes in cstore_metadata_tables 2020-10-08 16:02:45 -07:00
Hadi Moshayedi 76a71aa61a Use SnapshotDirty for reading metadata in truncation 2020-10-08 14:46:42 -07:00
Hadi Moshayedi 55885c81dd log stats on verbose 2020-10-08 14:42:49 -07:00
Hadi Moshayedi 37e3845e6a Address Nils feedback 2020-10-08 14:42:49 -07:00
Hadi Moshayedi 74dd1facf3 add isolation tests 2020-10-08 14:42:49 -07:00
Hadi Moshayedi 2ede755107 Initial version of VACUUM 2020-10-08 14:42:49 -07:00
Hadi Moshayedi aa3032cfdd Address feedback 2020-10-08 14:42:31 -07:00
Hadi Moshayedi eeb25aca85 Add a test which checks for resource clean-up 2020-10-08 14:42:31 -07:00
Hadi Moshayedi 7cc8c8c155 Support VACUUM FULL 2020-10-08 14:42:31 -07:00
Hadi Moshayedi ad78260c3d Merge pull request #21 from citusdata/warn_shadows
Remove shadowed variable definitions
2020-10-08 13:17:30 -07:00
Hadi Moshayedi d1c7d9f09d address feedback 2020-10-08 11:50:32 -07:00
Hadi Moshayedi 92e1603443 Remove shadowed variables 2020-10-08 11:03:07 -07:00
Nils Dijk 9b9b9e2cf0 remove double declaration of stripeMetadata (#20)
Compilers seem to behave differently with variable shadowing as both I and the marlin deployment have segfaults when querying a cstore table today, however, CI seem to not care :D

This removes a double declaration that was not caught in #10
2020-10-08 19:07:18 +02:00
Marco Slot fd40605745
Merge pull request #4222 from citusdata/fix/multiple-maintenanced 2020-10-08 16:45:39 +02:00
Marco Slot 881e5df780 Fix a bug that could lead to multiple maintenance daemons 2020-10-08 16:18:14 +02:00
Marco Slot 18219843d0 Add maintenance daemon error tests 2020-10-08 16:17:33 +02:00
Marco Slot 2e02a30e37
Merge pull request #4226 from snopoke/patch-2 2020-10-08 13:59:48 +02:00
Simon Kelly 03e007e4eb
Merge branch 'master' into patch-2 2020-10-08 13:00:11 +02:00
Simon Kelly 50fa4af7e4 update migration script 2020-10-08 12:52:27 +02:00
Metin Döşlü 6f394e8b1e
Update CLA link (#4227) 2020-10-08 12:57:26 +03:00
Simon Kelly 6fffee7616
Drop backup table after upgrade
The prepare for upgrade script creates the `'public.pg_dist_rebalance_strategy` table which is not dropped when the upgrade is finished. This may block future upgrades.
2020-10-08 09:48:04 +02:00
Marco Slot f904ce1726
Merge pull request #4215 from citusdata/fix/rls-moves 2020-10-06 14:16:40 +02:00
Marco Slot 73fc054c27 Rename DDL command functions 2020-10-06 11:30:56 +02:00
Marco Slot 4f69298d90 Fix RLS and replica identity propagation on shard move 2020-10-06 11:30:03 +02:00
Marco Slot bce11514b9
Merge pull request #4203 from citusdata/fix/sequence-drop 2020-10-06 11:22:21 +02:00
Marco Slot dbc348b7e0 Create sequence dependency during metadata syncing 2020-10-06 10:57:39 +02:00
Marco Slot 9bba8bb4e8 Remove master_drop_sequences 2020-10-06 10:57:33 +02:00
SaitTalhaNisanci b271a4890b
Merge pull request #4216 from citusdata/write_to_postgres_config
Write settings to postgres configuration file directly
2020-10-05 22:43:11 +03:00
Sait Talha Nisanci 078dcae18c Write settings to postgres configuration file directly
In our test structure, we have been passing postgres configurations from
the terminal, which causes problems after it hits to a certain length
hence it cannot start the server and understanding why it failed is not
easy because there isn't a nice error message.

This commit changes this to write the settings directly to the postgres
configuration file. This way we can add as many postgres settings as we
want to without needing to worry about the length problem.
2020-10-05 22:09:08 +03:00
Hadi Moshayedi 434275d46b Merge pull request #17 from citusdata/truncate_cleanup
Implement nontransactional TRUNATE + resource clean-up on TRUNCATE
2020-10-05 11:41:09 -07:00
Hadi Moshayedi 62fc59202c Implement nontransactional truncate 2020-10-05 10:09:19 -07:00
Hadi Moshayedi b72a4d8d19 Clean-up old metadata on TRUNCATE 2020-10-05 10:08:26 -07:00
Hadi Moshayedi 2e47bf5172 Merge pull request #18 from citusdata/rollback
Fix writes after rollback
2020-10-05 09:53:13 -07:00
Hadi Moshayedi a8da9acc63 Fix writes after rollback 2020-10-05 09:51:24 -07:00
Hadi Moshayedi e5a3bd18ae Merge pull request #14 from citusdata/resource_cleanup
Resource cleanup
2020-10-05 09:31:48 -07:00
Hadi Moshayedi a70b0c362e Rename cstore_tables to cstore_data_files 2020-10-05 09:28:40 -07:00
Hadi Moshayedi a87c15a1e1 Address feedback 2020-10-05 09:28:40 -07:00
Ahmet Gedemenli 889fc2db5f
Merge pull request #4214 from citusdata/degrade-gracefully-when-no-background-workers
Degrade gracefully when no background workers available
2020-10-05 17:26:44 +03:00
Ahmet Gedemenli 81db4dca5c Degrade gracefully when no background workers available 2020-10-05 16:55:00 +03:00
Onur Tirtir 2cd0a69dfb
Fix multi-row & router INSERT crash with local exec. when def. cols not specified (#4197)
Multi-row & router INSERT's were crashing with local execution if at
least one of the DEFAULT columns were not specified in VALUES list.

This was because, the changes we make on query->values_lists and
query->targetList was sufficient for deparsing given INSERT for remote
execution but not sufficient for local execution.

With this commit, DEFAULT value normalization for multi-row & router
INSERT's is fixed by adding dummy column references for unspecified
DEFAULT columns.
2020-10-05 10:45:17 +03:00
Hanefi Onaldi ba88ed3f0b
Merge pull request #4207 from citusdata/no-worker-hash-in-insert-select 2020-10-02 18:27:36 +03:00
Hanefi Önaldı 6d8e83d24f
Replace worker_hash calls with partkey IS NOT NULL filters 2020-10-02 18:16:24 +03:00
Önder Kalacı df5aa0f0cc
Switch to sequential execution if the index name is long (#4209)
Citus has the logic to truncate the long shard names to prevent
various issues, including self-deadlocks. However, for partitioned
tables, when index is created on the parent table, the index names
on the partitions are auto-generated by Postgres. We use the same
Postgres function to generate the index names on the shards of the
partitions. If the length exceeds the limit, we switch to sequential
execution mode.
2020-10-02 13:39:34 +03:00
SaitTalhaNisanci 45bb0fb587
Do initial cleanup only once in pg_init (#4213)
In postmasters execution of _PG_init, IsUnderPostmaster will be false and
we want to do the cleanup at that time only, otherwise there is a chance that
there will be parallel queries and we might do a cleanup for things that are
already in use.
2020-10-02 09:12:39 +03:00
Ahmet Gedemenli 6a341b6ab8
Merge pull request #4196 from citusdata/support-explain-analyze-wal
Support EXPLAIN(ANALYZE, WAL)
2020-10-01 14:43:42 +03:00
Ahmet Gedemenli 70e9edb4f2 Add subplan test with insert 2020-10-01 13:58:55 +03:00
Jelte Fennema 13ef8252e7 Add broken distributed subplan test 2020-10-01 13:52:42 +03:00
Ahmet Gedemenli 3357eea46b Add regression tests for PG13 WAL 2020-10-01 13:52:42 +03:00
Ahmet Gedemenli d268aa7bc8 Support EXPLAIN(ANALYZE, WAL) 2020-10-01 13:52:42 +03:00