[
https://issues.apache.org/jira/browse/DERBY-2921?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12520588
]
Rick Hillegas commented on DERBY-2921:
--------------------------------------
Øystein> If I understand correctly, hard-coding the SerialVersionUUID, will
mean that when one later change the serialization form, one will have to
manually update the SerialVersionUUID.
If I were coding this myself, my instinct would be to use Externalizable rather
than Serializable. As its very first task, writeExternal() would stamp a
version id on the serialization stream. Symmetrically, as its very first task,
readExternal() would read the stamped version id--and switch based on the
actual version id. I find this approach is very flexible. And you are right,
the version id has to change when the serialized form is altered--regardless of
whether the solution is programmed using Serializable or Externalizable.
Øystein> Would not that imply that as long as the format of the message does
not change, running different versions of the master and the slave will work?
I'm not following you. How would you handle the problem described in my comment
on August 8: The master hard-uprades and the transactional work done as part of
hard upgrade is replayed into the down-rev slave database. Now the slave
database thinks that it is at a higher rev than the actual Derby code on the
slave machine. What will happen if you have to failover to this inconsistent
slave?
> Replication: Add a network service that connects the master and slave Derby
> instances
> -------------------------------------------------------------------------------------
>
> Key: DERBY-2921
> URL: https://issues.apache.org/jira/browse/DERBY-2921
> Project: Derby
> Issue Type: Sub-task
> Components: Services
> Affects Versions: 10.4.0.0
> Reporter: Jørgen Løland
> Assignee: V.Narayanan
> Attachments: Replication_Network_v1.diff, Replication_Network_v1.stat
>
>
> A network connection is required between the master and slave Derby instances
> of a replicated database. The connection will be used to send many kinds of
> messages, including:
> * log records
> * the database (when replication is started)
> * master -> slave commands (like "stop replication")
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.