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

Reply via email to