[
https://issues.apache.org/jira/browse/DERBY-2939?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jørgen Løland updated DERBY-2939:
---------------------------------
Derby Info: [Patch Available]
> Log file is flushed every time a log buffer gets full
> -----------------------------------------------------
>
> Key: DERBY-2939
> URL: https://issues.apache.org/jira/browse/DERBY-2939
> Project: Derby
> Issue Type: Bug
> Components: Store
> Affects Versions: 10.3.1.4, 10.4.0.0
> Reporter: Jørgen Løland
> Assignee: Jørgen Løland
> Attachments: derby-2939-1.diff, derby-2939-1.stat, derby-2939-2.diff,
> derby-2939-2.stat
>
>
> LogAccessFile consists of a number of log buffers:
> LinkedList<LogAccessFileBuffer> freeBuffers and dirtyBuffers, and
> LogAccessFileBuffer currentBuffer.
> When a log record is written to log, writeLogRecord wrongly assumes that the
> log record is too big to fit in any log buffer if there is not enough free
> space in the current log buffer. The code:
> if (total_log_record_length <= currentBuffer.bytes_free) {
> <append log record to current buffer>
> ...
> } else {
> <log record too big to fit in any buffer>
> ...
> }
> should be modified to:
> if (total_log_record_length <= currentBuffer.bytes_free) {
> <append log record to current buffer>
> ...
> } else if (total_log_record_length <= currentBuffer.length) {
> <swap log buffer>
> <append log record to new current buffer>
> ...
> } else {
> <log record too big to fit in any buffer>
> ...
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.