Hi folks!
At this point, Hive hooks are running synchronously:
for (ExecuteWithHookContext hook : hooks) {
perfLogger.perfLogBegin(CLASS_NAME, prefix + hook.getClass().getName());
hook.run(hookContext);
perfLogger.perfLogEnd(CLASS_NAME, prefix + hook.getClass().getName());
}
My current problem is that if any problem happens with the hook, it just
slows Hive down.
In the current situation, we got a hook that has a retry logic in it and it
consumed a lot of time from the Hive side.
I'm thinking about two possible solutions:
- running the hooks asynchronously, so that Hive wouldn't even care about
how long the hooks are running
- adding a timeout (like 2 seconds) to run the hook.
What are your thoughts?
Thank you,
Zsolt