Template Version: @(#)sac_nextcase 1.66 04/17/08 SMI
This information is Copyright 2008 Sun Microsystems
1. Introduction
    1.1. Project/Component Working Name:
         Provide Slony as a replication tool for PostgreSQL on Solaris and 
OpenSolaris distributions
    1.2. Name of Document Author/Supplier:
         Author:  Satyanarayana Bodapati
    1.3  Date of This Document:
        23 June, 2008
4. Technical Description

This information is Copyright 2007 Sun Microsystems

1. Introduction
   1.1. Project/Component Working Name:
         Slony-1 - Provide Slony as a replication tool for PostgreSQL on
         Solaris and OpenSolaris distributions

   1.2. Name of Document Author/Supplier:
         Satyanarayana Bodapati

   1.3. Date of This Document:
         2008-06-17

   1.4. Name of Major Document Customer(s)/Consumer(s):
        1.4.1. The Community you expect to review your project:
        Databases

        1.4.2. The ARC(s) you expect to review your project:
        LSARC

   1.5. Email Aliases:
        1.5.1. Responsible Manager:
        Masood Mortazavi<Masood.Mortazavi at Sun.COM>

        1.5.2. Responsible Engineer:
        Satya Narayana <satya.bn at sun.com>
 
        1.5.3. Marketing Manager:
        Rebecca Hansen <rebecca.hansen at sun.com>

        1.5.4. Interest List:
        databases-discuss at sun.com
        postgresql-techteam at sun.com
        sun-postgres-pteam at sun.com

2. Project Summary
   2.1. Project Description:
        Slony-I is a "master to multiple slaves" replication system
        supporting cascading and failover.It is used as replication 
        service for PostgreSQL Database. This project aims to 
        provide Slony-I as a part of the Solaris and OpenSolaris 
        distribution(s).

         This project qualifies for micro/patch release binding

  2.2. Risks and Assumptions:
        It is assumed that porting the Slony1 to Solaris may cause
        modifications of the Slony1 code so that it will run properly
        on the Solaris platform. The modifications (if any) are 
        expected to be minor.

3. Business Summary
   3.2. Market/Requester:
        Slony-I is requirement from the Databases P-Team.
        Also requested by BBC and TJAT.

4. Technical Description:
    4.1. Details:
        
        Slony-I is a "master to multiple slaves" replication system 
        supporting cascading and failover.This can be used as
        replication service for PostgreSQL database.It can be started 
        and stopped on an existing database without the need for a 
        dump/reload cycle. It can be used for 24X7 uptime and workload
        distribution. 


    4.5. Interfaces:

        Slony is a replication software that strongly depends on a
        specific version of the PostgreSQL RDBMS.  As such,
        the slony libraries will be placed in the same directory tree 
        as the corresponding PostgreSQL version. It is an OSS project,
        not controlled by Sun, so interface stability can't
        be guaranteed.


 
        Exported interfaces:

        Interface                               Stability     Comments
        ------------------------------------------------------------------------
        SUNWslony1                              Committed    Package name
        SUNWpostgr-82-slony                     Committed    Package name
        SUNWpostgr-83-slony                     Committed    Package name
        SUNWslony1-SMF                          Committed    Package name
        /usr/postgres/slony                     Committed    Installation dir
        /usr/postgres/slony/*                   Uncommitted  Slony product files
        /usr/postgres/8.x/lib/slony1_funcs.so   Uncommitted  PostgreSQL version
                                                             dependent library
        /usr/postgres/8.x/lib/xxid.so           Uncommitted  PostgreSQL version
                                                             dependent library  
        
        /var/slony/                             Committed    Default data dir
        /var/slony/slon.conf                    Committed    Default config file


        Imported interfaces:

        Interface                               Stability     Comments
        -----------------------------------------------------------------------
        /usr/postgres/8.2/lib                   Committed     LSARC/2006/655
        /usr/postgres/8.3/lib                   Committed     LSARC/2008/004

    4.9. I18N/L10N Impact:
         The messages produced by Slony are not localized.The locale used is
         always en_US.

    4.10  Packaging & Delivery

          Slony built with particular PostgreSQL Version, works with only 
          that PostgreSQL version ,i.e. slony built on PostgreSQL 8.2 works
          only against PostgreSQL 8.2 as it needs  PostgreSQL 8.2 libraries.
          So we need to have different slony packages for each PostgreSQL 
          version. The packaging structure is as below.
          
          We have a single package SUNWslony1 which has common files to all 
          Slony versions and version dependent packages like 
          SUNWpostgr-83-slony,SUNWpostgr-82-slony which contains the
          version dependent libraries.

         SUNWslony1 (common files)
                
         /usr/postgres/slony/bin/slon
         /usr/postgres/slony/bin/slonik
         /usr/postgres/slony/bin/slony_logshipper
         /usr/postgres/slony/share/slony1_base.sql
         /usr/postgres/slony/share/slony1_base.v74.sql
         /usr/postgres/slony/share/slony1_base.v80.sql
         /usr/postgres/slony/share/slony1_base.v81.sql
         /usr/postgres/slony/share/slony1_funcs.sql
         /usr/postgres/slony/share/slony1_funcs.v74.sql
         /usr/postgres/slony/share/slony1_funcs.v80.sql
         /usr/postgres/slony/share/slony1_funcs.v81.sql
         /usr/postgres/slony/share/xxid.v74.sql
         /usr/postgres/slony/share/xxid.v80.sql
         /usr/postgres/slony/share/xxid.v81.sql
         /usr/postgres/slony/share/slon-tools.pm
         /usr/postgres/slony/etc/slon_tools.conf-sample
         /usr/postgres/slony/bin/slon_kill*
         /usr/postgres/slony/bin/slon_start*
         /usr/postgres/slony/bin/slon_watchdog*
         /usr/postgres/slony/bin/slon_watchdog2*
         /usr/postgres/slony/bin/slonik_build_env*
         /usr/postgres/slony/bin/slonik_create_set*
         /usr/postgres/slony/bin/slonik_drop_node*
         /usr/postgres/slony/bin/slonik_drop_set*
         /usr/postgres/slony/bin/slonik_drop_table*
         /usr/postgres/slony/bin/slonik_execute_script*
         /usr/postgres/slony/bin/slonik_failover*
         /usr/postgres/slony/bin/slonik_init_cluster*
         /usr/postgres/slony/bin/slonik_merge_sets*
         /usr/postgres/slony/bin/slonik_move_set*
         /usr/postgres/slony/bin/slonik_print_preamble*
         /usr/postgres/slony/bin/slonik_restart_node*
         /usr/postgres/slony/bin/slonik_store_node*
         /usr/postgres/slony/bin/slonik_subscribe_set*
         /usr/postgres/slony/bin/slonik_uninstall_nodes*
         /usr/postgres/slony/bin/slonik_unsubscribe_set*
         /usr/postgres/slony/bin/slonik_update_nodes*
         /usr/postgres/slony/bin/slony_show_configuration*
         /usr/postgres/slony/man/man1/slon.1
         /usr/postgres/slony/man/man1/slonik.1
         /usr/postgres/slony/man/man7/admin_conninfo.7
         /usr/postgres/slony/man/man7/cluster_name.7
         /usr/postgres/slony/man/man7/create_set.7
         /usr/postgres/slony/man/man7/define.7
         /usr/postgres/slony/man/man7/drop_listen.7
         /usr/postgres/slony/man/man7/drop_node.7
         /usr/postgres/slony/man/man7/drop_path.7
         /usr/postgres/slony/man/man7/drop_set.7
         /usr/postgres/slony/man/man7/drop_trigger.7
         /usr/postgres/slony/man/man7/echo.7
         /usr/postgres/slony/man/man7/execute_script.7
         /usr/postgres/slony/man/man7/exit.7
         /usr/postgres/slony/man/man7/failover.7
         /usr/postgres/slony/man/man7/include.7
         /usr/postgres/slony/man/man7/init_cluster.7
         /usr/postgres/slony/man/man7/lock_set.7
         /usr/postgres/slony/man/man7/merge_____set.7
         /usr/postgres/slony/man/man7/move_set.7
         /usr/postgres/slony/man/man7/repair_config.7
         /usr/postgres/slony/man/man7/restart_node.7
         /usr/postgres/slony/man/man7/set_add_sequence.7
         /usr/postgres/slony/man/man7/set_add_table.7
         /usr/postgres/slony/man/man7/set_drop_sequence.7
         /usr/postgres/slony/man/man7/set_drop_table.7
         /usr/postgres/slony/man/man7/set_move_____table.7
         /usr/postgres/slony/man/man7/set_move_sequence.7
         /usr/postgres/slony/man/man7/sleep.7
         /usr/postgres/slony/man/man7/store_____path.7
         /usr/postgres/slony/man/man7/store_listen.7
         /usr/postgres/slony/man/man7/store_node.7
         /usr/postgres/slony/man/man7/store_trigger.7
         /usr/postgres/slony/man/man7/subscribe_set.7
         /usr/postgres/slony/man/man7/sync.7
         /usr/postgres/slony/man/man7/table_add_key.7
         /usr/postgres/slony/man/man7/uninstall_node.7
         /usr/postgres/slony/man/man7/unlock_set.7
         /usr/postgres/slony/man/man7/unsubscribe_set.7
         /usr/postgres/slony/man/man7/update_functions.7
         /usr/postgres/slony/man/man7/wait_for_event.7
         
        SUNWpostgr-83-slony(slony libraries for PostGres 8.3)
         /usr/postgres/8.3/lib/xxid.so
         /usr/postgres/8.3/lib/slony1_funcs.so          


        SUNWpostgr-82-slony (slony libraries for PostGres 8.2)
         /usr/postgres/8.2/lib/xxid.so
         /usr/postgres/8.2/lib/slony1_funcs.so
        

         SUNWslony-SMF (SMF package for slony)
                                
         /var/svc/manifest/application/database/slony/slony.xml
         /lib/svc/method/slony
         /var/slony/ - default data directory for slony
         /var/slony/slon.conf - default location for slony configuration file 
         

          The SMF Package for slony starts,stop,refresh a SLON daemon.
          Runs slony as postgres user.
        
          Properties to be defined by svcprop command:

          config_file  -  configuration file for slon daemon
          data_dir     -  data directory for storing pid file, log files 
          cluster_name -  name of the cluster (default slony_cluster)
          conn_info    -  connection info for slon daemon (default is
                          'host=localhost dbname=postgres 
                           user=postgres port=5432')

          After providing the above parameters the user can do

          svcadm slony start
                
          This starts the slon daemon which is responsible for managing
          replication activity for that node by sending/receiving the 
          configuration events across the cluster.
                                        
          svcadm slony stop 

          This stops the slon deamon which inturn stops the replication 
          of the node.

          svcadm slony refresh

          This stops and starts slon daemon which allows the slon daemon
          to start with new parameters if changed in the configuration file.

        Slony package updates are released only for the latest PostgreSQL
        version.                                

    4.11. Security Impact

         Slony communicates to other nodes by using PostgreSQL libpq library 
         and can be used with or without SSL.By default postgres clients(slony
         nodes) can only establish local Unix Domain Socket connections, and 
         they have to change the configuration file to open up access further.

    4.12. Dependencies:


        Package SUNWslony1:
        
        SUNWperl584core        Perl 5.8.4 programming language (core)

        Package SUNWpostgr-82-slony:

        SUNWslony1             Slony-I PostgreSQL replication system
        SUNWpostgr-82-server   PostgreSQL 8.3 database server
        SUNWpostgr-82-libs     PostgreSQL 8.3 client libraries


        Package SUNWpostgr-83-slony:

        SUNWslony1             Slony-I PostgreSQL replication system
        SUNWpostgr-83-server   PostgreSQL 8.3 database server
        SUNWpostgr-83-libs     PostgreSQL 8.3 client libraries


        Package SUNWslony1-SMF:

        SUNWslony1             Slony-I PostgreSQL replication system


5. Reference Documents:

        Project Site:
        http://www.slony.info/

        LSARC/2008/004 "Integrate PostgreSQL version 8.3 into Solaris"

6. Resources and Schedule:
   6.1. Projected Availability:
        Q4FY08

   6.4. Product Approval Committee requested information:
        6.4.1. Consolidation or Component Name:
        SFW     

   6.5. ARC review type:
        FastTrack



6. Resources and Schedule
    6.4. Steering Committee requested information
        6.4.1. Consolidation C-team Name:
                sfw
    6.5. ARC review type: FastTrack
    6.6. ARC Exposure: open


Reply via email to