You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by ja...@apache.org on 2026/04/08 23:13:14 UTC
(pinot) branch master updated: Add new TableDataManager interface: updateCachedTableConfigAndSchema (#18124)
This is an automated email from the ASF dual-hosted git repository.
jackie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to refs/heads/master by this push:
new 5e81f53e47a Add new TableDataManager interface: updateCachedTableConfigAndSchema (#18124)
5e81f53e47a is described below
commit 5e81f53e47af709dd22a480d1a232cb64ee2a917
Author: Jhow <44...@users.noreply.github.com>
AuthorDate: Wed Apr 8 16:13:07 2026 -0700
Add new TableDataManager interface: updateCachedTableConfigAndSchema (#18124)
---
.../controller/helix/core/PinotHelixResourceManager.java | 12 ++++++------
.../apache/pinot/core/data/manager/BaseTableDataManager.java | 9 +++++++--
.../core/data/manager/offline/DimensionTableDataManager.java | 2 +-
.../pinot/segment/local/data/manager/TableDataManager.java | 9 +++++++--
4 files changed, 21 insertions(+), 11 deletions(-)
diff --git a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManager.java b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManager.java
index e439bce4ac9..800dd437403 100644
--- a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManager.java
+++ b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManager.java
@@ -3258,7 +3258,7 @@ public class PinotHelixResourceManager {
}
/// Sends table config refresh message to brokers.
- private void sendTableConfigRefreshMessage(String tableNameWithType) {
+ public void sendTableConfigRefreshMessage(String tableNameWithType) {
ClusterMessagingService messagingService = _helixZkManager.getMessagingService();
TableConfigRefreshMessage message = new TableConfigRefreshMessage(tableNameWithType);
int numMessagesSent =
@@ -3272,7 +3272,7 @@ public class PinotHelixResourceManager {
}
/// Sends table config and schema refresh message to servers.
- private void sendTableConfigSchemaRefreshMessage(String tableNameWithType) {
+ public void sendTableConfigSchemaRefreshMessage(String tableNameWithType) {
ClusterMessagingService messagingService = _helixZkManager.getMessagingService();
TableConfigSchemaRefreshMessage message = new TableConfigSchemaRefreshMessage(tableNameWithType);
int numMessagesSent = MessagingServiceUtils.send(messagingService, message, tableNameWithType);
@@ -3283,7 +3283,7 @@ public class PinotHelixResourceManager {
}
}
- private void sendLogicalTableConfigRefreshMessage(String logicalTableName) {
+ public void sendLogicalTableConfigRefreshMessage(String logicalTableName) {
ClusterMessagingService messagingService = _helixZkManager.getMessagingService();
LogicalTableConfigRefreshMessage message = new LogicalTableConfigRefreshMessage(logicalTableName);
int numMessagesSent =
@@ -3296,7 +3296,7 @@ public class PinotHelixResourceManager {
}
}
- private void sendApplicationQpsQuotaRefreshMessage(String appName) {
+ public void sendApplicationQpsQuotaRefreshMessage(String appName) {
ClusterMessagingService messagingService = _helixZkManager.getMessagingService();
ApplicationQpsQuotaRefreshMessage message = new ApplicationQpsQuotaRefreshMessage(appName);
int numMessagesSent = MessagingServiceUtils.send(messagingService, message, Helix.BROKER_RESOURCE_INSTANCE);
@@ -3308,7 +3308,7 @@ public class PinotHelixResourceManager {
}
}
- private void sendDatabaseConfigRefreshMessage(String databaseName) {
+ public void sendDatabaseConfigRefreshMessage(String databaseName) {
ClusterMessagingService messagingService = _helixZkManager.getMessagingService();
DatabaseConfigRefreshMessage message = new DatabaseConfigRefreshMessage(databaseName);
int numMessagesSent = MessagingServiceUtils.send(messagingService, message, Helix.BROKER_RESOURCE_INSTANCE);
@@ -3320,7 +3320,7 @@ public class PinotHelixResourceManager {
}
}
- private void sendRoutingTableRebuildMessage(String tableNameWithType) {
+ public void sendRoutingTableRebuildMessage(String tableNameWithType) {
ClusterMessagingService messagingService = _helixZkManager.getMessagingService();
RoutingTableRebuildMessage message = new RoutingTableRebuildMessage(tableNameWithType);
int numMessagesSent =
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/data/manager/BaseTableDataManager.java b/pinot-core/src/main/java/org/apache/pinot/core/data/manager/BaseTableDataManager.java
index 815eb5bdb55..ea46c9320f0 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/data/manager/BaseTableDataManager.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/data/manager/BaseTableDataManager.java
@@ -218,7 +218,7 @@ public abstract class BaseTableDataManager implements TableDataManager {
.maximumSize(instanceDataManagerConfig.getDeletedSegmentsCacheSize())
.expireAfterWrite(instanceDataManagerConfig.getDeletedSegmentsCacheTtlMinutes(), TimeUnit.MINUTES)
.build();
- _cachedTableConfigAndSchema = Pair.of(tableConfig, schema);
+ updateCachedTableConfigAndSchema(tableConfig, schema);
_peerDownloadScheme = tableConfig.getValidationConfig().getPeerSegmentDownloadScheme();
if (_peerDownloadScheme == null) {
@@ -419,7 +419,7 @@ public abstract class BaseTableDataManager implements TableDataManager {
Preconditions.checkState(schema != null, "Failed to find schema for table: %s", _tableNameWithType);
IndexLoadingConfig indexLoadingConfig = new IndexLoadingConfig(_instanceDataManagerConfig, tableConfig, schema);
indexLoadingConfig.setTableDataDir(_tableDataDir);
- _cachedTableConfigAndSchema = Pair.of(tableConfig, schema);
+ updateCachedTableConfigAndSchema(tableConfig, schema);
return indexLoadingConfig;
}
@@ -428,6 +428,11 @@ public abstract class BaseTableDataManager implements TableDataManager {
return _cachedTableConfigAndSchema;
}
+ @Override
+ public void updateCachedTableConfigAndSchema(TableConfig tableConfig, Schema schema) {
+ _cachedTableConfigAndSchema = Pair.of(tableConfig, schema);
+ }
+
@Override
public void addNewOnlineSegment(SegmentZKMetadata zkMetadata, IndexLoadingConfig indexLoadingConfig)
throws Exception {
diff --git a/pinot-core/src/main/java/org/apache/pinot/core/data/manager/offline/DimensionTableDataManager.java b/pinot-core/src/main/java/org/apache/pinot/core/data/manager/offline/DimensionTableDataManager.java
index a1084f02367..9ee1d4de02f 100644
--- a/pinot-core/src/main/java/org/apache/pinot/core/data/manager/offline/DimensionTableDataManager.java
+++ b/pinot-core/src/main/java/org/apache/pinot/core/data/manager/offline/DimensionTableDataManager.java
@@ -77,7 +77,7 @@ public class DimensionTableDataManager extends OfflineTableDataManager {
}
};
- private DimensionTableDataManager() {
+ protected DimensionTableDataManager() {
}
/**
diff --git a/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/data/manager/TableDataManager.java b/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/data/manager/TableDataManager.java
index 903eeb9aba3..15a8a7565e6 100644
--- a/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/data/manager/TableDataManager.java
+++ b/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/data/manager/TableDataManager.java
@@ -333,11 +333,16 @@ public interface TableDataManager {
/**
* Returns the cached latest {@link TableConfig} and {@link Schema} pair for the table. The cache is refreshed when
- * invoking {@link #fetchIndexLoadingConfig()}, and should not be modified. We cache them as a pair to ensure they are
- * updated at once to avoid race conditions.
+ * invoking {@link #fetchIndexLoadingConfig()} or {@link #updateCachedTableConfigAndSchema(TableConfig, Schema)}, and
+ * should not be modified. We cache them as a pair to ensure they are updated at once to avoid race conditions.
*/
Pair<TableConfig, Schema> getCachedTableConfigAndSchema();
+ /**
+ * Update the table config and schema for the table in cache.
+ */
+ void updateCachedTableConfigAndSchema(TableConfig config, Schema schema);
+
/**
* Interface to handle segment state transitions from CONSUMING to DROPPED
*
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org