* The first release for Slony-I branch 2.1 has been released, in the form of
version 2.1.0. It is a significant new version, fixing dozens of reported
bugs, and adding some significant enhancements, including:
- Implicit WAIT FOR
- Support for adding tables in bulk
- Support for replicating TRUNCATE
- Health checks at startup
- Performance improvement in cases of large backlog
- Monitoring thread to provide better monitoring data
-Fix: Removing extranous '//' from the perl script.
-Fix: slon can segfault while shutting down.
-Fix: typenameTypeId() changes signatures in 9.1
-Fix: if slon gets confused waiting for its child it will exit.
-Fix: distclean deletes the slony_logshipper flex/bison generated files.
* script syntax error
* Fixed memory corruption issue introduced in 2.0.3 with replicating large rows
* cloneNodeFinish() references the proper column in sl_sequence
* Newer versions of flex have changed yyleng from an int to a size_t
instead of referencing the extern yyleng directly we use the function
yyget_leng() and have added a configure check to confirm that the version
of flex we use is not too old.
* Memory leak fixes
* Various documentation fixes
* cloneNodeFinish() called updateRelOid() that ws looking at wrong tab_id
sl_sequence but the column is named seq_id.
* Fixed mistyped variable name in ShouldSlonyVacuumTable
* PostgreSQL 8.4 has been released; slonik needs to explicitly recognize it
* Add in slonikconfdump.sh tool, which generates a slonik script to duplicate
the configuration of a Slony-I cluster
* Significant fixes to documentation to reflect 2.0 changes
* Add "OMIT COPY" option to the Slonik "SUBSCRIBE SET" command
* Document process for Slony-I 2.0 upgrade using OMIT COPY option
* Fix to race condition where file descriptor copies were being made at
the wrong time in the scheduler
* Modify "testseqnames" regression test to create a whole bunch of
sequences to validate that things don't break down with either lots of
them, or where IDs are large numbers
* Change minimum debugging level to -1 to allow suppressing logging
* Bug 92 - compression of event numbers had a bug where events >
2^31-1 would overflow the "int" value
* Autovacuum handling changes in PostgreSQL 8.4 - we pull metadata
from pg_class.reloptions, instead of pg_autovacuum
* logswitch fix resolving a potential data loss + statement blocking bug...
* Add LOG_NAME_SUFFIX to altperl tools
* PostgreSQL 8.4 compatibility
* Fix - config dump was failing on string entries that were NULL
* Fix - REPAIR CONFIG could have collisions where, when we
load a schema, one entry in sl_table already has an OID value
that incorrectly matches a value that another update is trying to fix.
* Updated release notes to indicate that 2.0 only supports PostgreSQL 8.3+
* Change to configure.ac to allow it to run on autoconf 2.63; there was
something unsuitable about SLONREL_VERSION processing
* Fixes to Makefile for admin guide
* Various fixes to admin guide material
* Added an extra test to Schema name test that validates that things
can operate properly even if the DB lacks a "public" schema
* Fixed bug in tools/start_slon.sh
* Fixed pathname substitutions in a couple of altperl scripts
* Add a test which validates that the cluster schema name is valid;
pgAdminIII allowed setting up cluster names that slonik would refuse
to connect to.
* Revised regression tests to use SYNC/WAIT FOR EVENT instead of
queries that try to coordinate sl_status information with rather
less determinacy...
* Cleanup thread was generating spurious error messages due to
misinterpreting PG return codes. Rectified this, and added a
test in to make sure we're exercising the logic
* Fix to STORE TRIGGER - store trigger was running against all nodes
upon subscription
* Portability changes to some tools/ scripts, fixing some
"bash-isms"
* Fix to switch statement in slonik.c; unknown how it broke
* Fix memory leak
- Fix typo in configure-replication.sh (missing CR)
- Per bug 35, search the Slony share dir for scripts
before falling back to the PG share dir on 8.0+
- Change test framework to write out the test name into
$TEMPDIR/TestName
- Patch that seems to resolve a race condition with
ACCEPT_SET
- Fix bug 49 - mishandling by slony_logshipper of quotes &
backslashes.
- Fix bug 50 - slony_logshipper had a variable access *after*
memory was freed
Changes 1.2.13:
- Fixed problem with compatibility with PostgreSQL 8.3; function
typenameTypeId() has 3 arguments as of 8.3.
- Added in logic to ensure that max number of SYNCs grouped together is
actually constrained by config parameter sync_group_maxsize.
- Fix to show_slony_configuration - point to proper directory where
slon/slonik are actually installed.
- Fix to slonik Makefile + slonik.c - Change slonik build to query
Postgres for the share directory at runtime - per Dave Page
- Removed spurious NOTIFY on "_%s_Confirm"; this is no longer needed
- Fixed problem with DDL SCRIPT parser where C-style comments were
not being processed properly
- Added stored functions and documentation for adding empty tables
(notably *partitions*) to replication. Note these functions
do no work when not specifically requested.
- Added a fairly substantial partitioning test to exercise the
new stored functions above.
- Backport "listen path" generator function from CVS HEAD (2.0) to
1.2 branch.
- Fixed a problem with "EXECUTE SCRIPT" (introduced in remote_worker.c
version 1.124.2.13) where moving the relevant code into a subroutine
at the end led to losing the "BEGIN; SET TRANSACTION ISOLATION LEVEL
SERIALIZABLE;" query that needs to be the first thing run...
- Fixing the archive sequence generations (in log shipping). All
non-SYNC events must start the local transaction before creating the
archive as well, so that the lock on the archive counter table
serializes archive creation.
- Fixed logging done in local_listener.c - various places, there was
no '\n' in some cases, which would lead to entries being folded
together.
- Fix launch_slons.sh - was not stripping quotes from PID file name
- Error handling for "ERROR: could not serialize access due to
concurrent update"
- Fixes to slonik_build_env script - it wasn't properly handling
cases where there was just 1 table or 1 sequence, and had a
problem with the -schema option - thanks, Bernd Helmle
It has a support for newer PostgreSQL versions, also various
improvements and bugfixes. Details could be found in the
RELEASE-1.2.{0-9} files of the source package.
Reviewed by joerg@
- A major revision of memory management to limit memory usage by slon
daemons.
- Log switching: periodically
- pg_listener is now used dramatically less than it used to be, which
diminishes the number of dead tuples you will find in this table.
- DDL scripts are broken into individual statements
- Slony-I tables are now marked "WITHOUT OIDS" so that they do not
consume OIDS.
- When possible (based on log switching functionality), partial
indexes on sl_log_1 and sl_log_2 are created on a per-origin-node
basis.
- More...
and failover.
The big picture for the development of Slony-I is a master-slave system that
includes all features and capabilities needed to replicate large databases to
a reasonably limited number of slave systems.
Slony-I is a system for data centers and backup sites, where the normal mode
of operation is that all nodes are available