[
https://issues.jboss.org/browse/ISPN-1300?page=com.atlassian.jira.plugin....
]
Manik Surtani commented on ISPN-1300:
-------------------------------------
What I am tempted to do here is for this release, to hard-code the file mask to
0xfffffc00, as you suggested. And in 5.1.0, to make this configurable. It would mean
that people migrating apps from 5.0.0.CRx to 5.0.0.FINAL will have corrupt data though, so
I think we should bypass this with a -DskipFileMask flag for folks migrating.
Reduce number of files generated by FileCacheStore
--------------------------------------------------
Key: ISPN-1300
URL:
https://issues.jboss.org/browse/ISPN-1300
Project: Infinispan
Issue Type: Enhancement
Components: Configuration, Loaders and Stores
Affects Versions: 5.0.0.CR8
Reporter: Robert Stupp
Assignee: Manik Surtani
The current implementation of FileCacheStore creates one file for each hash key - which
results in up to 4.2 billion files (2^32).
It should limit the number of files to
a) improve performance of purge
b) reduce number of open file handles (system resources)
c) reduce number of Java objects/heap (JVM resources)
d) improve performance
The implementation allows us to do so.
Only 4 lines of code are necessary in FileCacheStore implementation:
private int hashKeyMask = 0xfffffc00; // TODO should get a configuration entry
@Override
protected Integer getLockFromKey(Object key) {
return Integer.valueOf(key.hashCode() & hashKeyMask);
}
This reduces the number of files to 2^22 = 4,194,304 files. Since each application and
each cache store has different semantics the hasKeyMask value should be configurable -
best would be to configure the number of bits.
Side effect: If someone changes the FileCacheStore hasKeyMask, the whole cache store
becomes unuseable. So I opened another enhancement ...
Note: This implementation should be used in a different class (e.g. extend
FileCacheStore) because it makes existing file cache stores unusable.
--
This message is automatically generated by JIRA.
For more information on JIRA, see:
http://www.atlassian.com/software/jira