Hadoop HDFS
  1. Hadoop HDFS
  2. HDFS-892

optionally use Avro for namenode RPC

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.21.0
    • Component/s: namenode
    • Labels:
      None
    • Hadoop Flags:
      Incompatible change, Reviewed

      Description

      It should be possible to configure HDFS so that Avro is used for RPCs to the namenode.

      1. HDFS-892.patch
        27 kB
        Doug Cutting
      2. HDFS-892.patch
        27 kB
        Doug Cutting
      3. HDFS-892.patch
        27 kB
        Doug Cutting
      4. HDFS-892.patch
        20 kB
        Doug Cutting
      5. HDFS-892.patch
        20 kB
        Doug Cutting
      6. HDFS-892.patch
        18 kB
        Doug Cutting

        Issue Links

          Activity

          Hide
          Doug Cutting added a comment -

          This depends on AVRO-6486.

          Show
          Doug Cutting added a comment - This depends on AVRO-6486.
          Hide
          Doug Cutting added a comment -

          Here's a first version of this. Default behaviour is unchanged. Passing Ant
          -Dtest.hdfs.rpc.engine=org.apache.hadoop.ipc.AvroRpcEngine will cause Avro reflection to be used on all NN protocols, and Avro-format RPC calls to be made over a Hadoop RPC tunnel. Some but not all tests yet pass in this configuration. The primary intent of this issue is to test that Avro reflect can correctly characterize all of the Namenode's protocols.

          Show
          Doug Cutting added a comment - Here's a first version of this. Default behaviour is unchanged. Passing Ant -Dtest.hdfs.rpc.engine=org.apache.hadoop.ipc.AvroRpcEngine will cause Avro reflection to be used on all NN protocols, and Avro-format RPC calls to be made over a Hadoop RPC tunnel. Some but not all tests yet pass in this configuration. The primary intent of this issue is to test that Avro reflect can correctly characterize all of the Namenode's protocols.
          Hide
          Doug Cutting added a comment -

          Here's an updated patch.

          One can run tests using Avro serialization for RPC data by specifying -Dtestdfs.rpc.engine=org.apache.hadoop.ipc.AvroRpcEngine. Not all tests pass yet with this setting. I'll keep working on that, but I don't think that should block eventual commit of this patch, as we won't switch RPC to use Avro serialization when this is committed. Rather, this patch is intended to enable developers to work towards that goal without maintaining a separate branch.

          Changes in this patch include:

          • permit Ivy to find unreleased artifacts in the local Maven repository for non-Hadoop projects. This will be important if/when Avro becomes a TLP but could perhaps be a separate issue if folks prefer.
          • renames DatanodeProtocol#register to be registerDatanode, since register is overloaded in NameNodeProtocol and NameNode implements both protocols. Avro does not permit overloading, instead permitting different method signatures for different revisions of the protocol.
          • adds an @Union declaration to DatanodeCommand, listing its subclasses, so that interfaces that reference can know what types they'll need to serialize.
          • adds a NamenodeProtocols interface that extends all of the protocols that the Namenode implements, so that we can refer to this as an RPC interface independently of all of the other methods in Namenode.
          • declares some transient fields as such
          • uses @Union to declare that some parameters and return types may sometimes be null
          • changes a few things that are sometimes null but not seeingly for any good reason so that they instead have a non-null default value.

          This is still a work in progress.

          Show
          Doug Cutting added a comment - Here's an updated patch. One can run tests using Avro serialization for RPC data by specifying -Dtestdfs.rpc.engine=org.apache.hadoop.ipc.AvroRpcEngine. Not all tests pass yet with this setting. I'll keep working on that, but I don't think that should block eventual commit of this patch, as we won't switch RPC to use Avro serialization when this is committed. Rather, this patch is intended to enable developers to work towards that goal without maintaining a separate branch. Changes in this patch include: permit Ivy to find unreleased artifacts in the local Maven repository for non-Hadoop projects. This will be important if/when Avro becomes a TLP but could perhaps be a separate issue if folks prefer. renames DatanodeProtocol#register to be registerDatanode, since register is overloaded in NameNodeProtocol and NameNode implements both protocols. Avro does not permit overloading, instead permitting different method signatures for different revisions of the protocol. adds an @Union declaration to DatanodeCommand, listing its subclasses, so that interfaces that reference can know what types they'll need to serialize. adds a NamenodeProtocols interface that extends all of the protocols that the Namenode implements, so that we can refer to this as an RPC interface independently of all of the other methods in Namenode. declares some transient fields as such uses @Union to declare that some parameters and return types may sometimes be null changes a few things that are sometimes null but not seeingly for any good reason so that they instead have a non-null default value. This is still a work in progress.
          Hide
          Doug Cutting added a comment -

          This patch now depends on AVRO-432.

          Show
          Doug Cutting added a comment - This patch now depends on AVRO-432 .
          Hide
          Doug Cutting added a comment -

          Here's a new, still preliminary, version that uses the @Nullable annotation from AVRO-433 and that passes a few more tests when AvroRpcEngine is enabled.

          Show
          Doug Cutting added a comment - Here's a new, still preliminary, version that uses the @Nullable annotation from AVRO-433 and that passes a few more tests when AvroRpcEngine is enabled.
          Hide
          Doug Cutting added a comment -

          Now that Avro 1.3.1 is available this should pass Hudson's tests.

          This annotates & slightly modifies namenode RPC protocols so that Avro reflection can accurately induce an RPC protocol. A test is added that only tests basic operations using Avro.

          Default runtime behavior of HDFS is not altered by this patch.

          Show
          Doug Cutting added a comment - Now that Avro 1.3.1 is available this should pass Hudson's tests. This annotates & slightly modifies namenode RPC protocols so that Avro reflection can accurately induce an RPC protocol. A test is added that only tests basic operations using Avro. Default runtime behavior of HDFS is not altered by this patch.
          Hide
          Hadoop QA added a comment -

          -1 overall. Here are the results of testing the latest attachment
          http://issues.apache.org/jira/secure/attachment/12439528/HDFS-892.patch
          against trunk revision 925509.

          +1 @author. The patch does not contain any @author tags.

          +1 tests included. The patch appears to include 9 new or modified tests.

          +1 javadoc. The javadoc tool did not generate any warning messages.

          -1 javac. The applied patch generated 25 javac compiler warnings (more than the trunk's current 24 warnings).

          +1 findbugs. The patch does not introduce any new Findbugs warnings.

          +1 release audit. The applied patch does not increase the total number of release audit warnings.

          -1 core tests. The patch failed core unit tests.

          -1 contrib tests. The patch failed contrib unit tests.

          Test results: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h2.grid.sp2.yahoo.net/132/testReport/
          Findbugs warnings: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h2.grid.sp2.yahoo.net/132/artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html
          Checkstyle results: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h2.grid.sp2.yahoo.net/132/artifact/trunk/build/test/checkstyle-errors.html
          Console output: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h2.grid.sp2.yahoo.net/132/console

          This message is automatically generated.

          Show
          Hadoop QA added a comment - -1 overall. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12439528/HDFS-892.patch against trunk revision 925509. +1 @author. The patch does not contain any @author tags. +1 tests included. The patch appears to include 9 new or modified tests. +1 javadoc. The javadoc tool did not generate any warning messages. -1 javac. The applied patch generated 25 javac compiler warnings (more than the trunk's current 24 warnings). +1 findbugs. The patch does not introduce any new Findbugs warnings. +1 release audit. The applied patch does not increase the total number of release audit warnings. -1 core tests. The patch failed core unit tests. -1 contrib tests. The patch failed contrib unit tests. Test results: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h2.grid.sp2.yahoo.net/132/testReport/ Findbugs warnings: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h2.grid.sp2.yahoo.net/132/artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html Checkstyle results: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h2.grid.sp2.yahoo.net/132/artifact/trunk/build/test/checkstyle-errors.html Console output: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h2.grid.sp2.yahoo.net/132/console This message is automatically generated.
          Hide
          Doug Cutting added a comment -

          Fixed the javac warning (something got deprecated since I first wrote the patch).

          I'm not sure why tests failed. The classpath seemed to be missing the hadoop-common jar?

          Show
          Doug Cutting added a comment - Fixed the javac warning (something got deprecated since I first wrote the patch). I'm not sure why tests failed. The classpath seemed to be missing the hadoop-common jar?
          Hide
          Hadoop QA added a comment -

          -1 overall. Here are the results of testing the latest attachment
          http://issues.apache.org/jira/secure/attachment/12439604/HDFS-892.patch
          against trunk revision 926469.

          +1 @author. The patch does not contain any @author tags.

          +1 tests included. The patch appears to include 9 new or modified tests.

          +1 javadoc. The javadoc tool did not generate any warning messages.

          +1 javac. The applied patch does not increase the total number of javac compiler warnings.

          +1 findbugs. The patch does not introduce any new Findbugs warnings.

          +1 release audit. The applied patch does not increase the total number of release audit warnings.

          -1 core tests. The patch failed core unit tests.

          -1 contrib tests. The patch failed contrib unit tests.

          Test results: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h5.grid.sp2.yahoo.net/280/testReport/
          Findbugs warnings: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h5.grid.sp2.yahoo.net/280/artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html
          Checkstyle results: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h5.grid.sp2.yahoo.net/280/artifact/trunk/build/test/checkstyle-errors.html
          Console output: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h5.grid.sp2.yahoo.net/280/console

          This message is automatically generated.

          Show
          Hadoop QA added a comment - -1 overall. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12439604/HDFS-892.patch against trunk revision 926469. +1 @author. The patch does not contain any @author tags. +1 tests included. The patch appears to include 9 new or modified tests. +1 javadoc. The javadoc tool did not generate any warning messages. +1 javac. The applied patch does not increase the total number of javac compiler warnings. +1 findbugs. The patch does not introduce any new Findbugs warnings. +1 release audit. The applied patch does not increase the total number of release audit warnings. -1 core tests. The patch failed core unit tests. -1 contrib tests. The patch failed contrib unit tests. Test results: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h5.grid.sp2.yahoo.net/280/testReport/ Findbugs warnings: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h5.grid.sp2.yahoo.net/280/artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html Checkstyle results: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h5.grid.sp2.yahoo.net/280/artifact/trunk/build/test/checkstyle-errors.html Console output: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h5.grid.sp2.yahoo.net/280/console This message is automatically generated.
          Hide
          Doug Cutting added a comment -

          Failure was in TestReadWhileWriting, which passes locally.

          Show
          Doug Cutting added a comment - Failure was in TestReadWhileWriting, which passes locally.
          Hide
          Tsz Wo Nicholas Sze added a comment -

          Patch looks mostly good. Some comments:

          • It looks like that all the changes are compatible changes except renaming register(..) to registerDatanode(..) in DatanodeProtocol. So the protocol version have to be updated.
          • Do we need a versionID for the new NamenodeProtocols?
          Show
          Tsz Wo Nicholas Sze added a comment - Patch looks mostly good. Some comments: It looks like that all the changes are compatible changes except renaming register(..) to registerDatanode(..) in DatanodeProtocol. So the protocol version have to be updated. Do we need a versionID for the new NamenodeProtocols?
          Hide
          Hadoop QA added a comment -

          -1 overall. Here are the results of testing the latest attachment
          http://issues.apache.org/jira/secure/attachment/12439604/HDFS-892.patch
          against trunk revision 926469.

          +1 @author. The patch does not contain any @author tags.

          +1 tests included. The patch appears to include 9 new or modified tests.

          +1 javadoc. The javadoc tool did not generate any warning messages.

          +1 javac. The applied patch does not increase the total number of javac compiler warnings.

          +1 findbugs. The patch does not introduce any new Findbugs warnings.

          +1 release audit. The applied patch does not increase the total number of release audit warnings.

          +1 core tests. The patch passed core unit tests.

          -1 contrib tests. The patch failed contrib unit tests.

          Test results: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h5.grid.sp2.yahoo.net/281/testReport/
          Findbugs warnings: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h5.grid.sp2.yahoo.net/281/artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html
          Checkstyle results: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h5.grid.sp2.yahoo.net/281/artifact/trunk/build/test/checkstyle-errors.html
          Console output: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h5.grid.sp2.yahoo.net/281/console

          This message is automatically generated.

          Show
          Hadoop QA added a comment - -1 overall. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12439604/HDFS-892.patch against trunk revision 926469. +1 @author. The patch does not contain any @author tags. +1 tests included. The patch appears to include 9 new or modified tests. +1 javadoc. The javadoc tool did not generate any warning messages. +1 javac. The applied patch does not increase the total number of javac compiler warnings. +1 findbugs. The patch does not introduce any new Findbugs warnings. +1 release audit. The applied patch does not increase the total number of release audit warnings. +1 core tests. The patch passed core unit tests. -1 contrib tests. The patch failed contrib unit tests. Test results: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h5.grid.sp2.yahoo.net/281/testReport/ Findbugs warnings: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h5.grid.sp2.yahoo.net/281/artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html Checkstyle results: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h5.grid.sp2.yahoo.net/281/artifact/trunk/build/test/checkstyle-errors.html Console output: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h5.grid.sp2.yahoo.net/281/console This message is automatically generated.
          Hide
          Doug Cutting added a comment -

          > all the changes are compatible changes except renaming register(..) to registerDatanode(..) in DatanodeProtocol. So the protocol version have to be updated.

          Thanks for catching that! I've attached a new version that updates this.

          > Do we need a versionID for the new NamenodeProtocols?

          I don't think so, clients are not permitted to use that interface. NameNode's getProtocolVersion() implementation dispatches depending on the client's protocol. If a client tried to connect using the NamenodeProtocols interface, then that method will fail with "unknown protocol".

          Show
          Doug Cutting added a comment - > all the changes are compatible changes except renaming register(..) to registerDatanode(..) in DatanodeProtocol. So the protocol version have to be updated. Thanks for catching that! I've attached a new version that updates this. > Do we need a versionID for the new NamenodeProtocols? I don't think so, clients are not permitted to use that interface. NameNode's getProtocolVersion() implementation dispatches depending on the client's protocol. If a client tried to connect using the NamenodeProtocols interface, then that method will fail with "unknown protocol".
          Hide
          Hadoop QA added a comment -

          -1 overall. Here are the results of testing the latest attachment
          http://issues.apache.org/jira/secure/attachment/12439681/HDFS-892.patch
          against trunk revision 926469.

          +1 @author. The patch does not contain any @author tags.

          +1 tests included. The patch appears to include 9 new or modified tests.

          +1 javadoc. The javadoc tool did not generate any warning messages.

          +1 javac. The applied patch does not increase the total number of javac compiler warnings.

          +1 findbugs. The patch does not introduce any new Findbugs warnings.

          +1 release audit. The applied patch does not increase the total number of release audit warnings.

          +1 core tests. The patch passed core unit tests.

          -1 contrib tests. The patch failed contrib unit tests.

          Test results: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h5.grid.sp2.yahoo.net/282/testReport/
          Findbugs warnings: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h5.grid.sp2.yahoo.net/282/artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html
          Checkstyle results: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h5.grid.sp2.yahoo.net/282/artifact/trunk/build/test/checkstyle-errors.html
          Console output: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h5.grid.sp2.yahoo.net/282/console

          This message is automatically generated.

          Show
          Hadoop QA added a comment - -1 overall. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12439681/HDFS-892.patch against trunk revision 926469. +1 @author. The patch does not contain any @author tags. +1 tests included. The patch appears to include 9 new or modified tests. +1 javadoc. The javadoc tool did not generate any warning messages. +1 javac. The applied patch does not increase the total number of javac compiler warnings. +1 findbugs. The patch does not introduce any new Findbugs warnings. +1 release audit. The applied patch does not increase the total number of release audit warnings. +1 core tests. The patch passed core unit tests. -1 contrib tests. The patch failed contrib unit tests. Test results: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h5.grid.sp2.yahoo.net/282/testReport/ Findbugs warnings: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h5.grid.sp2.yahoo.net/282/artifact/trunk/build/test/findbugs/newPatchFindbugsWarnings.html Checkstyle results: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h5.grid.sp2.yahoo.net/282/artifact/trunk/build/test/checkstyle-errors.html Console output: http://hudson.zones.apache.org/hudson/job/Hdfs-Patch-h5.grid.sp2.yahoo.net/282/console This message is automatically generated.
          Hide
          Tsz Wo Nicholas Sze added a comment -

          +1 patch looks good. Thanks, Doug.

          Show
          Tsz Wo Nicholas Sze added a comment - +1 patch looks good. Thanks, Doug.
          Hide
          Doug Cutting added a comment -

          I just committed this. Thanks, Nicholas, for reviewing this!

          Show
          Doug Cutting added a comment - I just committed this. Thanks, Nicholas, for reviewing this!
          Hide
          Hudson added a comment -

          Integrated in Hadoop-Hdfs-trunk-Commit #221 (See http://hudson.zones.apache.org/hudson/job/Hadoop-Hdfs-trunk-Commit/221/)
          . Optionally use Avro reflection for Namenode RPC.

          Show
          Hudson added a comment - Integrated in Hadoop-Hdfs-trunk-Commit #221 (See http://hudson.zones.apache.org/hudson/job/Hadoop-Hdfs-trunk-Commit/221/ ) . Optionally use Avro reflection for Namenode RPC.
          Hide
          Hudson added a comment -

          Integrated in Hadoop-Hdfs-trunk-Commit #222 (See http://hudson.zones.apache.org/hudson/job/Hadoop-Hdfs-trunk-Commit/222/)
          . Fix typo in initial CHANGES.txt message.

          Show
          Hudson added a comment - Integrated in Hadoop-Hdfs-trunk-Commit #222 (See http://hudson.zones.apache.org/hudson/job/Hadoop-Hdfs-trunk-Commit/222/ ) . Fix typo in initial CHANGES.txt message.
          Hide
          Sanjay Radia added a comment -

          Just noticed that this added an Avro @Nullable.
          This means that Avro is not optional as stated for this Jira.
          Shouldn't this have been @Nullable defined in common?

          Show
          Sanjay Radia added a comment - Just noticed that this added an Avro @Nullable. This means that Avro is not optional as stated for this Jira. Shouldn't this have been @Nullable defined in common?
          Hide
          Doug Cutting added a comment -

          Avro was not intended to be optional at compile time, only at run time.

          Show
          Doug Cutting added a comment - Avro was not intended to be optional at compile time, only at run time.
          Hide
          Sanjay Radia added a comment -

          Actually I am okay with Hadoop completely depending on Avro once we write all the protocols in Avro IDL (HDFS-1069). So I have no philosophical issues on depending on Avro.
          BTW when we write the protocols in Avro IDL we will no longer need the @Nullable; correct?

          Q. Doug, Any reason why you didn't define the @Nullable in common?

          Show
          Sanjay Radia added a comment - Actually I am okay with Hadoop completely depending on Avro once we write all the protocols in Avro IDL ( HDFS-1069 ). So I have no philosophical issues on depending on Avro. BTW when we write the protocols in Avro IDL we will no longer need the @Nullable; correct? Q. Doug, Any reason why you didn't define the @Nullable in common?
          Hide
          Sanjay Radia added a comment -

          Doug, you defined:
          +public interface NamenodeProtocols
          + extends ClientProtocol,
          + DatanodeProtocol,
          + NamenodeProtocol,
          + RefreshAuthorizationPolicyProtocol,
          + RefreshUserToGroupMappingsProtocol

          { ...}

          Will this prevent us from putting the DatanodeProtocol in a different port?
          Was the super-interface added to avoid the duplicate "versioned" interface?

          Show
          Sanjay Radia added a comment - Doug, you defined: +public interface NamenodeProtocols + extends ClientProtocol, + DatanodeProtocol, + NamenodeProtocol, + RefreshAuthorizationPolicyProtocol, + RefreshUserToGroupMappingsProtocol { ...} Will this prevent us from putting the DatanodeProtocol in a different port? Was the super-interface added to avoid the duplicate "versioned" interface?
          Hide
          Doug Cutting added a comment -

          > Q. Doug, Any reason why you didn't define the @Nullable in common?

          That would only make sense if the rest of Avro's reflect code were in common, since it's the reflect code that interprets this annotation. Hadoop is the primary user of Avro reflect, but I don't think the only user.

          > Will this prevent us from putting the DatanodeProtocol in a different port?

          No more so than the current implementation does. I don't know what the plan is to implement multiple ports. The obvious approach would be to run multiple org.apache.hadoop.ipc.Servers, each serving different objects implementing different protocols. That would work fine with Avro too.

          > Was the super-interface added to avoid the duplicate "versioned" interface?

          No, the super-interface was added because Avro needs to know the full set of methods that a given service implements. But Namenode has lots of other public methods that are not protocol methods, so we can't otherwise determine the intended set of protocol methods.

          Show
          Doug Cutting added a comment - > Q. Doug, Any reason why you didn't define the @Nullable in common? That would only make sense if the rest of Avro's reflect code were in common, since it's the reflect code that interprets this annotation. Hadoop is the primary user of Avro reflect, but I don't think the only user. > Will this prevent us from putting the DatanodeProtocol in a different port? No more so than the current implementation does. I don't know what the plan is to implement multiple ports. The obvious approach would be to run multiple org.apache.hadoop.ipc.Servers, each serving different objects implementing different protocols. That would work fine with Avro too. > Was the super-interface added to avoid the duplicate "versioned" interface? No, the super-interface was added because Avro needs to know the full set of methods that a given service implements. But Namenode has lots of other public methods that are not protocol methods, so we can't otherwise determine the intended set of protocol methods.
          Hide
          Allen Wittenauer added a comment -

          > Avro was not intended to be optional at compile time, only at run time.

          That seems kind of pointless to me. If you require it at compile time, why bother with making it optional at run time?

          Show
          Allen Wittenauer added a comment - > Avro was not intended to be optional at compile time, only at run time. That seems kind of pointless to me. If you require it at compile time, why bother with making it optional at run time?
          Hide
          Doug Cutting added a comment -

          > If you require it at compile time, why bother with making it optional at run time?

          What I meant by "optional" and "not at runtime" is that it's switched off by default. The strategy is, rather than trying to maintain a long-lived branch, to incrementally develop this in trunk but leave it switched off until it's been extensively tested, benchmarked, etc.

          Show
          Doug Cutting added a comment - > If you require it at compile time, why bother with making it optional at run time? What I meant by "optional" and "not at runtime" is that it's switched off by default. The strategy is, rather than trying to maintain a long-lived branch, to incrementally develop this in trunk but leave it switched off until it's been extensively tested, benchmarked, etc.

            People

            • Assignee:
              Doug Cutting
              Reporter:
              Doug Cutting
            • Votes:
              0 Vote for this issue
              Watchers:
              13 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development