You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@gora.apache.org by "Ferdy (Commented) (JIRA)" <ji...@apache.org> on 2011/11/01 10:26:33 UTC

[jira] [Commented] (GORA-56) HBaseStore is not thread safe.

    [ https://issues.apache.org/jira/browse/GORA-56?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13141046#comment-13141046 ] 

Ferdy commented on GORA-56:
---------------------------

I ran some benchmarks for the patch in single thread mode and I could not notice a performance impact compared to the current implementation. This is to be expected:

-The ThreadLocal HTable code should not incur a performance penalty. It is a recommended way to avoid synchronization altogether.
-The fields in HBaseStore are made volatile, however since there are just written once and read only afterwards the penalty for this is truly minimal.

Removing the volatile keywords will not make a difference in practice, but technically they are required since the initialization thread must publish its objects safely to other threads somehow. (However I probably could have gotten away with using just one volatile variable as a memory-barrier.) Anyway I noticed that some of the other store implementations (including superclass DataStoreBase) do not do any of this, so I guess this is something to keep in mind.
                
> HBaseStore is not thread safe.
> ------------------------------
>
>                 Key: GORA-56
>                 URL: https://issues.apache.org/jira/browse/GORA-56
>             Project: Gora
>          Issue Type: Bug
>          Components: storage-hbase
>            Reporter: Ferdy
>            Priority: Critical
>         Attachments: GORA-56-v2.patch, GORA-56.patch
>
>
> Will be working on a patch.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira