IndexWriter processes index update and delegates some job to other threads and waits when they finish. These "other" threads works on data modified in IndexWriter transaction. So I think if I use transaction per thread, "others" would not see data modified by IndexWriter until commit.
2009/8/13, Emmanuel Bernard <[email protected]>: > Ah I thought it was using multiple threads because of your mass > indexing. I did not know some threads were span specifically for the > Infinispan directory. > > On 13 août 09, at 17:34, Sanne Grinovero wrote: > >> Hi Łukasz, >> what is your usage of these threads? did you consider using one >> transaction per thread? >> >> Sanne >> >> 2009/8/13 Łukasz Moreń <[email protected]>: >>> Newly created threads were not associated with any transaction, so I >>> suppose it was a problem. Sharing transaction between threads seems >>> to >>> be a good solution. >>> Thanks for help! >>> >>> 2009/8/13, Jason T. Greene <[email protected]>: >>>> Correct. Also there could be read races as well, so if you are >>>> going to >>>> share a tx between threads, i would use some shared lock to >>>> gaurantee >>>> that only one thread can use it at a time. BTW this means you have >>>> to >>>> properly suspend/resume the TX via the TM API as well. >>>> >>>> Emmanuel Bernard wrote: >>>>> Modifying a transaction means applying muations (like SQL INSERT / >>>>> UPDATE / DELETE) to the transactional resource? >>>>> >>>>> On 13 août 09, at 15:07, Jason T. Greene wrote: >>>>> >>>>>> When using transactions, the context is bound to the >>>>>> transaction, and >>>>>> you can move a transaction between threads. However, you should >>>>>> only >>>>>> be modifying a transaction with one thread at a time. >>>>>> >>>>>> Emmanuel Bernard wrote: >>>>>>> Could it be that you are not using the same transaction between >>>>>>> different threads (ie you physically start different ones or >>>>>>> different "Infinispan contexts")? >>>>>>> Infini guys, do you support transactional operation spanning >>>>>>> several >>>>>>> concurrent threads? >>>>>>> On 13 août 09, at 14:04, Łukasz Moreń wrote: >>>>>>>> I've tried with JBoss AS transaction manager and >>>>>>>> JBossStandaloneTM. >>>>>>>> The result is this same in all cases - error during merge. >>>>>>>> >>>>>>>> 2009/8/12, Emmanuel Bernard <[email protected]>: >>>>>>>>> Ok I understand better now. >>>>>>>>> Do your tests in JBoss AS with it's decent transaction manager >>>>>>>>> (infinispan should have a config for it) >>>>>>>>> For unit testing, force the indexing process in hibernate to >>>>>>>>> use a >>>>>>>>> single thread (I ghnk it's possible ask Sanne of you don't >>>>>>>>> know how). >>>>>>>>> >>>>>>>>> Exposing some configuration to infinispan makes sense. can you >>>>>>>>> start a >>>>>>>>> thread explainig what is configurable and which one you think >>>>>>>>> we >>>>>>>>> should expose to hsearch users. Ideally I would like to offer >>>>>>>>> one or >>>>>>>>> two defaut config scenarios and allow to fallback to a custom >>>>>>>>> config. >>>>>>>>> >>>>>>>>> Emmanuel >>>>>>>>> >>>>>>>>> On 12 août 2009, at 11:58, Łukasz Moreń >>>>>>>>> <[email protected]> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Sorry, but my wifi does not work well today. I will try to >>>>>>>>>> explain >>>>>>>>>> it more clear. >>>>>>>>>> >>>>>>>>>> I'm using DummyTransactionManager available for Infinispan. >>>>>>>>>> It associates transaction with the calling thread. >>>>>>>>>> >>>>>>>>>> Steps to update index: >>>>>>>>>> >>>>>>>>>> 1. index writer acquires lock - begin of transaction >>>>>>>>>> >>>>>>>>>> 2. if it is necessary, index writer delegates new threads to >>>>>>>>>> do >>>>>>>>>> merge work. >>>>>>>>>> Those merge threads do not see changes made so far from >>>>>>>>>> begin of >>>>>>>>>> transaction, >>>>>>>>>> and are looking for segments which are not yet in index. >>>>>>>>>> Changes will be visible when AD.3 is completed. >>>>>>>>>> For tests i tried to commit transaction when merge starts >>>>>>>>>> and then >>>>>>>>>> everything worked well. But then i need to start it again. >>>>>>>>>> >>>>>>>>>> 3. index writer releases lock - transaction is commited, all >>>>>>>>>> changes >>>>>>>>>> made in this transaction are visible for other threads. >>>>>>>>>> >>>>>>>>>> Maybe using some other transaction manager could help? >>>>>>>>>> >>>>>>>>>> What about Infinispan cache configuration? Some configuration >>>>>>>>>> mechanism should be exposed to the user, >>>>>>>>>> or we can hardcoded one in InfinispanDirectoryProvider is >>>>>>>>>> enough? >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> 2009/8/12 Emmanuel Bernard <[email protected]> >>>>>>>>>> why? >>>>>>>>>> Emmanuel Bernard >>>>>>>>>> Pending >>>>>>>>>> you there? >>>>>>>>>> Emmanuel Bernard >>>>>>>>>> Pending >>>>>>>>>> Ok please describe in details what is going on. From what >>>>>>>>>> you are >>>>>>>>>> describing the tx cannot see all segments which looks like an >>>>>>>>>> infinispan bug to me. >>>>>>>>>> Pending >>>>>>>>>> >>>>>>>>>> As a back up you can try wo transaction and see if that works >>>>>>>>>> Emmanuel Bernard >>>>>>>>>> Pending >>>>>>>>>> technically the lucene index should cope with that >>>>>>>>>> Emmanuel Bernard >>>>>>>>>> 11:16 >>>>>>>>>> but I like this approach less >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Let's try and chat by email IF I'm not online, I need to run >>>>>>>>>> on some >>>>>>>>>> errands today. >>>>>>>>>> >>>>>>> _______________________________________________ >>>>>>> infinispan-dev mailing list >>>>>>> [email protected] >>>>>>> https://lists.jboss.org/mailman/listinfo/infinispan-dev >>>>>> >>>>>> >>>>>> -- >>>>>> Jason T. Greene >>>>>> JBoss, a division of Red Hat >>>>> >>>> >>>> >>>> -- >>>> Jason T. Greene >>>> JBoss, a division of Red Hat >>>> >>> >>> _______________________________________________ >>> infinispan-dev mailing list >>> [email protected] >>> https://lists.jboss.org/mailman/listinfo/infinispan-dev >> >> _______________________________________________ >> hibernate-dev mailing list >> [email protected] >> https://lists.jboss.org/mailman/listinfo/hibernate-dev > > _______________________________________________ hibernate-dev mailing list [email protected] https://lists.jboss.org/mailman/listinfo/hibernate-dev
