db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jørgen Løland (JIRA) <j...@apache.org>
Subject [jira] Commented: (DERBY-2926) Replication: Add a log buffer for log records that should be shipped to the slave
Date Thu, 12 Jul 2007 08:57:04 GMT

    [ https://issues.apache.org/jira/browse/DERBY-2926?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12512012
] 

Jørgen Løland commented on DERBY-2926:
--------------------------------------

Note the questions below...

PLAN:
I am planing to write the buffer as a linked list of ReplicationLogRecord objects, each containing
the same information that is passed to LogToFile.appendLogRecord:

byte[] data
int offset
int length
byte[] optionaldata
int optionalDataOffset
int optionalDataLength

This is the same information that is sent in DERBY-2872 using RMI calls. Log records will
be appended to the buffer somewhere in the LogFactory, while a log shipping service will remove
log records from it. Adding and removing log records from the buffer is not part of this jira.

QUESTIONS:
* It will be very easy to recycle the ReplicationLogRecord objects that make up the linked
list. Once the log-information in an object has been shipped to the slave, the object could
be put in a pool of recycled objects. This would significantly reduce the number of ReplicationLogRecord
objects that must be created and garbage collected, but may increase the memory usage since
the objects in the pool are not removed from memory. *Is recycling considered good or bad
practice?*

* Will it be ok to create a new directory for this, e.g. java/engine/org/apache/derby/impl/store/replication/buffer/
? It is likely that more replication functionality will be added to store later, and /store/replication
could then be used for all of this.


> Replication: Add a log buffer for log records that should be shipped to the slave
> ---------------------------------------------------------------------------------
>
>                 Key: DERBY-2926
>                 URL: https://issues.apache.org/jira/browse/DERBY-2926
>             Project: Derby
>          Issue Type: Sub-task
>          Components: Store
>    Affects Versions: 10.4.0.0
>            Reporter: Jørgen Løland
>            Assignee: Jørgen Løland
>
> When a Derby instance has the master role for a database, log records are shipped to
the slave to keep it up to date. A buffer is needed because the log records should not be
shipped one at a time. Also, writing the log records to a buffer instead of sending them immediately
removes the network communication from the critical path for the transaction.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message