Hello Riza Suminto, Impala Public Jenkins,

I'd like you to reexamine a change. Please visit

    http://gerrit.cloudera.org:8080/22794

to look at the new patch set (#3).

Change subject: IMPALA-13974: Don't check catName if fetching 
COMMIT_COMPACTION_EVENT or ALLOC_WRITE_ID_EVENT
......................................................................

IMPALA-13974: Don't check catName if fetching COMMIT_COMPACTION_EVENT or 
ALLOC_WRITE_ID_EVENT

COMMIT_COMPACTION_EVENT is one kind of HMS notification events that are
generated when a transactional table finishes a compaction.
ALLOC_WRITE_ID_EVENT is another kind of transactional table events
generated when a data modification, e.g. INSERT, starts.

Due to the bug of HIVE-28912, the catName of them is always NULL. Note
that catName is an optional field for all kinds of HMS events:
struct NotificationEvent {
    1: required i64 eventId,
    2: required i32 eventTime,
    3: required string eventType,
    4: optional string dbName,
    5: optional string tableName,
    6: required string message,
    7: optional string messageFormat,
    8: optional string catName
}
It's OK to be NULL for some global events like OPEN_TXN, COMMIT_TXN,
ABORT_TXN, etc. But for table level events, catName should be the
catalog name of the table. Usually, it's the default catalog, 'hive'.

When checking COMMIT_COMPACTION_EVENT and ALLOC_WRITE_ID_EVENT events on
a table, we shouldn't set the filter on catName. Otherwise, they will
all be skipped due to this bug.

There are two filters we use in fetching HMS events. One is the server
side filter we set in NotificationEventRequest. The other one is the
client side filter, NotificationFilter, used in filtering events fetched
from HMS.

This patch removes the check on catName in these filters to avoid
missing COMMIT_COMPACTION_EVENT and ALLOC_WRITE_ID_EVENT.

MetastoreEventsProcessorTest.testNotificationEventRequest() has some
wrong expected numbers due to this bug. This patch fixes them and
refactors the code to be more readable.

Tests:
 - Ran test_hms_event_sync_with_commit_compaction 20 times. Without the
   fix, it fails in 2-3 runs.
 - Ran MetastoreEventsProcessorTest.testNotificationEventRequest().

Change-Id: I2e182d32ee2bb8a69c4f71c05eb9e87a5a115f24
---
M fe/src/compat-hive-3/java/org/apache/impala/compat/MetastoreShim.java
M 
fe/src/main/java/org/apache/impala/catalog/events/MetastoreEventsProcessor.java
M 
fe/src/test/java/org/apache/impala/catalog/events/MetastoreEventsProcessorTest.java
3 files changed, 45 insertions(+), 24 deletions(-)


  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/94/22794/3
--
To view, visit http://gerrit.cloudera.org:8080/22794
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I2e182d32ee2bb8a69c4f71c05eb9e87a5a115f24
Gerrit-Change-Number: 22794
Gerrit-PatchSet: 3
Gerrit-Owner: Quanlong Huang <huangquanl...@gmail.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>

Reply via email to