Re: WIP: [[Parallel] Shared] Hash
Peter Geoghegan <pg@heroku.com>
On Wed, Jan 11, 2017 at 11:20 AM, Peter Geoghegan <pg@heroku.com> wrote: >> If multiple processes are using the same file via the BufFile >> interface, I think that it is absolutely necessary that there should >> be a provision to track the "attach count" of the BufFile. Each >> process that reaches EOXact decrements the attach count and when it >> reaches 0, the process that reduced it to 0 removes the BufFile. I >> think anything that's based on the notion that leaders will remove >> files and workers won't is going to be fragile and limiting, and I am >> going to push hard against any such proposal. > > Okay. My BufFile unification approach happens to assume that backends > clean up after themselves, but that isn't a ridged assumption (of > course, these are always temp files, so we reason about them as temp > files). Also, to be clear, and to avoid confusion: I don't think anyone wants an approach "that's based on the notion that leaders will remove files and workers won't". All that has been suggested is that the backend that creates the file should be responsible for deleting the file, by definition. And, that any other backend that may have files owned by another backend must be sure to not try to access them after the owner deletes them. (Typically, that would be ensured by some barrier condition, some dependency, inherent to how the parallel operation is implemented.) I will implement the reference count thing. -- Peter Geoghegan
Commits
-
Add shared tuplestores.
- ab9e0e718acb 11.0 landed
-
Remove BufFile's isTemp flag.
- 11e264517dff 11.0 landed
-
Provide DSM segment to ExecXXXInitializeWorker functions.
- 7082e614c0dd 11.0 landed
-
Optimize joins when the inner relation can be proven unique.
- 9c7f5229ad68 10.0 cited
-
Fix failure to use clamp_row_est() for parallel joins.
- 1ea60ad602f9 10.0 cited
-
Document lack of validation when attaching foreign partitions.
- b54aad8e34bd 10.0 cited
-
Fix inclusions of c.h from .h files.
- a72f0365db41 10.0 landed
-
Fix inclusions of postgres_fe.h from .h files.
- 9722bb5757c5 10.0 landed
-
Bring plpgsql into line with header inclusion policy.
- 08da52859a1f 10.0 landed
-
Document intentional violations of header inclusion policy.
- d6b059ec740a 10.0 landed
-
Shut down Gather's children before shutting down Gather itself.
- acf555bc53ac 10.0 landed
-
btree: Support parallel index scans.
- 569174f1be92 10.0 cited
-
Add explicit ORDER BY to a few tests that exercise hash-join code.
- 7c5d8c16e12e 10.0 landed
-
Revise hash join code so that we can increase the number of batches
- 849074f9ae42 8.1.0 cited
-
Rewrite hash join to use simple linked lists instead of a
- 26069a58e8e4 7.1.1 cited