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 > >
