udwf中成员变量和静态变量的作用域问题

为了更快的定位您的问题,请提供以下信息,谢谢
【详述】问题详细描述
我们需要一个进行固定会话长度判断的udwf,对用户的一系列行为进行会话拆分,调用方式类似于这样:
get_session_start_time(unix_timestamp(_event_time), 3600, _user_identifier)
OVER (PARTITION BY _product_id,_user_identifier ORDER BY _event_time,_uuid)
这种方式性能较差,用户的每个行为都需要从这个用户的第一个行为开始判断,因此考虑做个缓存,直接放在udwf的成员变量中。
所以想确认下udwf的生命周期和成员变量、静态变量的作用域:
1、如果配置了"isolation" = “shared”,一个udwf实例会在一个sql中复用?如果不配置每条数据都会创建一个udwf实例?
2、如果配置了"isolation" = “shared”,多个不同的sql是否会复用一个udwf实例?
3、如果在udwf中定义了静态变量,这个静态变量什么时候有可能会清理?
4、我在udwf的reset和destroy方法中清理了静态变量,这两个方法在什么情况下调用?

附:目前的测试情况:
在udwf定义时配置了"isolation" = “shared”,并使用静态变量存储状态,并行调用同一个sql但是条件值不一样,目前发现结果是正确的,有些出于意料,是不是在不同sql调用间做了classloader的隔离?