If you use SingleFileStore and update the entry with values of growing sizes, the underlying data file won't get completely overwritten - the place where the entry was written will be just marked as free and the bigger entry will be placed into different free spot (possibly allocated on the end of the file). Further write with the same or smaller size will overwrite the old released entry.
Then Is there any alternative for singleFileStore, which can be used to avoid this problem
Why you care about that? It is an implementation detail.
If you want to have such access maybe a JDBC store can be used.
You can try LevelDB store, though the performance is quite lower because it solves that kind of stuff.
@Wolf: I don't think that JDBC is a good suggestion, since the user wants to store entries on filesystem and JDBC performance is even some magnitude lower than LevelDB.