Re: [POC] hash partitioning
Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>
From: Ashutosh Bapat <ashutosh.bapat@enterprisedb.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: amul sul <sulamul@gmail.com>,
Jesper Pedersen <jesper.pedersen@redhat.com>, Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>, Thom Brown <thom@linux.com>, Dilip Kumar <dilipbalaut@gmail.com>, Yugo Nagata <nagata@sraoss.co.jp>, David Steele <david@pgmasters.net>, Greg Stark <stark@mit.edu>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2017-11-02T08:22:51Z
Lists: pgsql-hackers
On Thu, Nov 2, 2017 at 1:35 PM, Robert Haas <robertmhaas@gmail.com> wrote: > On Wed, Nov 1, 2017 at 3:46 PM, amul sul <sulamul@gmail.com> wrote: >> Although partition constraints become more simple, there isn't any performance >> gain with 0005 patch. Also I am little skeptic about logic in 0005 where we >> copied extended hash function info from the partition key, what if parent is >> changed while we are using it? Do we need to keep lock on parent until commit in >> satisfies_hash_partition? > > I don't think it should be possible for the parent to be changed. I > mean, the partition key is altogether immutable -- it can't be changed > after creation time. The partition bounds can be changed for > individual partitions but that would require a lock on the partition. > > Can you give an example of the kind of scenario about which you are concerned? Right now partition keys are immutable but we don't have much code written with that assumption. All the code usually keeps a lock on the parent till the time they use the information in the partition key. In a distant future, which may not exist, we may support ALTER TABLE ... PARTITION BY to change partition keys (albeit at huge cost of data movement). If we do that, we will have to remember this one-off instance of code which assumes that the partition keys are immutable. -- Best Wishes, Ashutosh Bapat EnterpriseDB Corporation The Postgres Database Company
Commits
-
Add hash partitioning.
- 1aba8e651ac3 11.0 landed
-
Add sanity check for pg_proc.provariadic
- 35f059e9bdfb 11.0 landed
-
Add hash_combine64.
- b7f3eb31405f 11.0 landed
-
Make RelationGetPartitionDispatchInfo expand depth-first.
- 77b6b5e9ceca 11.0 cited
-
Introduce 64-bit hash functions with a 64-bit seed.
- 81c5e46c490e 11.0 cited
-
pg_dump: Add a --load-via-partition-root option.
- 23d7680d04b9 11.0 cited