lucenenet-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "eyal post (JIRA)" <j...@apache.org>
Subject [jira] Commented: (LUCENENET-181) Port of ThreadLocal is wrong?
Date Mon, 20 Apr 2009 06:23:47 GMT

    [ https://issues.apache.org/jira/browse/LUCENENET-181?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12700667#action_12700667
] 

eyal post commented on LUCENENET-181:
-------------------------------------

There are 2 ways to discuss this: 
1. Without understanding how TermInfosReader is using the  LocalDataStoreSlot,  I can still
say it is working fine because it is working exactly the same as the java version does. The
java equivalent (ThreadLocal) is also created everytime a TermInfosReader reader is created
so there's no problem here. 
2. If (1) doesn't satisfy you, then we should understand how TermInfosReader is using the
 LocalDataStoreSlot. In this case, I beleive that the LocalDataStoreSlot is what makes the
TermInfosReader ThreadSafe because even if multiple threads use the same instance of TermInfosReader
they will still get different SegmentTermEnum instances and they won't interefe with each
other. 

If you'll make "enumerators" static in this case then *all* TermInfosReader will share the
same instance which is definitly not what we want and is defintly not how the java version
behaves (remember - The "enumerators" variable is also non-static in the java version).


> Port of ThreadLocal is wrong?
> -----------------------------
>
>                 Key: LUCENENET-181
>                 URL: https://issues.apache.org/jira/browse/LUCENENET-181
>             Project: Lucene.Net
>          Issue Type: Improvement
>            Reporter: Digy
>            Priority: Minor
>         Attachments: TestCase.cs
>
>
> AFAIK, "ThreadLocal" in Java is there to hold objects which are intented to be used 
thread-wide. So, its port-equivalent "LocalDataStoreSlot" should contain objects related with
the executing thread. But, since they are not declared as "static" in Analyzer.cs, FieldsReader.cs,
SegmentReader.cs and TermInfosReader.cs, they are created with every class contruction, changing
the behaviour of "ThreadLocal" and possibly resulting in performance degradation.
> I will attach a test case for this issue.
> If I am wrong, then there is no problem. But If I am right we are in trouble;  Since
adding "static" to variables declared as LocalDataStoreSlot results in failing of almost all
test cases.
> DIGY

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message