Issue Details (XML | Word | Printable)

Key: DERBY-3734
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Mike Matrigali
Reporter: Stan Bradbury
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Derby

Maximum value allowed for derby.storage.fileCacheSize (100) is too low for large system. Increase the maximum value and redocument the property.

Created: 20/Jun/08 10:01 PM   Updated: 29/Jun/09 01:59 PM
Return to search
Component/s: None
Affects Version/s: 10.3.3.0, 10.4.1.3
Fix Version/s: 10.4.2.0, 10.5.1.1

Time Tracking:
Not Specified

File Attachments:
  Size
Text File Licensed for inclusion in ASF works derby-3734-diff.txt 2008-06-23 09:03 PM Mike Matrigali 5 kB
Environment: Derby 10.3.3

Urgency: Urgent
Bug behavior facts: Performance
Resolution Date: 25/Jun/08 08:27 PM


 Description  « Hide
Increasing the value of the undocumented property: derby.storage.fileCacheSize improves Derby performance in our system but the maximum allowed value (100) is not large enough to accommodate our system. Our performance engineer reports:

The following stack shows items being evicted from Derby's container cache. Extra debug code showed that the cache was at its maximum size (100), and that about 1 in 25 accesses to the cache was resulting in a miss (forcing another item to be evicted). Since this results in synchronous disk write, performance is bottlenecked on IO. Patching Derby to allow the cache to grow to 200 entries solved the performance problem.

Performance is severely degraded. CPU utilization is low -- performance is IO bound. A sampling of stack dumps for the key thread consistently have the following methods at the top of the stack:

at sun/nio/ch/FileChannelImpl.force0(Native Method)
at sun/nio/ch/FileChannelImpl.force(FileChannelImpl.java:392(Compiled Code))
at org/apache/derby/impl/io/DirRandomAccessFile4.sync(Bytecode PC:5(Compiled Code))
at org/apache/derby/impl/store/raw/data/RAFContainer.writeRAFHeader(Bytecode PC:86(Compiled Code))
at org/apache/derby/impl/store/raw/data/RAFContainer.clean(Bytecode PC:84(Compiled Code))
at org/apache/derby/impl/services/cache/CachedItem.clean(Bytecode PC:7(Compiled Code))
at org/apache/derby/impl/services/cache/Clock.rotateClock(Bytecode PC:7(Compiled Code))
at org/apache/derby/impl/services/cache/Clock.findFreeItem(Bytecode PC:17(Compiled Code))
at org/apache/derby/impl/services/cache/Clock.find(Bytecode PC:71(Compiled Code))
at org/apache/derby/impl/store/raw/data/BaseDataFileFactory.openContainer(Bytecode PC:65(Compiled Code))
at org/apache/derby/impl/store/raw/data/BaseDataFileFactory.openContainer(Bytecode PC:7(Compiled Code))
at org/apache/derby/impl/store/raw/xact/Xact.openContainer(Bytecode PC:29(Compiled Code))


 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
No work has yet been logged on this issue.