This is an automated email from the ASF dual-hosted git repository.

karan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git


The following commit(s) were added to refs/heads/master by this push:
     new 03a092f4ece Document Nuances in SegmentMetadataCache Behaviour (#15367)
03a092f4ece is described below

commit 03a092f4ecedf1950321b12046c7f35fa52d91a9
Author: Rishabh Singh <[email protected]>
AuthorDate: Wed Nov 15 18:41:20 2023 +0530

    Document Nuances in SegmentMetadataCache Behaviour (#15367)
    
    * Document segment metadata cache behaviour
    
    * Fix typo
    
    * Minor update
    
    * Minor change
---
 .../segment/metadata/AbstractSegmentMetadataCache.java    | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git 
a/server/src/main/java/org/apache/druid/segment/metadata/AbstractSegmentMetadataCache.java
 
b/server/src/main/java/org/apache/druid/segment/metadata/AbstractSegmentMetadataCache.java
index bcc08f54274..512f247c4fc 100644
--- 
a/server/src/main/java/org/apache/druid/segment/metadata/AbstractSegmentMetadataCache.java
+++ 
b/server/src/main/java/org/apache/druid/segment/metadata/AbstractSegmentMetadataCache.java
@@ -90,9 +90,18 @@ import java.util.stream.StreamSupport;
  * An abstract class that listens for segment change events and caches segment 
metadata. It periodically refreshes
  * the segments, by fetching their metadata which includes schema information 
from sources like
  * data nodes, tasks, metadata database and builds table schema.
- *
- * <p>This class has an abstract method {@link #refresh(Set, Set)} which the 
child class must override
- * with the logic to build and cache table schema.</p>
+ * <p>
+ * At startup, the cache awaits the initialization of the timeline.
+ * If the cache employs a segment metadata query to retrieve segment schema, 
it attempts to refresh a maximum
+ * of {@code MAX_SEGMENTS_PER_QUERY} segments for each datasource in each 
refresh cycle.
+ * Once all datasources have undergone this process, the initial schema of 
each datasource is constructed,
+ * and the cache is marked as initialized.
+ * Subsequently, the cache continues to periodically refresh segments and 
update the datasource schema.
+ * It is also important to note that a failure in segment refresh results in 
pausing the refresh work,
+ * and the process is resumed in the next refresh cycle.
+ * <p>
+ * This class has an abstract method {@link #refresh(Set, Set)} which the 
child class must override
+ * with the logic to build and cache table schema.
  *
  * @param <T> The type of information associated with the data source, which 
must extend {@link DataSourceInformation}.
  */


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

Reply via email to