]
RH Bugzilla Integration commented on ISPN-4710:
-----------------------------------------------
Dave Stahl <dstahl(a)redhat.com> changed the Status of [bug
DistributedSegmentReadLocker should be allowed to skip ReadLocks on
small files
-------------------------------------------------------------------------------
Key: ISPN-4710
URL:
https://issues.jboss.org/browse/ISPN-4710
Project: Infinispan
Issue Type: Enhancement
Components: Lucene Directory
Reporter: Sanne Grinovero
Assignee: Gustavo Fernandes
Fix For: 7.0.0.CR1
Both of these methods:
-
{{org.infinispan.lucene.readlocks.DistributedSegmentReadLocker.deleteOrReleaseReadLock(String)}}
-
{{org.infinispan.lucene.readlocks.DistributedSegmentReadLocker.realFileDelete(FileReadLockKey,
AdvancedCache<Object, Integer>, AdvancedCache<?, ?>, AdvancedCache<?,
?>, boolean)}}
Are performing a lot of unnecessary operations - potentially on synchronous clustered
caches - as we know in advance that files which are not being chunked don't need a
read lock, and are not being chunked in smaller pieces (which affects how we delete
things).
The determining factor between the two styles is defined in:
{{org.infinispan.lucene.impl.DirectoryLuceneV4.openInput(String, IOContext)}}
{code} @Override
public IndexInput openInput(final String name, final IOContext context) throws
IOException {
final IndexInputContext indexInputContext = impl.openInput(name);
if ( indexInputContext.readLocks == null ) {
return new SingleChunkIndexInput(indexInputContext);
}
else {
return new InfinispanIndexInput(indexInputContext);
}
}{code}