capistrant commented on code in PR #19903:
URL: https://github.com/apache/druid/pull/19903#discussion_r3731325714


##########
server/src/main/java/org/apache/druid/server/coordinator/rules/ProjectionPartialLoadMatcher.java:
##########
@@ -33,12 +34,23 @@
 /**
  * Base for {@link PartialLoadMatcher} implementations that decide which of a 
segment's V10 projections to load.
  * Subclasses supply the resolution policy via {@link 
#resolveProjectionNames(DataSegment)}; this base handles
- * fingerprint computation and wraps the result into the {@code 
partialProjection} load-spec wire form consumed
- * by the historical-side {@link PartialProjectionLoadSpec}.
+ * fingerprint computation and wraps the result into the {@code 
partialProjection} load spec consumed by the
+ * historical-side {@link PartialProjectionLoadSpec}.
  * <p>
  * The fingerprint is a hash of what projections are partially loaded on a 
segment by this rule; the data node will
  * include this value in the segment announcement so that it can be used as a 
lightweight value to compare against
  * to handle things like rule change so that we can ensure that the 'right' 
partial load is in place from run to run.
+ * <p>
+ * <b>Projection matchers always apply.</b> When none of the configured 
projections are present on a segment, the
+ * matcher resolves to a {@link PartialBaseTableLoadSpec} (every row, no 
projections) instead of going opaque. A
+ * projection is precomputation that is always recoverable from the base 
table, so the base table is a correct
+ * substitute for one the segment doesn't carry, and it is strictly less data 
than every bundle on the segment. This
+ * is the ordinary state of affairs mid-rollout, when a new projection is 
being reindexed in and only some segments
+ * carry it yet.

Review Comment:
   like could we have projection rules carry a no matched projections behavior 
desire of load  base table on demand or base table eagerly I guess is what I'm 
noodling on. 
   
   but maybe I'm overcomplicating it and as long as this is defined behavior 
that it is a choice an operator takes when they use projection based partial 
rules



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to