[ 
https://issues.apache.org/jira/browse/HIVE-25796?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vihang Karajgaonkar resolved HIVE-25796.
----------------------------------------
    Fix Version/s: 4.0.0
       Resolution: Fixed

> Allow metastore clients to fetch remaining events if some of the events are 
> cleaned up
> --------------------------------------------------------------------------------------
>
>                 Key: HIVE-25796
>                 URL: https://issues.apache.org/jira/browse/HIVE-25796
>             Project: Hive
>          Issue Type: Improvement
>            Reporter: Vihang Karajgaonkar
>            Assignee: Vihang Karajgaonkar
>            Priority: Minor
>              Labels: pull-request-available
>             Fix For: 4.0.0
>
>          Time Spent: 1.5h
>  Remaining Estimate: 0h
>
> This is the code snippet from HiveMetastoreClient.java's getNextNotification 
> method
> {noformat}
>       for (NotificationEvent e : rsp.getEvents()) {
>         LOG.debug("Got event with id : {}", e.getEventId());
>         if (e.getEventId() != nextEventId) {
>           if (e.getEventId() == prevEventId) {
>             LOG.error("NOTIFICATION_LOG table has multiple events with the 
> same event Id {}. " +
>                     "Something went wrong when inserting notification events. 
>  Bootstrap the system " +
>                     "again to get back teh consistent replicated state.", 
> prevEventId);
>             throw new 
> IllegalStateException(REPL_EVENTS_WITH_DUPLICATE_ID_IN_METASTORE);
>           } else {
>             LOG.error("Requested events are found missing in NOTIFICATION_LOG 
> table. Expected: {}, Actual: {}. "
>                             + "Probably, cleaner would've cleaned it up. "
>                             + "Try setting higher value for 
> hive.metastore.event.db.listener.timetolive. "
>                             + "Also, bootstrap the system again to get back 
> the consistent replicated state.",
>                     nextEventId, e.getEventId());
>             throw new IllegalStateException(REPL_EVENTS_MISSING_IN_METASTORE);
>           }
>         }
> {noformat}
> Consider the case when a client which caches a event id and tries to fetch 
> the next events since the eventid after long time. In this case, it is 
> possible that Metastore has cleaned up the events because they were more than 
> 24 hrs old. In such a case, this API throws an exception. It is possible that 
> client does not care if the events are not in sequence and hence this 
> exception should be thrown optionally depending on what the client wants.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to