Christopher Browne cbbrowne at afilias.info
Tue Apr 12 12:35:13 PDT 2011
It has been a while since the "team" has said anything much broader
than comments about one small issue or another.  It seems about time
to chat about what's up, as we have done quite a lot of stuff but not
given much feedback as to broader intent.  And for there to be some
understanding of "broad intent" is somewhat important.

I just posted a blog entry here <http://linuxdatabases.info/blog/?p=102>

I'll excerpt the Whole Thang...


                  What's up Lately? <2011-04-12 Tue>
                  ==================================

Author: Christopher Browne
Date: [2011-04-12 Tue 15:26]


Git Changeover
~~~~~~~~~~~~~~
   In July 2010, we switched over to use Git, which has been working
   out quite fine so far. The official repository is at
   [git.postgresql.org]; note that some developers are publishing their
   repositories publicly at GitHub:
   * [Christopher Browne]
   * [Steve Singer]
   * [Jan Wieck]

   You can find details at those "private" repositories of branches
   that the developers have opened to work on various bug fixes and
   features.

   [git.postgresql.org]: http://git.postgresql.org/gitweb?p=slony1-engine.git
   [Christopher Browne]: https://github.com/cbbrowne/slony1-engine
   [Steve Singer]: https://github.com/ssinger/slony1-engine
   [Jan Wieck]: https://github.com/wieck/slony1-engine

The next big version
~~~~~~~~~~~~~~~~~~~~
   We have been working on what seems most likely to be called the
   "2.1 release."
   - There are quite a lot of fixes and enhancements already in place.
     We have been quite faithful about integrating release notes in as
     changes are made, so [Master RELEASE notes] should be quite
     accurate in representing what has changed.  Some highlights
     include:
     - Changes to queries against ~sl_log_*~ tables improve
       performance when undergoing large backlog
     - Slonik now supports commands to bulk-add tables and sequences
     - Integration of [clustertest framework] that does rather more
       sophisticated tests, obsolescing previous "ducttape" and shell
       script tests.
     - Cleanup of a bunch of things
       - Use named parameters in all functions.
       - Dropped SNMP support that doesn't seem to run anymore, and
         which was never part of any regression tests.
   - It is unlikely that it will get dubbed "version 3," as there
     aren't the sorts of deep changes that would warrant such.
     - The database schema has not materially changed in any way that
       would warrant re-initializing clusters, as was the case between
       version 1.2 and 2.0.
     - The changes generally aren't really huge, with the exceptions
       of a couple features that aren't quite ready yet (which
       deserves its own separate discussion)

       [Master RELEASE notes]:
http://git.postgresql.org/gitweb?p=slony1-engine.git;a=blob_plain;f=RELEASE;hb=refs/heads/master
       [clustertest framework]:
https://github.com/clustertest/clustertest-framework

Still Outstanding
=================
    There are two features being worked on, which we hoped would be
    ready around the time of PGCon 2011:
    Implicit WAIT FOR EVENT: This feature causes most Slonik
         commands to wait for whatever event responses should be
         received before they may be considered properly finished.
         For instance ~SUBSCRIBE SET~ would wait until the
         subscription has been completed before proceeding.
    Multinode FAIL OVER: For clusters where there are multiple
         origins for different sets, this allows reshaping the entire
         cluster properly, which has historically been rather more
         troublesome than people usually were able to recognize.

    Unfortunately, neither of these are /quite/ ready yet.  It is
    conceivable that the automatic waiting may be /mostly/ ready, but
    complications and interruptions have gotten in the way of
    completion of multinode failover.

When will 2.1 be ready?
~~~~~~~~~~~~~~~~~~~~~~~
   Three possibilities seem to present themselves:
   1. Release what we've got as 2.1, let the outstanding items arrive
      in a future version.

      Unfortunately, this would seem to dictate that we support a
      "version 2.1" for an extended period of time, complete with the
      trouble and effort of backpatching.  It's not very attractive.

   2. Draw in ~Implicit WAIT FOR EVENT~, which would make for a
      substantially more featureful 2.1, and let ~multinode FAIL
      OVER~ come along later.

      We had been /hoping/ that there would be common functionality
      between these two features, so had imagined it a bad idea to do
      one without the other.  But perhaps that's wrong, and
      ~Implicit WAIT FOR EVENT~ doesn't /need/ multinode failover to
      be meaningful.  That does seem like it may be true.

      There is still the same issue as with 1. above, that this would
      mean having an extra version of Slony to support, which isn't
      something anyone is too keen on.

   3. Wait until it's all ready.

      This gets rid of the version proliferation problem, but means
      that it's going to be a while (several months, perhaps quite a
      few) before users may benefit from /any/ of these enhancements.

      Development of the failover facility seems like it will be
      bottlenecked for a while on Jan, so this suggests that it may be
      timely to solicit features that Steve and I might work on
      concurrently in the interim.

So, what might still go into 2.1?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   - We periodically get bug reports from people about this and that,
     and minor things will certainly get drawn in, particularly if
     they represent incorrect behaviour.

   - [ABORT script]

     I plan to send a note out soon describing my thoughts thus far.

   - [Cluster Analysis Tooling]

     I think it would be pretty neat to connect to a Slony cluster,
     pull out some data, and generate some web pages and GraphViz
     diagrams to characterize the status and health of the cluster.

   - There was evidently discussion at PGEast about trying to get the
     [altperl scripts] improved/cleaned up.

     My personal opinion (cbbrowne) is that they're not quite general
     enough, and that making them so would be more trouble than it's
     worth, so my "vote" would be to deprecate them.

     But that is certainly not the only opinion out there - there are
     apparently others that regularly use them.

     While I'm not keen on putting effort into them, if there is some
     consensus on what to do, I'd go along with it.  That might
     include:

     - Adding scripts to address slonik features that have not thus
       far been included in ~altperl~.

     - Integrating tests into the set of tests run using the
       clustertest framework, so that we have some verification that
       this stuff works properly.

   - /Insert Your Pet Feature Here?/

     Maybe there's some low hanging fruit that we're not aware of
     that's worth poking at.

     [ABORT script]: http://www.slony.info/bugzilla/show_bug.cgi?id=173
     [Cluster Analysis Tooling]:
http://www.slony.info/bugzilla/show_bug.cgi?id=176
     [altperl scripts]:
http://git.postgresql.org/gitweb?p=slony1-engine.git;a=tree;f=tools/altperl;h=2625f405fb36319c8db4b05df66ca626f911dbc6;hb=HEAD


More information about the Slony1-general mailing list