[JBoss JIRA] (ISPN-8419) Off Heap peek doesn't do a peek and reorders lru nodes
by William Burns (JIRA)
William Burns created ISPN-8419:
-----------------------------------
Summary: Off Heap peek doesn't do a peek and reorders lru nodes
Key: ISPN-8419
URL: https://issues.jboss.org/browse/ISPN-8419
Project: Infinispan
Issue Type: Sub-task
Components: Off Heap
Affects Versions: 9.2.0.Alpha1
Reporter: William Burns
Currently the peak operation has to reorder lru nodes, which causes extra locking that isn't needed. We need to implement peek that doesn't do this.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years, 5 months
[JBoss JIRA] (ISPN-8418) Off Heap improvements
by William Burns (JIRA)
William Burns created ISPN-8418:
-----------------------------------
Summary: Off Heap improvements
Key: ISPN-8418
URL: https://issues.jboss.org/browse/ISPN-8418
Project: Infinispan
Issue Type: Enhancement
Components: Off Heap
Affects Versions: 9.2.0.Alpha1
Reporter: William Burns
Assignee: William Burns
This improvement covers lumping various off heap improvements in one visible place.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years, 5 months
[JBoss JIRA] (ISPN-8417) Upgrade to JGroups 4.0.7
by Tristan Tarrant (JIRA)
Tristan Tarrant created ISPN-8417:
-------------------------------------
Summary: Upgrade to JGroups 4.0.7
Key: ISPN-8417
URL: https://issues.jboss.org/browse/ISPN-8417
Project: Infinispan
Issue Type: Component Upgrade
Components: Core
Reporter: Tristan Tarrant
Assignee: Tristan Tarrant
Fix For: 9.1.2.Final, 9.2.0.Alpha2
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years, 5 months
[JBoss JIRA] (ISPN-8416) Error executing MassIndexer using off-heap
by Lucas Ponce (JIRA)
[ https://issues.jboss.org/browse/ISPN-8416?page=com.atlassian.jira.plugin.... ]
Lucas Ponce commented on ISPN-8416:
-----------------------------------
Yes, it didn't work, indexes were not recreated.
> Error executing MassIndexer using off-heap
> ------------------------------------------
>
> Key: ISPN-8416
> URL: https://issues.jboss.org/browse/ISPN-8416
> Project: Infinispan
> Issue Type: Bug
> Affects Versions: 9.2.0.Alpha1
> Reporter: Lucas Ponce
> Assignee: Gustavo Fernandes
>
> Invoking a re-index operation on startup from the API
> {code}
> SearchManager searchResourceManager = Search.getSearchManager(resource);
> CompletableFuture<Void> reindexResource = searchResourceManager.getMassIndexer().startAsync();
> SearchManager searchResourceTypeManager = Search.getSearchManager(resourceType);
> CompletableFuture<Void> reindexResourceType = searchResourceTypeManager.getMassIndexer().startAsync();
> CompletableFuture.allOf(reindexResource, reindexResourceType).get();
> {code}
> Throws the following Exception
> {code}
> 14:01:23,537 ERROR [org.hawkular.inventory.service.InventoryConfig] (ServerService Thread Pool -- 62) HAWKINV100005: Error reindexing caches: java.util.concurrent.ExecutionException: org.infinispan.commons.CacheException: ISPN014018: Error executing MassIndexer
> at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
> at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1895)
> at org.hawkular.inventory.service.InventoryConfig.init(InventoryConfig.java:111)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at org.jboss.as.ee.component.ManagedReferenceLifecycleMethodInterceptor.processInvocation(ManagedReferenceLifecycleMethodInterceptor.java:96)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doLifecycleInterception(Jsr299BindingsInterceptor.java:114)
> at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:103)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:437)
> at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:73)
> at org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:83)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.weld.injection.WeldInjectionInterceptor.processInvocation(WeldInjectionInterceptor.java:53)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ee.component.AroundConstructInterceptorFactory$1.processInvocation(AroundConstructInterceptorFactory.java:28)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.weld.injection.WeldInterceptorInjectionInterceptor.processInvocation(WeldInterceptorInjectionInterceptor.java:56)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.weld.ejb.Jsr299BindingsCreateInterceptor.processInvocation(Jsr299BindingsCreateInterceptor.java:100)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:275)
> at org.jboss.as.ejb3.tx.CMTTxInterceptor.requiresNew(CMTTxInterceptor.java:349)
> at org.jboss.as.ejb3.tx.LifecycleCMTTxInterceptor.processInvocation(LifecycleCMTTxInterceptor.java:68)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.weld.injection.WeldInjectionContextInterceptor.processInvocation(WeldInjectionContextInterceptor.java:43)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.component.singleton.StartupCountDownInterceptor.processInvocation(StartupCountDownInterceptor.java:25)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
> at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
> at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:161)
> at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:134)
> at org.jboss.as.ee.component.BasicComponent.createInstance(BasicComponent.java:88)
> at org.jboss.as.ejb3.component.singleton.SingletonComponent.getComponentInstance(SingletonComponent.java:124)
> at org.jboss.as.ejb3.component.singleton.SingletonComponent.start(SingletonComponent.java:138)
> at org.jboss.as.ee.component.ComponentStartService$1.run(ComponentStartService.java:54)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> at org.jboss.threads.JBossThread.run(JBossThread.java:320)
> Caused by: org.infinispan.commons.CacheException: ISPN014018: Error executing MassIndexer
> at org.infinispan.query.impl.massindex.DistributedExecutorMassIndexer.lambda$null$0(DistributedExecutorMassIndexer.java:73)
> at java.util.concurrent.CompletableFuture.uniExceptionally(CompletableFuture.java:870)
> at java.util.concurrent.CompletableFuture$UniExceptionally.tryFire(CompletableFuture.java:852)
> at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
> at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1977)
> at org.infinispan.distexec.DefaultExecutorService$LocalDistributedTaskPart.lambda$execute$1(DefaultExecutorService.java:1086)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.IllegalArgumentException: Indexing only works with entries keyed on Strings, primitives and classes that have the @Transformable annotation - you passed in a class org.infinispan.commons.marshall.WrappedByteArray. Alternatively, see org.infinispan.query.SearchManager#registerKeyTransformer
> at org.infinispan.query.backend.KeyTransformationHandler.keyToString(KeyTransformationHandler.java:154)
> at org.infinispan.query.impl.massindex.IndexUpdater.updateIndex(IndexUpdater.java:67)
> at org.infinispan.query.impl.massindex.IndexWorker.call(IndexWorker.java:101)
> at org.infinispan.query.impl.massindex.IndexWorker.call(IndexWorker.java:34)
> at org.infinispan.commands.read.DistributedExecuteCommand.invokeAsync(DistributedExecuteCommand.java:99)
> at org.infinispan.distexec.DefaultExecutorService$LocalDistributedTaskPart.lambda$execute$1(DefaultExecutorService.java:1074)
> ... 3 more
> {code}
> Infinispan 9.2.0.Alpha1 is running in library mode embedded in a .war application with the following configuration:
> {code}
> <cache-container name="hawkular-inventory">
> <jmx duplicate-domains="true" />
> <local-cache name="resource" statistics="true">
> <transaction mode="NON_XA"/>
> <persistence>
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" modification-queue-size="10000" />
> </file-store>
> </persistence>
> <memory>
> <!--
> <binary eviction="COUNT" size="10000" />
> -->
> <!--
> <object size="5000" />
> -->
> <off-heap eviction="COUNT" size="100000" />
> <!--
> <off-heap eviction="COUNT" size="100000" />
> -->
> </memory>
> <indexing index="LOCAL">
> <indexed-entities>
> <indexed-entity>org.hawkular.inventory.service.ispn.IspnResource</indexed-entity>
> </indexed-entities>
> <property name="default.indexmanager">near-real-time</property>
> <property name="default.directory_provider">infinispan</property>
> <property name="default.chunk_size">128000</property>
> <property name="default.locking_cachename">resource_indexes_locking</property>
> <property name="default.data_cachename">resource_indexes_data</property>
> <property name="default.metadata_cachename">resource_indexes_metadata</property>
> <!-- The default is 10, but we don't want to waste many cycles in merging
> (tune for writes at cost of reader fragmentation) -->
> <property name="default.indexwriter.merge_factor">30</property>
> <!-- Never create segments larger than 1GB -->
> <property name="default.indexwriter.merge_max_size">1024</property>
> <!-- IndexWriter flush buffer size in MB -->
> <property name="default.indexwriter.ram_buffer_size">64</property>
> <!-- Enable sharding on writers -->
> <property name="default.sharding_strategy.nbr_of_shards">6</property>
> <property name="lucene_version">LUCENE_CURRENT</property>
> </indexing>
> </local-cache>
> <local-cache name="resource_indexes_metadata">
> <persistence passivation="false">
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" />
> </file-store>
> </persistence>
> <indexing index="NONE"/>
> </local-cache>
> <local-cache name="resource_indexes_data">
> <persistence passivation="false">
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" />
> </file-store>
> </persistence>
> <indexing index="NONE" />
> </local-cache>
> <local-cache name="resource_indexes_locking">
> <persistence passivation="false">
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" />
> </file-store>
> </persistence>
> <indexing index="NONE" />
> </local-cache>
> <local-cache name="resource_type" statistics="true">
> <transaction mode="NON_XA"/>
> <persistence>
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" modification-queue-size="10000" />
> </file-store>
> </persistence>
> <indexing index="LOCAL">
> <indexed-entities>
> <indexed-entity>org.hawkular.inventory.service.ispn.IspnResourceType</indexed-entity>
> </indexed-entities>
> <property name="default.indexmanager">near-real-time</property>
> <property name="default.directory_provider">infinispan</property>
> <property name="default.chunk_size">128000</property>
> <property name="default.locking_cachename">resource_type_indexes_locking</property>
> <property name="default.data_cachename">resource_type_indexes_data</property>
> <property name="default.metadata_cachename">resource_type_indexes_metadata</property>
> <!-- The default is 10, but we don't want to waste many cycles in merging
> (tune for writes at cost of reader fragmentation) -->
> <property name="default.indexwriter.merge_factor">30</property>
> <!-- Never create segments larger than 1GB -->
> <property name="default.indexwriter.merge_max_size">1024</property>
> <!-- IndexWriter flush buffer size in MB -->
> <property name="default.indexwriter.ram_buffer_size">64</property>
> <!-- Enable sharding on writers -->
> <property name="default.sharding_strategy.nbr_of_shards">6</property>
> <property name="lucene_version">LUCENE_CURRENT</property>
> </indexing>
> </local-cache>
> <local-cache name="resource_type_indexes_metadata">
> <persistence passivation="false">
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" />
> </file-store>
> </persistence>
> <indexing index="NONE"/>
> </local-cache>
> <local-cache name="resource_type_indexes_data">
> <persistence passivation="false">
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" />
> </file-store>
> </persistence>
> <indexing index="NONE" />
> </local-cache>
> <local-cache name="resource_type_indexes_locking">
> <persistence passivation="false">
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" />
> </file-store>
> </persistence>
> <indexing index="NONE" />
> </local-cache>
> </cache-container>
> {code}
> At initialization, it tries to re-index existing resources*.dat files for data and lucene indexes.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years, 5 months
[JBoss JIRA] (ISPN-8416) Error executing MassIndexer using off-heap
by Gustavo Fernandes (JIRA)
[ https://issues.jboss.org/browse/ISPN-8416?page=com.atlassian.jira.plugin.... ]
Gustavo Fernandes commented on ISPN-8416:
-----------------------------------------
[~rutlucas] Moving from off-heap to object and running the MassIndexer again does not work?
> Error executing MassIndexer using off-heap
> ------------------------------------------
>
> Key: ISPN-8416
> URL: https://issues.jboss.org/browse/ISPN-8416
> Project: Infinispan
> Issue Type: Bug
> Affects Versions: 9.2.0.Alpha1
> Reporter: Lucas Ponce
> Assignee: Gustavo Fernandes
>
> Invoking a re-index operation on startup from the API
> {code}
> SearchManager searchResourceManager = Search.getSearchManager(resource);
> CompletableFuture<Void> reindexResource = searchResourceManager.getMassIndexer().startAsync();
> SearchManager searchResourceTypeManager = Search.getSearchManager(resourceType);
> CompletableFuture<Void> reindexResourceType = searchResourceTypeManager.getMassIndexer().startAsync();
> CompletableFuture.allOf(reindexResource, reindexResourceType).get();
> {code}
> Throws the following Exception
> {code}
> 14:01:23,537 ERROR [org.hawkular.inventory.service.InventoryConfig] (ServerService Thread Pool -- 62) HAWKINV100005: Error reindexing caches: java.util.concurrent.ExecutionException: org.infinispan.commons.CacheException: ISPN014018: Error executing MassIndexer
> at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
> at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1895)
> at org.hawkular.inventory.service.InventoryConfig.init(InventoryConfig.java:111)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at org.jboss.as.ee.component.ManagedReferenceLifecycleMethodInterceptor.processInvocation(ManagedReferenceLifecycleMethodInterceptor.java:96)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doLifecycleInterception(Jsr299BindingsInterceptor.java:114)
> at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:103)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:437)
> at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:73)
> at org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:83)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.weld.injection.WeldInjectionInterceptor.processInvocation(WeldInjectionInterceptor.java:53)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ee.component.AroundConstructInterceptorFactory$1.processInvocation(AroundConstructInterceptorFactory.java:28)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.weld.injection.WeldInterceptorInjectionInterceptor.processInvocation(WeldInterceptorInjectionInterceptor.java:56)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.weld.ejb.Jsr299BindingsCreateInterceptor.processInvocation(Jsr299BindingsCreateInterceptor.java:100)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:275)
> at org.jboss.as.ejb3.tx.CMTTxInterceptor.requiresNew(CMTTxInterceptor.java:349)
> at org.jboss.as.ejb3.tx.LifecycleCMTTxInterceptor.processInvocation(LifecycleCMTTxInterceptor.java:68)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.weld.injection.WeldInjectionContextInterceptor.processInvocation(WeldInjectionContextInterceptor.java:43)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.component.singleton.StartupCountDownInterceptor.processInvocation(StartupCountDownInterceptor.java:25)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
> at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
> at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:161)
> at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:134)
> at org.jboss.as.ee.component.BasicComponent.createInstance(BasicComponent.java:88)
> at org.jboss.as.ejb3.component.singleton.SingletonComponent.getComponentInstance(SingletonComponent.java:124)
> at org.jboss.as.ejb3.component.singleton.SingletonComponent.start(SingletonComponent.java:138)
> at org.jboss.as.ee.component.ComponentStartService$1.run(ComponentStartService.java:54)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> at org.jboss.threads.JBossThread.run(JBossThread.java:320)
> Caused by: org.infinispan.commons.CacheException: ISPN014018: Error executing MassIndexer
> at org.infinispan.query.impl.massindex.DistributedExecutorMassIndexer.lambda$null$0(DistributedExecutorMassIndexer.java:73)
> at java.util.concurrent.CompletableFuture.uniExceptionally(CompletableFuture.java:870)
> at java.util.concurrent.CompletableFuture$UniExceptionally.tryFire(CompletableFuture.java:852)
> at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
> at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1977)
> at org.infinispan.distexec.DefaultExecutorService$LocalDistributedTaskPart.lambda$execute$1(DefaultExecutorService.java:1086)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.IllegalArgumentException: Indexing only works with entries keyed on Strings, primitives and classes that have the @Transformable annotation - you passed in a class org.infinispan.commons.marshall.WrappedByteArray. Alternatively, see org.infinispan.query.SearchManager#registerKeyTransformer
> at org.infinispan.query.backend.KeyTransformationHandler.keyToString(KeyTransformationHandler.java:154)
> at org.infinispan.query.impl.massindex.IndexUpdater.updateIndex(IndexUpdater.java:67)
> at org.infinispan.query.impl.massindex.IndexWorker.call(IndexWorker.java:101)
> at org.infinispan.query.impl.massindex.IndexWorker.call(IndexWorker.java:34)
> at org.infinispan.commands.read.DistributedExecuteCommand.invokeAsync(DistributedExecuteCommand.java:99)
> at org.infinispan.distexec.DefaultExecutorService$LocalDistributedTaskPart.lambda$execute$1(DefaultExecutorService.java:1074)
> ... 3 more
> {code}
> Infinispan 9.2.0.Alpha1 is running in library mode embedded in a .war application with the following configuration:
> {code}
> <cache-container name="hawkular-inventory">
> <jmx duplicate-domains="true" />
> <local-cache name="resource" statistics="true">
> <transaction mode="NON_XA"/>
> <persistence>
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" modification-queue-size="10000" />
> </file-store>
> </persistence>
> <memory>
> <!--
> <binary eviction="COUNT" size="10000" />
> -->
> <!--
> <object size="5000" />
> -->
> <off-heap eviction="COUNT" size="100000" />
> <!--
> <off-heap eviction="COUNT" size="100000" />
> -->
> </memory>
> <indexing index="LOCAL">
> <indexed-entities>
> <indexed-entity>org.hawkular.inventory.service.ispn.IspnResource</indexed-entity>
> </indexed-entities>
> <property name="default.indexmanager">near-real-time</property>
> <property name="default.directory_provider">infinispan</property>
> <property name="default.chunk_size">128000</property>
> <property name="default.locking_cachename">resource_indexes_locking</property>
> <property name="default.data_cachename">resource_indexes_data</property>
> <property name="default.metadata_cachename">resource_indexes_metadata</property>
> <!-- The default is 10, but we don't want to waste many cycles in merging
> (tune for writes at cost of reader fragmentation) -->
> <property name="default.indexwriter.merge_factor">30</property>
> <!-- Never create segments larger than 1GB -->
> <property name="default.indexwriter.merge_max_size">1024</property>
> <!-- IndexWriter flush buffer size in MB -->
> <property name="default.indexwriter.ram_buffer_size">64</property>
> <!-- Enable sharding on writers -->
> <property name="default.sharding_strategy.nbr_of_shards">6</property>
> <property name="lucene_version">LUCENE_CURRENT</property>
> </indexing>
> </local-cache>
> <local-cache name="resource_indexes_metadata">
> <persistence passivation="false">
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" />
> </file-store>
> </persistence>
> <indexing index="NONE"/>
> </local-cache>
> <local-cache name="resource_indexes_data">
> <persistence passivation="false">
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" />
> </file-store>
> </persistence>
> <indexing index="NONE" />
> </local-cache>
> <local-cache name="resource_indexes_locking">
> <persistence passivation="false">
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" />
> </file-store>
> </persistence>
> <indexing index="NONE" />
> </local-cache>
> <local-cache name="resource_type" statistics="true">
> <transaction mode="NON_XA"/>
> <persistence>
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" modification-queue-size="10000" />
> </file-store>
> </persistence>
> <indexing index="LOCAL">
> <indexed-entities>
> <indexed-entity>org.hawkular.inventory.service.ispn.IspnResourceType</indexed-entity>
> </indexed-entities>
> <property name="default.indexmanager">near-real-time</property>
> <property name="default.directory_provider">infinispan</property>
> <property name="default.chunk_size">128000</property>
> <property name="default.locking_cachename">resource_type_indexes_locking</property>
> <property name="default.data_cachename">resource_type_indexes_data</property>
> <property name="default.metadata_cachename">resource_type_indexes_metadata</property>
> <!-- The default is 10, but we don't want to waste many cycles in merging
> (tune for writes at cost of reader fragmentation) -->
> <property name="default.indexwriter.merge_factor">30</property>
> <!-- Never create segments larger than 1GB -->
> <property name="default.indexwriter.merge_max_size">1024</property>
> <!-- IndexWriter flush buffer size in MB -->
> <property name="default.indexwriter.ram_buffer_size">64</property>
> <!-- Enable sharding on writers -->
> <property name="default.sharding_strategy.nbr_of_shards">6</property>
> <property name="lucene_version">LUCENE_CURRENT</property>
> </indexing>
> </local-cache>
> <local-cache name="resource_type_indexes_metadata">
> <persistence passivation="false">
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" />
> </file-store>
> </persistence>
> <indexing index="NONE"/>
> </local-cache>
> <local-cache name="resource_type_indexes_data">
> <persistence passivation="false">
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" />
> </file-store>
> </persistence>
> <indexing index="NONE" />
> </local-cache>
> <local-cache name="resource_type_indexes_locking">
> <persistence passivation="false">
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" />
> </file-store>
> </persistence>
> <indexing index="NONE" />
> </local-cache>
> </cache-container>
> {code}
> At initialization, it tries to re-index existing resources*.dat files for data and lucene indexes.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years, 5 months
[JBoss JIRA] (ISPN-8411) Add support for efficient removeAll
by Emond Papegaaij (JIRA)
[ https://issues.jboss.org/browse/ISPN-8411?page=com.atlassian.jira.plugin.... ]
Emond Papegaaij commented on ISPN-8411:
---------------------------------------
I can confirm that this change fixes the issue for my test application on WildFly 11.0.0.CR1 when using non-transactional caches. The problem persists when using transactional caches, which was to be expected as the change only affects {{NonTxInvalidationCacheAccessDelegate}}.
> Add support for efficient removeAll
> -----------------------------------
>
> Key: ISPN-8411
> URL: https://issues.jboss.org/browse/ISPN-8411
> Project: Infinispan
> Issue Type: Feature Request
> Components: Hibernate Cache
> Affects Versions: 8.2.8.Final, 9.1.1.Final
> Environment: WildFly 10.1.0, WildFly 11.0.0.CR1, WildFly master, Hibernate 2LC
> Reporter: Emond Papegaaij
> Assignee: Galder Zamarreño
>
> Infinispan currently does not seem to implement an efficient way to clear an entire cache cluster-wide. This forces Hibernate to remove all entries one by one when a cache region needs to be cleared, for example when a buld CriteriaUpdate or CriteriaDelete is used.
> The behavior we are observing is:
> # All nodes in the cluster are queried for the keyset in a region
> # A lock seems to be in place for this region for the duration of the commit
> # The initiating node constructs a message with {{InvalidateCommands}} for all keys
> # This large message (230MB for 200k entries) is sent to all nodes in the cluster
> For large caches this can take very long. We had to increase the remote-timeout to 60 seconds to prevent timeouts. During this time, the entire cluster is locked an busy processing the cache invalidations. As you can understand, this is not a workable solution for us. On some places we can prevent the cache clear by updating the records one by one, but in other places this is not an option.
> The corresponding report at Hibernate can be found here: https://hibernate.atlassian.net/browse/HHH-12036
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years, 5 months
[JBoss JIRA] (ISPN-8416) Error executing MassIndexer using off-heap
by Lucas Ponce (JIRA)
[ https://issues.jboss.org/browse/ISPN-8416?page=com.atlassian.jira.plugin.... ]
Lucas Ponce commented on ISPN-8416:
-----------------------------------
An update note.
After this operation, moving from off-heap to object in <memory> tag doesn't work either as indexes are not correctly built and queries are empty with existing data in the cache.
> Error executing MassIndexer using off-heap
> ------------------------------------------
>
> Key: ISPN-8416
> URL: https://issues.jboss.org/browse/ISPN-8416
> Project: Infinispan
> Issue Type: Bug
> Affects Versions: 9.2.0.Alpha1
> Reporter: Lucas Ponce
> Assignee: Gustavo Fernandes
>
> Invoking a re-index operation on startup from the API
> {code}
> SearchManager searchResourceManager = Search.getSearchManager(resource);
> CompletableFuture<Void> reindexResource = searchResourceManager.getMassIndexer().startAsync();
> SearchManager searchResourceTypeManager = Search.getSearchManager(resourceType);
> CompletableFuture<Void> reindexResourceType = searchResourceTypeManager.getMassIndexer().startAsync();
> CompletableFuture.allOf(reindexResource, reindexResourceType).get();
> {code}
> Throws the following Exception
> {code}
> 14:01:23,537 ERROR [org.hawkular.inventory.service.InventoryConfig] (ServerService Thread Pool -- 62) HAWKINV100005: Error reindexing caches: java.util.concurrent.ExecutionException: org.infinispan.commons.CacheException: ISPN014018: Error executing MassIndexer
> at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
> at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1895)
> at org.hawkular.inventory.service.InventoryConfig.init(InventoryConfig.java:111)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at org.jboss.as.ee.component.ManagedReferenceLifecycleMethodInterceptor.processInvocation(ManagedReferenceLifecycleMethodInterceptor.java:96)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doLifecycleInterception(Jsr299BindingsInterceptor.java:114)
> at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:103)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:437)
> at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:73)
> at org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:83)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.weld.injection.WeldInjectionInterceptor.processInvocation(WeldInjectionInterceptor.java:53)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ee.component.AroundConstructInterceptorFactory$1.processInvocation(AroundConstructInterceptorFactory.java:28)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.weld.injection.WeldInterceptorInjectionInterceptor.processInvocation(WeldInterceptorInjectionInterceptor.java:56)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.weld.ejb.Jsr299BindingsCreateInterceptor.processInvocation(Jsr299BindingsCreateInterceptor.java:100)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:275)
> at org.jboss.as.ejb3.tx.CMTTxInterceptor.requiresNew(CMTTxInterceptor.java:349)
> at org.jboss.as.ejb3.tx.LifecycleCMTTxInterceptor.processInvocation(LifecycleCMTTxInterceptor.java:68)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.weld.injection.WeldInjectionContextInterceptor.processInvocation(WeldInjectionContextInterceptor.java:43)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.component.singleton.StartupCountDownInterceptor.processInvocation(StartupCountDownInterceptor.java:25)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
> at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
> at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:161)
> at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:134)
> at org.jboss.as.ee.component.BasicComponent.createInstance(BasicComponent.java:88)
> at org.jboss.as.ejb3.component.singleton.SingletonComponent.getComponentInstance(SingletonComponent.java:124)
> at org.jboss.as.ejb3.component.singleton.SingletonComponent.start(SingletonComponent.java:138)
> at org.jboss.as.ee.component.ComponentStartService$1.run(ComponentStartService.java:54)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> at org.jboss.threads.JBossThread.run(JBossThread.java:320)
> Caused by: org.infinispan.commons.CacheException: ISPN014018: Error executing MassIndexer
> at org.infinispan.query.impl.massindex.DistributedExecutorMassIndexer.lambda$null$0(DistributedExecutorMassIndexer.java:73)
> at java.util.concurrent.CompletableFuture.uniExceptionally(CompletableFuture.java:870)
> at java.util.concurrent.CompletableFuture$UniExceptionally.tryFire(CompletableFuture.java:852)
> at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
> at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1977)
> at org.infinispan.distexec.DefaultExecutorService$LocalDistributedTaskPart.lambda$execute$1(DefaultExecutorService.java:1086)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.IllegalArgumentException: Indexing only works with entries keyed on Strings, primitives and classes that have the @Transformable annotation - you passed in a class org.infinispan.commons.marshall.WrappedByteArray. Alternatively, see org.infinispan.query.SearchManager#registerKeyTransformer
> at org.infinispan.query.backend.KeyTransformationHandler.keyToString(KeyTransformationHandler.java:154)
> at org.infinispan.query.impl.massindex.IndexUpdater.updateIndex(IndexUpdater.java:67)
> at org.infinispan.query.impl.massindex.IndexWorker.call(IndexWorker.java:101)
> at org.infinispan.query.impl.massindex.IndexWorker.call(IndexWorker.java:34)
> at org.infinispan.commands.read.DistributedExecuteCommand.invokeAsync(DistributedExecuteCommand.java:99)
> at org.infinispan.distexec.DefaultExecutorService$LocalDistributedTaskPart.lambda$execute$1(DefaultExecutorService.java:1074)
> ... 3 more
> {code}
> Infinispan 9.2.0.Alpha1 is running in library mode embedded in a .war application with the following configuration:
> {code}
> <cache-container name="hawkular-inventory">
> <jmx duplicate-domains="true" />
> <local-cache name="resource" statistics="true">
> <transaction mode="NON_XA"/>
> <persistence>
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" modification-queue-size="10000" />
> </file-store>
> </persistence>
> <memory>
> <!--
> <binary eviction="COUNT" size="10000" />
> -->
> <!--
> <object size="5000" />
> -->
> <off-heap eviction="COUNT" size="100000" />
> <!--
> <off-heap eviction="COUNT" size="100000" />
> -->
> </memory>
> <indexing index="LOCAL">
> <indexed-entities>
> <indexed-entity>org.hawkular.inventory.service.ispn.IspnResource</indexed-entity>
> </indexed-entities>
> <property name="default.indexmanager">near-real-time</property>
> <property name="default.directory_provider">infinispan</property>
> <property name="default.chunk_size">128000</property>
> <property name="default.locking_cachename">resource_indexes_locking</property>
> <property name="default.data_cachename">resource_indexes_data</property>
> <property name="default.metadata_cachename">resource_indexes_metadata</property>
> <!-- The default is 10, but we don't want to waste many cycles in merging
> (tune for writes at cost of reader fragmentation) -->
> <property name="default.indexwriter.merge_factor">30</property>
> <!-- Never create segments larger than 1GB -->
> <property name="default.indexwriter.merge_max_size">1024</property>
> <!-- IndexWriter flush buffer size in MB -->
> <property name="default.indexwriter.ram_buffer_size">64</property>
> <!-- Enable sharding on writers -->
> <property name="default.sharding_strategy.nbr_of_shards">6</property>
> <property name="lucene_version">LUCENE_CURRENT</property>
> </indexing>
> </local-cache>
> <local-cache name="resource_indexes_metadata">
> <persistence passivation="false">
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" />
> </file-store>
> </persistence>
> <indexing index="NONE"/>
> </local-cache>
> <local-cache name="resource_indexes_data">
> <persistence passivation="false">
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" />
> </file-store>
> </persistence>
> <indexing index="NONE" />
> </local-cache>
> <local-cache name="resource_indexes_locking">
> <persistence passivation="false">
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" />
> </file-store>
> </persistence>
> <indexing index="NONE" />
> </local-cache>
> <local-cache name="resource_type" statistics="true">
> <transaction mode="NON_XA"/>
> <persistence>
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" modification-queue-size="10000" />
> </file-store>
> </persistence>
> <indexing index="LOCAL">
> <indexed-entities>
> <indexed-entity>org.hawkular.inventory.service.ispn.IspnResourceType</indexed-entity>
> </indexed-entities>
> <property name="default.indexmanager">near-real-time</property>
> <property name="default.directory_provider">infinispan</property>
> <property name="default.chunk_size">128000</property>
> <property name="default.locking_cachename">resource_type_indexes_locking</property>
> <property name="default.data_cachename">resource_type_indexes_data</property>
> <property name="default.metadata_cachename">resource_type_indexes_metadata</property>
> <!-- The default is 10, but we don't want to waste many cycles in merging
> (tune for writes at cost of reader fragmentation) -->
> <property name="default.indexwriter.merge_factor">30</property>
> <!-- Never create segments larger than 1GB -->
> <property name="default.indexwriter.merge_max_size">1024</property>
> <!-- IndexWriter flush buffer size in MB -->
> <property name="default.indexwriter.ram_buffer_size">64</property>
> <!-- Enable sharding on writers -->
> <property name="default.sharding_strategy.nbr_of_shards">6</property>
> <property name="lucene_version">LUCENE_CURRENT</property>
> </indexing>
> </local-cache>
> <local-cache name="resource_type_indexes_metadata">
> <persistence passivation="false">
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" />
> </file-store>
> </persistence>
> <indexing index="NONE"/>
> </local-cache>
> <local-cache name="resource_type_indexes_data">
> <persistence passivation="false">
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" />
> </file-store>
> </persistence>
> <indexing index="NONE" />
> </local-cache>
> <local-cache name="resource_type_indexes_locking">
> <persistence passivation="false">
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" />
> </file-store>
> </persistence>
> <indexing index="NONE" />
> </local-cache>
> </cache-container>
> {code}
> At initialization, it tries to re-index existing resources*.dat files for data and lucene indexes.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years, 5 months
[JBoss JIRA] (ISPN-8416) Error executing MassIndexer using off-heap
by Gustavo Fernandes (JIRA)
[ https://issues.jboss.org/browse/ISPN-8416?page=com.atlassian.jira.plugin.... ]
Gustavo Fernandes reassigned ISPN-8416:
---------------------------------------
Assignee: Gustavo Fernandes
> Error executing MassIndexer using off-heap
> ------------------------------------------
>
> Key: ISPN-8416
> URL: https://issues.jboss.org/browse/ISPN-8416
> Project: Infinispan
> Issue Type: Bug
> Affects Versions: 9.2.0.Alpha1
> Reporter: Lucas Ponce
> Assignee: Gustavo Fernandes
>
> Invoking a re-index operation on startup from the API
> {code}
> SearchManager searchResourceManager = Search.getSearchManager(resource);
> CompletableFuture<Void> reindexResource = searchResourceManager.getMassIndexer().startAsync();
> SearchManager searchResourceTypeManager = Search.getSearchManager(resourceType);
> CompletableFuture<Void> reindexResourceType = searchResourceTypeManager.getMassIndexer().startAsync();
> CompletableFuture.allOf(reindexResource, reindexResourceType).get();
> {code}
> Throws the following Exception
> {code}
> 14:01:23,537 ERROR [org.hawkular.inventory.service.InventoryConfig] (ServerService Thread Pool -- 62) HAWKINV100005: Error reindexing caches: java.util.concurrent.ExecutionException: org.infinispan.commons.CacheException: ISPN014018: Error executing MassIndexer
> at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
> at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1895)
> at org.hawkular.inventory.service.InventoryConfig.init(InventoryConfig.java:111)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:497)
> at org.jboss.as.ee.component.ManagedReferenceLifecycleMethodInterceptor.processInvocation(ManagedReferenceLifecycleMethodInterceptor.java:96)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doLifecycleInterception(Jsr299BindingsInterceptor.java:114)
> at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:103)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:437)
> at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:73)
> at org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:83)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.weld.injection.WeldInjectionInterceptor.processInvocation(WeldInjectionInterceptor.java:53)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ee.component.AroundConstructInterceptorFactory$1.processInvocation(AroundConstructInterceptorFactory.java:28)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.weld.injection.WeldInterceptorInjectionInterceptor.processInvocation(WeldInterceptorInjectionInterceptor.java:56)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.weld.ejb.Jsr299BindingsCreateInterceptor.processInvocation(Jsr299BindingsCreateInterceptor.java:100)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:275)
> at org.jboss.as.ejb3.tx.CMTTxInterceptor.requiresNew(CMTTxInterceptor.java:349)
> at org.jboss.as.ejb3.tx.LifecycleCMTTxInterceptor.processInvocation(LifecycleCMTTxInterceptor.java:68)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.weld.injection.WeldInjectionContextInterceptor.processInvocation(WeldInjectionContextInterceptor.java:43)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.as.ejb3.component.singleton.StartupCountDownInterceptor.processInvocation(StartupCountDownInterceptor.java:25)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:356)
> at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)
> at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:340)
> at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
> at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:161)
> at org.jboss.as.ee.component.BasicComponent.constructComponentInstance(BasicComponent.java:134)
> at org.jboss.as.ee.component.BasicComponent.createInstance(BasicComponent.java:88)
> at org.jboss.as.ejb3.component.singleton.SingletonComponent.getComponentInstance(SingletonComponent.java:124)
> at org.jboss.as.ejb3.component.singleton.SingletonComponent.start(SingletonComponent.java:138)
> at org.jboss.as.ee.component.ComponentStartService$1.run(ComponentStartService.java:54)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> at org.jboss.threads.JBossThread.run(JBossThread.java:320)
> Caused by: org.infinispan.commons.CacheException: ISPN014018: Error executing MassIndexer
> at org.infinispan.query.impl.massindex.DistributedExecutorMassIndexer.lambda$null$0(DistributedExecutorMassIndexer.java:73)
> at java.util.concurrent.CompletableFuture.uniExceptionally(CompletableFuture.java:870)
> at java.util.concurrent.CompletableFuture$UniExceptionally.tryFire(CompletableFuture.java:852)
> at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
> at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:1977)
> at org.infinispan.distexec.DefaultExecutorService$LocalDistributedTaskPart.lambda$execute$1(DefaultExecutorService.java:1086)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.IllegalArgumentException: Indexing only works with entries keyed on Strings, primitives and classes that have the @Transformable annotation - you passed in a class org.infinispan.commons.marshall.WrappedByteArray. Alternatively, see org.infinispan.query.SearchManager#registerKeyTransformer
> at org.infinispan.query.backend.KeyTransformationHandler.keyToString(KeyTransformationHandler.java:154)
> at org.infinispan.query.impl.massindex.IndexUpdater.updateIndex(IndexUpdater.java:67)
> at org.infinispan.query.impl.massindex.IndexWorker.call(IndexWorker.java:101)
> at org.infinispan.query.impl.massindex.IndexWorker.call(IndexWorker.java:34)
> at org.infinispan.commands.read.DistributedExecuteCommand.invokeAsync(DistributedExecuteCommand.java:99)
> at org.infinispan.distexec.DefaultExecutorService$LocalDistributedTaskPart.lambda$execute$1(DefaultExecutorService.java:1074)
> ... 3 more
> {code}
> Infinispan 9.2.0.Alpha1 is running in library mode embedded in a .war application with the following configuration:
> {code}
> <cache-container name="hawkular-inventory">
> <jmx duplicate-domains="true" />
> <local-cache name="resource" statistics="true">
> <transaction mode="NON_XA"/>
> <persistence>
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" modification-queue-size="10000" />
> </file-store>
> </persistence>
> <memory>
> <!--
> <binary eviction="COUNT" size="10000" />
> -->
> <!--
> <object size="5000" />
> -->
> <off-heap eviction="COUNT" size="100000" />
> <!--
> <off-heap eviction="COUNT" size="100000" />
> -->
> </memory>
> <indexing index="LOCAL">
> <indexed-entities>
> <indexed-entity>org.hawkular.inventory.service.ispn.IspnResource</indexed-entity>
> </indexed-entities>
> <property name="default.indexmanager">near-real-time</property>
> <property name="default.directory_provider">infinispan</property>
> <property name="default.chunk_size">128000</property>
> <property name="default.locking_cachename">resource_indexes_locking</property>
> <property name="default.data_cachename">resource_indexes_data</property>
> <property name="default.metadata_cachename">resource_indexes_metadata</property>
> <!-- The default is 10, but we don't want to waste many cycles in merging
> (tune for writes at cost of reader fragmentation) -->
> <property name="default.indexwriter.merge_factor">30</property>
> <!-- Never create segments larger than 1GB -->
> <property name="default.indexwriter.merge_max_size">1024</property>
> <!-- IndexWriter flush buffer size in MB -->
> <property name="default.indexwriter.ram_buffer_size">64</property>
> <!-- Enable sharding on writers -->
> <property name="default.sharding_strategy.nbr_of_shards">6</property>
> <property name="lucene_version">LUCENE_CURRENT</property>
> </indexing>
> </local-cache>
> <local-cache name="resource_indexes_metadata">
> <persistence passivation="false">
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" />
> </file-store>
> </persistence>
> <indexing index="NONE"/>
> </local-cache>
> <local-cache name="resource_indexes_data">
> <persistence passivation="false">
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" />
> </file-store>
> </persistence>
> <indexing index="NONE" />
> </local-cache>
> <local-cache name="resource_indexes_locking">
> <persistence passivation="false">
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" />
> </file-store>
> </persistence>
> <indexing index="NONE" />
> </local-cache>
> <local-cache name="resource_type" statistics="true">
> <transaction mode="NON_XA"/>
> <persistence>
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" modification-queue-size="10000" />
> </file-store>
> </persistence>
> <indexing index="LOCAL">
> <indexed-entities>
> <indexed-entity>org.hawkular.inventory.service.ispn.IspnResourceType</indexed-entity>
> </indexed-entities>
> <property name="default.indexmanager">near-real-time</property>
> <property name="default.directory_provider">infinispan</property>
> <property name="default.chunk_size">128000</property>
> <property name="default.locking_cachename">resource_type_indexes_locking</property>
> <property name="default.data_cachename">resource_type_indexes_data</property>
> <property name="default.metadata_cachename">resource_type_indexes_metadata</property>
> <!-- The default is 10, but we don't want to waste many cycles in merging
> (tune for writes at cost of reader fragmentation) -->
> <property name="default.indexwriter.merge_factor">30</property>
> <!-- Never create segments larger than 1GB -->
> <property name="default.indexwriter.merge_max_size">1024</property>
> <!-- IndexWriter flush buffer size in MB -->
> <property name="default.indexwriter.ram_buffer_size">64</property>
> <!-- Enable sharding on writers -->
> <property name="default.sharding_strategy.nbr_of_shards">6</property>
> <property name="lucene_version">LUCENE_CURRENT</property>
> </indexing>
> </local-cache>
> <local-cache name="resource_type_indexes_metadata">
> <persistence passivation="false">
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" />
> </file-store>
> </persistence>
> <indexing index="NONE"/>
> </local-cache>
> <local-cache name="resource_type_indexes_data">
> <persistence passivation="false">
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" />
> </file-store>
> </persistence>
> <indexing index="NONE" />
> </local-cache>
> <local-cache name="resource_type_indexes_locking">
> <persistence passivation="false">
> <file-store preload="true" fetch-state="true" read-only="false" purge="false" path="${jboss.server.data.dir}/hawkular-inventory">
> <write-behind thread-pool-size="5" />
> </file-store>
> </persistence>
> <indexing index="NONE" />
> </local-cache>
> </cache-container>
> {code}
> At initialization, it tries to re-index existing resources*.dat files for data and lucene indexes.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
8 years, 5 months