You are viewing a plain text version of this content. The canonical link for it is here.
Posted to gitbox@hive.apache.org by GitBox <gi...@apache.org> on 2022/02/14 13:02:23 UTC

[GitHub] [hive] kasakrisz commented on a change in pull request #3020: HIVE-25918: Invalid stats after multi inserting into the same partition - ADDENDUM

kasakrisz commented on a change in pull request #3020:
URL: https://github.com/apache/hive/pull/3020#discussion_r805819187



##########
File path: standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClientWithLocalCache.java
##########
@@ -493,6 +495,32 @@ protected GetPartitionsByNamesResult getPartitionsByNamesInternal(GetPartitionsB
     return super.getPartitionsByNamesInternal(rqst);
   }
 
+  @Override
+  public void alter_partitions(String catName, String dbName, String tblName, List<Partition> newParts,
+                               EnvironmentContext environmentContext, String writeIdList, long writeId)
+          throws TException {
+    super.alter_partitions(catName, dbName, tblName, newParts, environmentContext, writeIdList, writeId);
+
+    if (!isCacheEnabledAndInitialized() || mscLocalCache == null) {
+      return;
+    }
+
+    // invalidate cached Partition entries
+    List<String> processorCapabilitiesList = getProcessorCapabilities() == null ?
+            null : new ArrayList<>(Arrays.asList(getProcessorCapabilities()));
+
+    TableWatermark watermark = new TableWatermark(writeIdList, getTable(dbName, tblName).getId());

Review comment:
       If `TableWatermark` was not valid when `getPartitionsByNamesInternal` was called then no entries were put into the cache otherwise Partition list was cached.
   When `alter_partition` called we calculate the `TableWatermark` since it is part of the cache key then invalidate the entry with that key:
   * if there were no entry nothing happens
   * if there was it is invalidated.
   




-- 
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: gitbox-unsubscribe@hive.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: gitbox-unsubscribe@hive.apache.org
For additional commands, e-mail: gitbox-help@hive.apache.org