]
RH Bugzilla Integration commented on ISPN-3894:
-----------------------------------------------
Tristan Tarrant <ttarrant(a)redhat.com> changed the Status of [bug
SingleFileStore can optimize space usage by coalescing adjacent free
entry blocks.
----------------------------------------------------------------------------------
Key: ISPN-3894
URL:
https://issues.jboss.org/browse/ISPN-3894
Project: Infinispan
Issue Type: Patch
Components: Loaders and Stores
Affects Versions: 6.0.0.Final
Environment: Oracle JDK 1.7, Windows Server 2008 R2
Reporter: Rajesh Jangam
Assignee: Dan Berindei
Fix For: 7.0.0.Alpha4
Attachments: CoalesceEntries.java
This issue is related to issue ISPN-3877.
Here we have a use case where the size of the entries gradually keeps on increasing and
then finally those entries expire.
1. Smaller entries expire and new bigger entries start getting added
2. These new bigger entries will not fit into the free slots (entries) created due to the
expiry of smaller entries.
3. Thus, these new bigger entries only get allocated at the end of the file resulting in
growth of file size.
The optimization proposed is to:
1. Coalesce/Combine adjacent free entries during the periodic purge cycle to create
bigger/larger free entries.
2. While allocating from an existing free entry, check if the size of the free entry is
more than required for the new request being allocated. If yes, then, split the free entry
into two free entries:
a. First part equal to the length being requested
This is returned as a part of the allocation activity.
b. Second part equal to the remainder of the space.
This added back as a free entry to the freeList.
Thus free space created due to expiry of smaller entries becomes available for
consumption for the larger entries to some extent.
This reduces file size of the store.