[hibernate-issues] [Hibernate-JIRA] Commented: (HSEARCH-824) Run in parallel some of the engine initialization

Sanne Grinovero (JIRA) noreply at atlassian.com
Fri Jul 29 10:26:14 EDT 2011


    [ http://opensource.atlassian.com/projects/hibernate/browse/HSEARCH-824?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=43139#comment-43139 ] 

Sanne Grinovero commented on HSEARCH-824:
-----------------------------------------

some considerations now that I'm fresh from it:

* consider class hierarchies, you likely don't want to split a parent/child between threads

* it might be easy to implement by creating the IndexManager in an executor, while the DocumentBuilder receives a "lazy reference" to the index manager as it doesn't need it before the SearchFactory finishes the start cycle.

The get/put operations would need to work on atomic operations and make sure there are no duplicates.

> Run in parallel some of the engine initialization
> -------------------------------------------------
>
>                 Key: HSEARCH-824
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HSEARCH-824
>             Project: Hibernate Search
>          Issue Type: Improvement
>            Reporter: Emmanuel Bernard
>
> In IndexManagerHolder.buildEntityIndexBinding we currently synchronize. But the critical part is only between
> indexManagersRegistry.get( providerName )
> indexManagersRegistry.put( providerName, indexManager )
> Even that does a lot of work.
> We could parallelize the creation of EntityIndexBinder:
> * synchronize this small piece described above
> * move indexManager.initialize out of the sync block and be executed by ServiceFactoryBuilder#initDocumentBuilders (the caller of IndexManagerHolder.buildEntityIndexBinding)
> * in  ServiceFactoryBuilder#initDocumentBuilders run the various phases in parallel with a ExecutorService (ie build EntityindexBinder, initialize IndexManagers, build DocumentBuilder etc)
> If class > 10 - number to refine, split the work.
> This can be done by a community member but it's not a trivial task

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list