Riza Suminto has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/21031 )

Change subject: IMPALA-12709: Add support for hierarchical metastore event 
processing
......................................................................


Patch Set 44:

(19 comments)

Thank you for keeping up with my reviews. I think this is very close now.
I only have few minor comments remaining.

http://gerrit.cloudera.org:8080/#/c/21031/42/docs/topics/impala_metadata.xml
File docs/topics/impala_metadata.xml:

http://gerrit.cloudera.org:8080/#/c/21031/42/docs/topics/impala_metadata.xml@307
PS42, Line 307:
              :       </p>
              :
> Done
Done


http://gerrit.cloudera.org:8080/#/c/21031/42/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/21031/42/fe/src/main/java/org/apache/impala/catalog/events/DbEventExecutor.java@188
PS42, Line 188:   inEvents_.offer(event);
> Done. Have rephrased the java doc.
Done


http://gerrit.cloudera.org:8080/#/c/21031/42/fe/src/main/java/org/apache/impala/catalog/events/DbEventExecutor.java@459
PS42, Line 459:    * This method is invoked in the following cases:
> Done
Done


http://gerrit.cloudera.org:8080/#/c/21031/42/fe/src/main/java/org/apache/impala/catalog/events/DbEventExecutor.java@468
PS42, Line 468:  */
> Done
Done


http://gerrit.cloudera.org:8080/#/c/21031/42/fe/src/main/java/org/apache/impala/catalog/events/DbEventExecutor.java@477
PS42, Line 477:  @return Outstanding event count
> Done
Done


http://gerrit.cloudera.org:8080/#/c/21031/42/fe/src/main/java/org/apache/impala/catalog/events/DbEventExecutor.java@529
PS42, Line 529: e void clearInternal() {
> If force is true, dbProcessor.clear() is called and it clears inEvents_, ba
Ack


http://gerrit.cloudera.org:8080/#/c/21031/42/fe/src/main/java/org/apache/impala/catalog/events/DbEventExecutor.java@548
PS42, Line 548: MetastoreEventsProcessor.shutdownAndAwaitTermination(service
> Done
Done


http://gerrit.cloudera.org:8080/#/c/21031/44/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/21031/44/fe/src/main/java/org/apache/impala/catalog/events/DbEventExecutor.java@171
PS44, Line 171:     private final Object usableLock_ = new Object();
              :     private boolean usable_ = true;
nit: I think processorLock_ and isTerminating_ term are more descriptive than 
usableLock_ and usable_.


http://gerrit.cloudera.org:8080/#/c/21031/44/fe/src/main/java/org/apache/impala/catalog/events/DbEventExecutor.java@340
PS44, Line 340:     private boolean isUsable() {
              :       synchronized (usableLock_) {
              :         return usable_;
              :       }
              :     }
Taking example from IMPALA-13884, consider writing the stacktrace into debug 
log into like this:

    private boolean isTerminating() {
      synchronized (processorLock_) {
        if (isTerminating && LOG.isDebugEnabled()) {
          // Get the caller stacktrace and convert it into string.
          StackTraceElement[] stack = Thread.currentThread().getStackTrace();
          // Skip the first method which is always 
java.lang.Thread.getStackTrace().
          String st = Arrays.stream(stack).skip(1)
              .map(StackTraceElement::toString)
              .collect(Collectors.joining("\n\tat "));
          LOG.debug("Processor is not usable for db: {}. Caller stacktrace: {}",
              dbName_, st);
        }
        return isTerminating;
      }
    }

Then, other callsites can be simplified without printing LOG.debug like this:

  if (isTerminating()) return;


http://gerrit.cloudera.org:8080/#/c/21031/44/fe/src/main/java/org/apache/impala/catalog/events/DbEventExecutor.java@396
PS44, Line 396:           if (!isUsable()) {
              :             LOG.debug("Processor is not usable for db: {}", 
dbName_);
              :             return;
              :           }
This pattern is repeated in multiple places. I understand this serve as debug 
point.

Please consider moving the debug log inside the isUsable() function.
See this suggestion: https://gerrit.cloudera.org/c/21031/42..44#344


http://gerrit.cloudera.org:8080/#/c/21031/42/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/21031/42/fe/src/main/java/org/apache/impala/catalog/events/EventExecutorService.java@72
PS42, Line 72:   /**
             :    * Database name to DbEventExecutor map. This map is mutated 
only by
             :    * DbEventExecutor through
> Done
Done


http://gerrit.cloudera.org:8080/#/c/21031/42/fe/src/main/java/org/apache/impala/catalog/events/EventExecutorService.java@133
PS42, Line 133:    * {@link Exte
> Done
Done


http://gerrit.cloudera.org:8080/#/c/21031/42/fe/src/main/java/org/apache/impala/catalog/events/MetastoreEventsProcessor.java
File 
fe/src/main/java/org/apache/impala/catalog/events/MetastoreEventsProcessor.java:

http://gerrit.cloudera.org:8080/#/c/21031/42/fe/src/main/java/org/apache/impala/catalog/events/MetastoreEventsProcessor.java@1231
PS42, Line 1231: an invalidat
> Done
Done


http://gerrit.cloudera.org:8080/#/c/21031/42/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/21031/42/fe/src/main/java/org/apache/impala/catalog/events/TableEventExecutor.java@125
PS42, Line 125:  * {@link TableProcessor#process()}, since lock
> Done. Have rephrased the java doc.
Done


http://gerrit.cloudera.org:8080/#/c/21031/42/fe/src/main/java/org/apache/impala/catalog/events/TableEventExecutor.java@337
PS42, Line 337:   outstandingEventCount_.incrementAndGet()
> Done
Done


http://gerrit.cloudera.org:8080/#/c/21031/42/fe/src/main/java/org/apache/impala/catalog/events/TableEventExecutor.java@346
PS42, Line 346:  {@link TableEventExecutor#deleteTableProcessor(String)}
> Done
Done


http://gerrit.cloudera.org:8080/#/c/21031/42/fe/src/main/java/org/apache/impala/catalog/events/TableEventExecutor.java@364
PS42, Line 364: *
> Done
Done


http://gerrit.cloudera.org:8080/#/c/21031/44/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/21031/44/fe/src/main/java/org/apache/impala/catalog/events/TableEventExecutor.java@198
PS44, Line 198:     private boolean isUsable() {
              :       synchronized (usableLock_) {
              :         return usable_;
              :       }
              :     }
Same suggestion as https://gerrit.cloudera.org/c/21031/42..44#344


http://gerrit.cloudera.org:8080/#/c/21031/42/tests/custom_cluster/test_event_processing_perf.py
File tests/custom_cluster/test_event_processing_perf.py:

http://gerrit.cloudera.org:8080/#/c/21031/42/tests/custom_cluster/test_event_processing_perf.py@43
PS42, Line 43:   db_count = 3
             :   table_count = 3
             :   partition_count = 100
             :   insert_nonpartition_values_count = 100
             :   insert_nonpartition_repeat_count = 2
> Done
Done



--
To view, visit http://gerrit.cloudera.org:8080/21031
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I76d8a739f9db6d40f01028bfd786a85d83f9e5d6
Gerrit-Change-Number: 21031
Gerrit-PatchSet: 44
Gerrit-Owner: Anonymous Coward <k.venureddy2...@gmail.com>
Gerrit-Reviewer: Anonymous Coward <cclive1...@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: Wed, 16 Apr 2025 03:11:46 +0000
Gerrit-HasComments: Yes

Reply via email to