Riza Suminto has posted comments on this change. ( http://gerrit.cloudera.org:8080/22997 )
Change subject: IMPALA-13801: Support greatest synced event with hierarchical metastore event processing ...................................................................... Patch Set 6: (12 comments) http://gerrit.cloudera.org:8080/#/c/22997/4/fe/src/compat-hive-3/java/org/apache/impala/compat/MetastoreShim.java File fe/src/compat-hive-3/java/org/apache/impala/compat/MetastoreShim.java: http://gerrit.cloudera.org:8080/#/c/22997/4/fe/src/compat-hive-3/java/org/apache/impala/compat/MetastoreShim.java@1043 PS4, Line 1043: super(context); : txnId_ = ((CommitTxnEvent) context.getActualEvent()).txnId_; : writeIdsInCat > Done Done http://gerrit.cloudera.org:8080/#/c/22997/4/fe/src/compat-hive-3/java/org/apache/impala/compat/MetastoreShim.java@1046 PS4, Line 1046: writeIdsInEvent_ = writeIdsInEvent; > Done Done http://gerrit.cloudera.org:8080/#/c/22997/6/fe/src/main/java/org/apache/impala/catalog/events/DbEventExecutor.java File fe/src/main/java/org/apache/impala/catalog/events/DbEventExecutor.java: http://gerrit.cloudera.org:8080/#/c/22997/6/fe/src/main/java/org/apache/impala/catalog/events/DbEventExecutor.java@269 PS6, Line 269: dbEventExecutor_.eventProcessor_ This is duplicated in multiple places. Consider making getter method for it. http://gerrit.cloudera.org:8080/#/c/22997/6/fe/src/main/java/org/apache/impala/catalog/events/EventExecutorService.java File fe/src/main/java/org/apache/impala/catalog/events/EventExecutorService.java: http://gerrit.cloudera.org:8080/#/c/22997/6/fe/src/main/java/org/apache/impala/catalog/events/EventExecutorService.java@81 PS6, Line 81: // Dispatched events tree map. Maintains the events waiting to be processed on executors : private final TreeMap<Long, Pair<MetastoreEvent, Boolean>> dispatchedEvents_ = : new TreeMap<>(); dispatchedEvents_ might be interpreted as finished/done. I'd suggest renaming it to inProgressLog_. Please also explain in the doc what the Boolean attribute is. http://gerrit.cloudera.org:8080/#/c/22997/6/fe/src/main/java/org/apache/impala/catalog/events/EventExecutorService.java@86 PS6, Line 86: processedEvents_ Consider renaming this to processedLog_. Please also explain in the doc what the key and value is. http://gerrit.cloudera.org:8080/#/c/22997/6/fe/src/main/java/org/apache/impala/catalog/events/EventExecutorService.java@178 PS6, Line 178: clearInternal Rename this to clearLogs? http://gerrit.cloudera.org:8080/#/c/22997/6/fe/src/main/java/org/apache/impala/catalog/events/EventExecutorService.java@449 PS6, Line 449: event.setRecordTime(currentTime); This seems the only place setRecordTime() is called. Consider renaming it to setDispatchedTime(). http://gerrit.cloudera.org:8080/#/c/22997/6/fe/src/main/java/org/apache/impala/catalog/events/MetastoreEvents.java File fe/src/main/java/org/apache/impala/catalog/events/MetastoreEvents.java: http://gerrit.cloudera.org:8080/#/c/22997/6/fe/src/main/java/org/apache/impala/catalog/events/MetastoreEvents.java@637 PS6, Line 637: protected long recordTime_; Consider renaming it to dispatchedTime_. It will be great to limit the usage such that it is only valid to set it once. http://gerrit.cloudera.org:8080/#/c/22997/4/fe/src/main/java/org/apache/impala/catalog/events/RenameTableBarrierEvent.java File fe/src/main/java/org/apache/impala/catalog/events/RenameTableBarrierEvent.java: http://gerrit.cloudera.org:8080/#/c/22997/4/fe/src/main/java/org/apache/impala/catalog/events/RenameTableBarrierEvent.java@150 PS4, Line 150: > Have removed this now. Have updated the code and documentation about the us Done http://gerrit.cloudera.org:8080/#/c/22997/6/fe/src/main/java/org/apache/impala/catalog/events/TableEventExecutor.java File fe/src/main/java/org/apache/impala/catalog/events/TableEventExecutor.java: http://gerrit.cloudera.org:8080/#/c/22997/6/fe/src/main/java/org/apache/impala/catalog/events/TableEventExecutor.java@179 PS6, Line 179: tableEventExecutor_.eventProcessor_ This is duplicated in multiple places. Consider making getter method for it. http://gerrit.cloudera.org:8080/#/c/22997/6/fe/src/main/java/org/apache/impala/catalog/events/TableEventExecutor.java@249 PS6, Line 249: event instanceof MetastoreTableEvent Should this be a Precondition? Looks like event is always MetastoreTableEvent here. http://gerrit.cloudera.org:8080/#/c/22997/6/fe/src/main/java/org/apache/impala/catalog/events/TableEventExecutor.java@472 PS6, Line 472: } catch (Exception e) { : LOG.error("Exception occurred for executor: {}", name_); : eventProcessor_.handleEventProcessException(e, currentEvent_); : } Can you create EventProcessException class and embed the failing event into that exception class? That way, you don't need to have currentEvent_ field and call setCurrentEvent() every time. -- To view, visit http://gerrit.cloudera.org:8080/22997 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: Impala-ASF Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I26240f36aaf85125428dc39a66a2a1e4d3197e85 Gerrit-Change-Number: 22997 Gerrit-PatchSet: 6 Gerrit-Owner: Anonymous Coward <k.venureddy2...@gmail.com> Gerrit-Reviewer: Anonymous Coward <k.venureddy2...@gmail.com> Gerrit-Reviewer: Csaba Ringhofer <csringho...@cloudera.com> Gerrit-Reviewer: Impala Public Jenkins <impala-public-jenk...@cloudera.com> Gerrit-Reviewer: Quanlong Huang <huangquanl...@gmail.com> Gerrit-Reviewer: Riza Suminto <riza.sumi...@cloudera.com> Gerrit-Reviewer: Sai Hemanth Gantasala <saihema...@cloudera.com> Gerrit-Comment-Date: Mon, 23 Jun 2025 03:57:12 +0000 Gerrit-HasComments: Yes