Hi Jørgen,
Some unscientific ramblings of a layman follow...
Jørgen Løland wrote:
I have a few questions regarding replication that would be great
to hear the community's opinion on before the 10.4 branching. The
reason for bringing this up before code freeze is that these will
have impact on existing applications if changed later.
1. The master of a replicated database ships log records and
other information to the slave through a network socket. 8001
is currently default port for this communication. From
http://www.iana.org/assignments/port-numbers it seems that
this port is reserved for
vcom-tunnel 8001/tcp VCOM Tunnel
vcom-tunnel 8001/udp VCOM Tunnel
Should we change port, and maybe even register a port in IANA,
or is it fine as it is? I have no idea how long it will take
to register a port, but chances are it will be longer than the
time we have for 10.4 with the current plan. Another
alternative is to use a port from the range called "dynamic
and/or private ports" (49152 through 65535) BTW: I noticed
that 1527 is registered by Oracle, which may also be a
problem?
At first blush, registering a port seems like a good idea. It ought to
reduce the likelihood of ugly surprises. I got the impression that the
top range ( dynamic and/or private ports) was for short-lived, transient
conversations. It's probably not the right range if you want to conduct
a long-running conversation on your port.
A little mousing around turned up these resources: The process for
registering a port is defined in section 19.9 of
http://www.rfc-editor.org/rfc/rfc4340.txt and the corresponding form is
at http://www.iana.org/cgi-bin/usr-port-number.pl It appears that IANA
wants to give you a port number rather than vice-versa. So if you want
to register a port, then our user documentation should say that the port
used in 10.4 is likely to change in a future release.
tlisrv 1527/tcp oracle
tlisrv 1527/udp oracle
Note that this is only a question of default port. The port
number may be set explicitly by the client starting
replication.
Oops. Changing this would be a backward compatibility issue and I doubt
you'll find much passion for this in the community.
2. About a week ago, Dibyendu Majumdar raised a question about
why the replication modules are placed under services and not
store. Should replication be moved from
org.apache.derby.{iapi|impl}.services.replication to e.g.
org.apache.derby.{iapi|impl}.store.replication, or is it OK to keep
the current placement?
3. Should replication be shipped in a separate JAR file? Pros and
cons as I see it:
+ Remove 65KB (unjared) of class files from derby.jar
+ Possible to have a different security policy file for replication?
- Yet another JAR file
This doesn't seem like excessive bloat to me.
Thanks,
-Rick