>From Ali Alsuliman <[email protected]>: Attention is currently required from: Murtadha Hubail, [email protected]. Ali Alsuliman has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19524 )
Change subject: [ASTERIXDB-3580][COMP] Change collection delivered partitioning property ...................................................................... Patch Set 2: (2 comments) File asterixdb/asterix-app/src/test/resources/runtimets/results/join/hash-join-with-redundant-variable/hash-join-with-redundant-variable.14.plan: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19524/comment/3c87453e_877b1d62 PS2, Line 46: [$$55] > Not related to this patch, but even if the collection is delivering random > partition property, the f […] I think this has to do with the fact that: With the Supplier branch delivering random partitioning, HASH_PARTITION_EXCHANGE [$$59, $$56] is introduced, and so the 'firstDeliveredPartitioning' is HASH_PARTITION_EXCHANGE [$$59, $$56]. Then the requirements for the Customer branch had to be coordinated using prc.coordinateRequirements() (EQCLASS_PARTITIONING_COORDINATOR) which forces the requirements to not be normalized using the functional dependency to reduce the requirements to only hash $55. So, the requirements remained as HASH_PARTITION_EXCHANGE [$$55, $$66]. With the Supplier branch delivering hash partitioning on $59, the delivered property is HASH_PARTITION_EXCHANGE [$$59] (via the ONE_TO_ONE_EXCHANGE), and so the 'firstDeliveredPartitioning' is HASH_PARTITION_EXCHANGE [$$59]. So, then the coordinated requirements for the Customer branch becomes HASH_PARTITION_EXCHANGE [$$55] only. File asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/declared/DataSourcePartitioningProvider.java: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19524/comment/a4fdf6f8_d8afaa8f PS2, Line 160: UnorderedPartitionedProperty.of(pvars, domain); > Can this use partitionsMap as well? BucketDataSourcePropertiesProvider. […] Actually, BucketDataSourcePropertiesProvider should not be using UnorderedPartitionedPropert. This is the bucket operator reading from DCP and therefore, the delivered property should always be random since there is no inherent property. Currently, it is not causing problems because it's actually delivering UnorderedPartitionedPropert on the $document (which is also incorrect) and the dataset UPSERT requires UnorderedPartitionedPropert on $PK and hence the hash-partition exchange is added (as expected) between the bucket operator and the dataset upsert operator. -- To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19524 To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: ionic Gerrit-Change-Id: I38ecaccf133028ff8c4854a02c635b44bdcefcc8 Gerrit-Change-Number: 19524 Gerrit-PatchSet: 2 Gerrit-Owner: Ali Alsuliman <[email protected]> Gerrit-Reviewer: Ali Alsuliman <[email protected]> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Murtadha Hubail <[email protected]> Gerrit-Reviewer: Peeyush Gupta <[email protected]> Gerrit-Reviewer: [email protected] Gerrit-Attention: Murtadha Hubail <[email protected]> Gerrit-Attention: [email protected] Gerrit-Comment-Date: Tue, 18 Mar 2025 23:24:46 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Comment-In-Reply-To: Peeyush Gupta <[email protected]> Gerrit-MessageType: comment
