Commit Graph

6866 Commits (1e5decad7514c2c23d5a13a7984c2075bb6e5c71)

Author SHA1 Message Date
Burak Yucesoy 5db357eb1a Remove ONLY clause from worker queries
Fixes #475

With this change we prevent addition of ONLY clause to queries prepared for
worker nodes. When we add ONLY clause we may miss the inherited tables in
worker nodes created by users manually.
2016-06-03 11:42:43 +03:00
Jason Petersen 027a7a717d Merge pull request #391 from citusdata/feature/rely-less-on-remote-task-check-interval
Prototype: Rely less on remote_task_check_interval.

cr: @jasonmp85
2016-06-02 12:34:25 -06:00
Andres Freund 3dac0a4d14
Rely less on remote_task_check_interval.
When executing queries with citus.task_executor = 'real-time', query
execution could, so far, spend a significant amount of time
sleeping. That's because we were
a) sleeping after several phases of query execution, even if we're not
   waiting for network IO
b) sleeping for a fixed amount of time when waiting for network IO;
   often a lot longer than actually required.
Just reducing the amount of time slept isn't a real solution, because
that just increases CPU usage.

Instead have the real-time executor's ManageTaskExecution return whether
a task is currently being processed, waiting for reads or writes, or
failed. When all tasks are waiting for IO use poll() to wait for IO
readyness.

That requires to slightly redefine how connection timeouts are handled:
before we counted the number of times ManageTaskExecution() was called,
and compared that with the timeout divided by the task check
interval. That, if processing of tasks took a while, could significantly
increase the time till a timeout occurred. Because it was based on the
ManageTaskExecution() being called on a constant interval, this approach
isn't feasible anymore.  Instead measure the actual time since
connection establishment was started. That could in theory, if task
processing takes a very long time, lead to few passes over
PQconnectPoll().

The problem of sleeping too much also exists for the 'task-tracker'
executor, but is generally less problematic there, as processing the
individual tasks usually will take longer. That said, for e.g. the
regression tests it'd be helpful to use a similar approach.
2016-06-02 12:11:16 -06:00
Metin Döşlü ae8ba2ac52 Merge pull request #570 from citusdata/move_master_update_shard_statistics_to_pg_catalog
Move master_update_shard_statistics() to pg_catalog

cr: @marcocitus
2016-06-02 13:22:44 +03:00
Metin Doslu d4c4eaa9ff Move master_update_shard_statistics() to pg_catalog
Fixes #546
2016-06-02 10:52:47 +03:00
Jason Petersen 87d6a7e897
Merge branch amosbird:remove-redundant-functions
Closes #523
cr: @jasonmp85
2016-05-27 15:13:53 -06:00
Jason Petersen e774f22ed4
Fix formatting
Checking in citus_indent output.
2016-05-27 15:13:28 -06:00
Amos Bird 92788a0d9c
Remove redundant implementations of error funcs.
This patch does some basic cleaning jobs. It removes duplicated
implementations of ReportRemoteError() and related ones and adjusts
regression tests.
2016-05-27 15:12:59 -06:00
Jason Petersen c0c71cb8c5
Merge branch credativ:reproducible
cr: @jasonmp85
2016-05-27 12:45:55 -06:00
Jason Petersen e71fe3ef47
Merge branch infracaninophile:freebsd-fixes2
Closes #541
cr: @jasonmp85
2016-05-27 12:36:58 -06:00
Matthew Seaman 332c322b4f
Add inet includes for htonl and htons funtions
Needed to fix FreeBSD builds.
2016-05-27 12:36:12 -06:00
Murat Tuncer 24e1224eac Merge pull request #516 from citusdata/feature/fix_434_support_count_distinct
Add complex count distinct support
2016-05-27 15:55:47 +03:00
Murat Tuncer 2b0d6473b9 Add complex distinct count support for repartitioned subqueries
Single table repartition subqueries now support count(distinct column)
and count(distinct (case when ...)) expressions. Repartition query
extracts column used in aggregate expression and adds them to target
list and group by list, master query stays the same (count (distinct ...))
but attribute numbers inside the aggregate expression is modified to
reflect changes in repartition query.
2016-05-27 15:43:05 +03:00
Metin Döşlü b520fb7448 Merge pull request #489 from citusdata/respect_guc_in_master_create_empty_shard
Make master_create_empty_shard() aware of the shard placement policy

cr: @marcocitus
2016-05-27 15:13:23 +03:00
Metin Doslu afa74ce5ca Make master_create_empty_shard() aware of the shard placement policy
Now, master_create_empty_shard() will create shards according to the
value of citus.shard_placement_policy which also makes default round-robin
instead of random.
2016-05-27 15:05:53 +03:00
Ahmet Eren Basak 2148922cb2 Merge pull request #486 from citusdata/multi_shard_delete
ADD master_modify_multiple_shards UDF
2016-05-26 17:37:07 +03:00
eren 132d9212d0 ADD master_modify_multiple_shards UDF
Fixes #10

This change creates a new UDF: master_modify_multiple_shards
Parameters:
  modify_query: A simple DELETE or UPDATE query as a string.

The UDF is similar to the existing master_apply_delete_command UDF.
Basically, given the modify query, it prunes the shard list, re-constructs
the query for each shard and sends the query to the placements.

Depending on the value of citus.multi_shard_commit_protocol, the commit
can be done in one-phase or two-phase manner.

Limitations:
* It cannot be called inside a transaction block
* It only be called with simple operator expressions (like Single Shard Modify)

Sample Usage:
```
SELECT master_modify_multiple_shards(
  'DELETE FROM customer_delete_protocol WHERE c_custkey > 500 AND c_custkey < 500');
```
2016-05-26 17:30:35 +03:00
Burak Yücesoy c75df74348 Merge pull request #517 from citusdata/fix/fix_469_rename_ReceiveRegularFile
Change duplicated function name - RecieveRegularFile()
2016-05-26 14:05:55 +03:00
Burak Yucesoy 0e71ffd937 Fix #469
This change renames one of the ReceiveRegularFile functions with
more descriptive name.
2016-05-26 12:03:36 +03:00
Christoph Berg 7df82baf46 Sort list of objects in src/backend/distributed/Makefile
Make's $(wildcard) does not sort the glob result, but returns filenames
in filesystem ordering. This makes the build result vary and hence
unreproducible on the binary level. Fix by adding $(sort).

Spotted by Debian's reproducible builds project.
2016-05-18 10:42:20 +02:00
Jason Petersen ad61d4ae06 Merge pull request #531 from citusdata/update_changelog
Add CHANGELOG entries for 5.1 release

cr: @sumedhpathak
2016-05-17 10:13:57 -06:00
Jason Petersen a7ae634750
Add CHANGELOG entries for 5.1 release
Probably a superset of what we actually want, but should be complete.
2016-05-17 10:02:05 -06:00
Jason Petersen 4ca4f10966
Add multi_copy test outputs to gitignore 2016-05-10 13:36:56 -06:00
Jason Petersen 61b6394e4b
Add gitignore rules for latest install files
Got tired of dirty git tree.
2016-05-10 11:57:11 -06:00
Jason Petersen d76ead817b
Add latest CHANGELOG entries 2016-05-10 11:57:00 -06:00
Önder Kalacı de3bcc4364 Merge pull request #495 from citusdata/fix/494_invalid_distributed_explain_json
Distributed EXPLAIN: Generate valid JSON output
2016-05-06 15:01:49 +03:00
Marco Slot 1b4fbc76e2 Add JSON/XML validation to EXPLAIN regression tests and fix issues 2016-05-06 11:30:07 +02:00
Lukas Fittl 2f694f7af3 Distributed EXPLAIN: Generate valid JSON output.
This modifies the EXPLAIN output functions to actually generate
valid JSON output when (FORMAT JSON) is being used.

Fixes #494.
2016-05-05 12:48:01 +02:00
Önder Kalacı ca909a71fc Merge pull request #498 from citusdata/fix_check_full_failure
Fix check-full failures
2016-05-05 13:43:24 +03:00
Onder Kalaci d7fd56df89 Fix check-full failures
This commit fixes failures happen during check-full. The change does make
clean seperation of executor types in certain places to keep the outputs
stable.
2016-05-05 12:28:22 +03:00
Jason Petersen eab60e20de
Add CHANGELOG entry for 5.0.1 2016-05-04 22:07:43 -06:00
Andres Freund 2eb386dcf7 Merge pull request #493 from citusdata/stamp-5.1
Stamp 5.1

CR: Jason
2016-05-04 18:47:01 -07:00
Andres Freund 5f282dd241 Stamp 5.1 release. 2016-05-04 18:05:41 -07:00
Andres Freund 4d7bcfdd35 Generate extension versions from the previous one. 2016-05-04 18:05:41 -07:00
Önder Kalacı 5604669db5 Merge pull request #487 from citusdata/fix_compile_warning
Fix compile time warning
2016-05-04 09:52:05 +03:00
Onder Kalaci 38da3c826b Fix compile time warning
This change fixes a compile time warning related to definition/declaration order
of the code.
2016-05-04 09:42:10 +03:00
Marco Slot 5f35c48132 Merge pull request #485 from citusdata/fix-explain-cost-output
Remove costs from explain regression tests
2016-05-03 22:23:54 +02:00
Marco Slot 845aebfe19 Remove costs from explain regression tests 2016-05-03 22:11:23 +02:00
Metin Döşlü 2db30af07f Merge pull request #468 from citusdata/feature/worker-copy-for-append-partitioning
Add COPY support on worker nodes for append partitioned relations

CR: @marcocitus
2016-05-03 16:08:27 +03:00
Metin Doslu 866271b765 Add COPY support on worker nodes for append partitioned relations
Now, we can copy to an append-partitioned distributed relation from
any worker node by providing master options such as;

COPY relation_name FROM file_path WITH (delimiter '|', master_host 'localhost', master_port 5432);

where master_port is optional and default is 5432.
2016-05-03 16:00:00 +03:00
Marco Slot ecd5b65897 Merge pull request #478 from citusdata/remove_copy_to_distributed_table
Add deprecation warning to copy_to_distributed_table
2016-05-03 14:16:28 +02:00
Marco Slot 0c140cf333 Add deprecation warning to copy_to_distributed_table 2016-05-03 14:08:42 +02:00
Brian Cloutier 58535eb337 Query Planning Performance Improvments (#474)
- Only look at pruned shards when determining AnchorTable
- Use cached shardIntervalCompareFunction during copartition check
2016-05-03 10:48:46 +03:00
Marco Slot becac83ac9 Merge pull request #481 from citusdata/fix-spurious-test-files
Remove spurious intermediate regression test files
2016-05-02 12:57:02 +02:00
Marco Slot 24a74fb0ae Remove spurious intermediate regression test files 2016-05-02 12:30:15 +02:00
Jason Petersen 599dbb99ae Merge pull request #476 from citusdata/fix_connection_status
Force bad connections in tests by closing sockets

cr: @anarazel
2016-04-29 16:05:14 -07:00
Jason Petersen 510783f84f
Force bad connections in tests by closing sockets
Based on Andres' suggestion, I removed SetConnectionStatus, moving its
functionality directly into set_connection_status_bad, which now simply
shuts down the socket underlying a particular connection.

This keeps the functionality as-is while removing our questionable use
of internal libpq headers.
2016-04-29 15:56:04 -07:00
Marco Slot 1859a285a0 Merge pull request #414 from citusdata/feature/explain
Add EXPLAIN for simple distributed queries
2016-04-30 00:35:47 +02:00
Marco Slot fc4f23065a Add EXPLAIN for simple distributed queries 2016-04-30 00:11:02 +02:00
Ahmet Eren Basak 25382c289b Merge pull request #479 from citusdata/fix_mixed_code_and_declaration_warning
FIX "mixed declarations and code" Warning in multi_physical_planner.c
2016-04-29 13:54:35 +03:00