+1

That's definitely the right way forward. These thread local variables
should be verboten.

I also agree with Brock's assessment that this will need a design doc
first. My guess is that this will be quite a bit of work.

Thanks,
Gunther.






On Sun, Aug 11, 2013 at 12:34 PM, Prasad Mujumdar <pras...@cloudera.com>wrote:

>    +1 !
> That's should be the right approach IMO too.
>
> thanks
> Prasad
>
>
>
> On Sun, Aug 11, 2013 at 10:03 AM, Brock Noland <br...@cloudera.com> wrote:
>
> > HIVE-4226 is a very welcome patch but in the long run I think we want to
> > move away from using static thread local everywhere which that patch
> uses.
> > Rightfully so at this juncture.
> >
> > Meaning I think that HIVE-4226 is a good interim solution but long term I
> > think we want to be passing around some kind of context object as Edward
> > suggests in his original mail. This will make the code cleaner and more
> > testable.
> >
> > This is a big effort and will require some analysis and planning before
> > execution.
> >
> >
> > On Sat, Aug 10, 2013 at 11:25 PM, Navis류승우 <navis....@nexr.com> wrote:
> >
> > > https://issues.apache.org/jira/browse/HIVE-4226 seemed addressing
> this.
> > >
> > > 2013/8/11 Brock Noland <br...@cloudera.com>:
> > > > I would love to get rid of the static thread local stuff. It was
> > required
> > > > to make hive work in a server model but isn't the correct solution to
> > > this
> > > > problem.
> > > >
> > > > I do think it will be a large amount of work so it'd be great to see
> > > > whoever leads this effort to have a high level plan as opposed to an
> > > adhoc
> > > > effort.
> > > >
> > > >
> > > > On Sat, Aug 10, 2013 at 12:32 PM, Edward Capriolo <
> > edlinuxg...@gmail.com
> > > >wrote:
> > > >
> > > >> I just committed https://issues.apache.org/jira/browse/HIVE-3772.
> > > >>
> > > >> For hive-server2 Carl and others did a lot of work to clean up un
> > thread
> > > >> safe things from hive.
> > > >>
> > > >> Hive was originally build as a fat client so it is not surprising
> that
> > > many
> > > >> such constructs exist. Now since we have retrofitted
> > multi-threaded-ness
> > > >> onto the project we have a number of edge case bugs.
> > > >>
> > > >> My suggestions here would be for that the next release 0.13 we make
> a
> > > push
> > > >> to remove all possible non thread safe code and explicitly pass
> > context
> > > >> objects or serialized structures everywhere thread safety is needed.
> > > >>
> > > >> I can see this would start with something like the Function
> Registry,
> > > this
> > > >> would be a per session object passed around rather then a global
> > object
> > > >> with static hashmap instances in it.
> > > >>
> > > >> I know that this probably will not be as simple as removing all
> static
> > > >> members from our codebase, but does anyone know of specific
> challenges
> > > that
> > > >> will be intrinsically hard to solve?
> > > >>
> > > >> Please comment.
> > > >>
> > > >
> > > >
> > > >
> > > > --
> > > > Apache MRUnit - Unit testing MapReduce - http://mrunit.apache.org
> > >
> >
> >
> >
> > --
> > Apache MRUnit - Unit testing MapReduce - http://mrunit.apache.org
> >
>

Reply via email to