hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Doğacan Güney" <doga...@gmail.com>
Subject Re: svn commit: r703711 - in /hadoop/hbase/trunk: CHANGES.txt src/java/org/apache/hadoop/hbase/RegionHistorian.java src/java/org/apache/hadoop/hbase/master/RegionManager.java
Date Mon, 13 Oct 2008 08:08:32 GMT
On Mon, Oct 13, 2008 at 12:43 AM, Jim Kellerman (POWERSET)
<Jim.Kellerman@microsoft.com> wrote:
> No, the change to RegionHistorian was only to make the instantiation
> of the singleton thread safe, which it was not before.
>

IIRC what I read about java memory model, you do not need synchronized
there if you make a few changes:

  /** Singleton reference */
  private static RegionHistorian historian = new RegionHistorian();

I think if you do this, Java guarantees that historian won't be
initialized until it is accessed
(because static members are only initialized when a class is loaded)
and it will be thread-safe.
So you can get rid of "synchronized" in getInstance.


> ---
> Jim Kellerman, Powerset (Live Search, Microsoft Corporation)
>
>
>> -----Original Message-----
>> From: stack [mailto:stack@duboce.net]
>> Sent: Saturday, October 11, 2008 4:02 PM
>> To: hbase-dev@hadoop.apache.org
>> Subject: Re: svn commit: r703711 - in /hadoop/hbase/trunk: CHANGES.txt
>> src/java/org/apache/hadoop/hbase/RegionHistorian.java
>> src/java/org/apache/hadoop/hbase/master/RegionManager.java
>>
>> jimk@apache.org wrote:
>> > +   HBASE-918   Region balancing during startup makes cluster unstable
>> >  ...
>> > URL:
>> http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop
>> /hbase/RegionHistorian.java?rev=703711&r1=703710&r2=703711&view=diff
>> >
>> ==========================================================================
>> ====
>> > ---
>> hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/RegionHistorian.java
>> (original)
>> > +++
>> hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/RegionHistorian.java
>> Sat Oct 11 12:04:09 2008
>> > @@ -86,7 +86,7 @@
>> >     * Get the RegionHistorian Singleton instance.
>> >     * @return The region historian
>> >     */
>> > -  public static RegionHistorian getInstance() {
>> > +  public synchronized static RegionHistorian getInstance() {
>> >
>>
>> Was it adding the synchronized here that made it so regionhistorian
>> could continue to use HTable?  i.e. fixes HBASE-919?
>> St.Ack
>>
>
>



-- 
Doğacan Güney
Mime
View raw message