Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Plain View
HBase >> mail # user >> Is "synchronized" required?


+
Bing Li 2013-02-04, 20:20
+
Harsh J 2013-02-04, 20:21
+
Ted Yu 2013-02-04, 20:25
+
Bing Li 2013-02-04, 20:32
Copy link to this message
-
Re: Is "synchronized" required?
Hi, Bing,

 Not sure about your scenario but HTable class is not thread safe for
neither reads nor write.
 If you consider writing/reading from a table in a multiple-threaded way,
you can consider using HTablePool.

 Hope it helps

HJ
On Mon, Feb 4, 2013 at 3:32 PM, Bing Li <[EMAIL PROTECTED]> wrote:

> Dear Ted and Harsh,
>
> I am sorry I didn't keep the exceptions. It occurred many days ago. My
> current version is 0.92.
>
> Now "synchronized" is removed. Is it correct?
>
> I will test if such exceptions are raised. I will let you know.
>
> Thanks!
>
> Best wishes,
> Bing
>
>
> On Tue, Feb 5, 2013 at 4:25 AM, Ted Yu <[EMAIL PROTECTED]> wrote:
> > Bing:
> > Use pastebin.com instead of attaching exception report.
> >
> > What version of HBase are you using ?
> >
> > Thanks
> >
> >
> > On Mon, Feb 4, 2013 at 12:21 PM, Harsh J <[EMAIL PROTECTED]> wrote:
> >>
> >> What exceptions do you actually receive - can you send them here?
> >> Knowing that is key to addressing your issue.
> >>
> >> On Tue, Feb 5, 2013 at 1:50 AM, Bing Li <[EMAIL PROTECTED]> wrote:
> >> > Dear all,
> >> >
> >> > When writing data into HBase, sometimes I got exceptions. I guess they
> >> > might be caused by concurrent writings. But I am not sure.
> >> >
> >> > My question is whether it is necessary to put "synchronized" before
> >> > the writing methods? The following lines are the sample code.
> >> >
> >> > I think the directive, synchronized, must lower the performance of
> >> > writing. Sometimes concurrent writing is needed in my system.
> >> >
> >> > Thanks so much!
> >> >
> >> > Best wishes,
> >> > Bing
> >> >
> >> > public synchronized void AddDomainNodeRanks(String domainKey, int
> >> > timingScale, Map<String, Double> nodeRankMap)
> >> > {
> >> >       List<Put> puts = new ArrayList<Put>();
> >> >       Put domainKeyPut;
> >> >       Put timingScalePut;
> >> >       Put nodeKeyPut;
> >> >       Put rankPut;
> >> >
> >> >       byte[] domainNodeRankRowKey;
> >> >
> >> >       for (Map.Entry<String, Double> nodeRankEntry :
> >> > nodeRankMap.entrySet())
> >> >       {
> >> >           domainNodeRankRowKey > >> > Bytes.toBytes(RankStructure.DOMAIN_NODE_RANK_ROW +
> >> > Tools.GetAHash(domainKey + timingScale + nodeRankEntry.getKey()));
> >> >
> >> >          domainKeyPut = new Put(domainNodeRankRowKey);
> >> >          domainKeyPut.add(RankStructure.DOMAIN_NODE_RANK_FAMILY,
> >> > RankStructure.DOMAIN_NODE_RANK_DOMAIN_KEY_COLUMN,
> >> > Bytes.toBytes(domainKey));
> >> >          puts.add(domainKeyPut);
> >> >
> >> >          timingScalePut = new Put(domainNodeRankRowKey);
> >> >          timingScalePut.add(RankStructure.DOMAIN_NODE_RANK_FAMILY,
> >> > RankStructure.DOMAIN_NODE_RANK_TIMING_SCALE_COLUMN,
> >> > Bytes.toBytes(timingScale));
> >> >         puts.add(timingScalePut);
> >> >
> >> >         nodeKeyPut = new Put(domainNodeRankRowKey);
> >> >         nodeKeyPut.add(RankStructure.DOMAIN_NODE_RANK_FAMILY,
> >> > RankStructure.DOMAIN_NODE_RANK_NODE_KEY_COLUMN,
> >> > Bytes.toBytes(nodeRankEntry.getKey()));
> >> >         puts.add(nodeKeyPut);
> >> >
> >> >         rankPut = new Put(domainNodeRankRowKey);
> >> >         rankPut.add(RankStructure.DOMAIN_NODE_RANK_FAMILY,
> >> > RankStructure.DOMAIN_NODE_RANK_RANKS_COLUMN,
> >> > Bytes.toBytes(nodeRankEntry.getValue()));
> >> >         puts.add(rankPut);
> >> >      }
> >> >
> >> >      try
> >> >      {
> >> >          this.rankTable.put(puts);
> >> >      }
> >> >      catch (IOException e)
> >> >      {
> >> >          e.printStackTrace();
> >> >      }
> >> > }
> >>
> >>
> >>
> >> --
> >> Harsh J
> >
> >
>
+
Adrien Mogenet 2013-02-04, 21:13
+
Nicolas Liochon 2013-02-04, 21:31
+
Bing Li 2013-02-04, 22:40
+
Nicolas Liochon 2013-02-04, 22:49
+
Bing Li 2013-02-05, 16:54
+
lars hofhansl 2013-02-06, 05:05
+
Bing Li 2013-02-07, 08:10
+
lars hofhansl 2013-02-07, 17:24
+
Bing Li 2013-02-06, 06:36
+
Adrien Mogenet 2013-02-06, 07:45
+
lars hofhansl 2013-02-06, 07:44
+
Bing Li 2013-02-06, 10:31
+
lars hofhansl 2013-02-06, 18:54