aemplate Version: @(#)onepager.txt 1.35 07/11/07 SMI Copyright 2007 Sun Microsystems 1. Introduction 1.1. Project/Component Working Name: Integrate PostgreSQL version 8.3 into Solaris 1.2. Name of Document Author/Supplier: Bjorn Munch 1.3. Date of This Document: 12/19/07 1.3.1. Date this project was conceived: 08/01/07 1.4. Name of Major Document Customer(s)/Consumer(s): 1.4.1. The PAC or CPT you expect to review your project: Database PAC 1.4.2. The ARC(s) you expect to review your project: LSARC 1.4.3. The Director/VP who is "Sponsoring" this project: Heidi.Bergh-Hoff@sun.com 1.4.4. The name of your business unit: Software 1.5. Email Aliases: 1.5.1. Responsible Manager: Yngve.Svendsen@sun.com 1.5.2. Responsible Engineer: Bjorn.Munch@sun.com 1.5.3. Marketing Manager: Rebecca.Hansen@sun.com 1.5.4. Interest List: sun-postgres-pteam@sun.com 2. Project Summary 2.1. Project Description: PostgreSQL 8.2 was integrated in Nevada and in Solaris 10 update 4 after ARC case LSARC/2006/655 was approved in December 2006. This came in addition to version 8.1 (ARC case LSARC/2005/515). There were no outstanding TCAs. This case covers the integration of the next major version of PostgreSQL (8.3). This qualifies for micro/patch release binding. 2.2. Risks and Assumptions: [Modified from the text in LSARC/2006/655 as it's still valid] [In the following "8.1", "8.2" or "8.3" without qualification refer to the corresponding PostgreSQL version.] PostgreSQL is an open source product, and we (Sun) were not involved in its development. As in the ARC cases for PostgreSQL 8.1 and 8.2, we have to make a number of assumptions about its use of stable interfaces. However, PostgreSQL is a very mature and stable product that has been running on Solaris for many years. So we believe the technical risks are low. As was the case with PostgreSQL 8.2 versus 8.1, 8.3 is not backwards compatible with 8.2 regarding on-disk data format. Currently, an upgrade from 8.2 must be done by doing a dump from an 8.2 server, then importing into a new 8.3 database; this requires both versions to be available. Since 8.3 almost certainly will go into Nevada before this ships as Solaris 11, we have the opportunity to remove, or rather to not ship, 8.1. This will reduce the need for future support and get rid of the problems of having the oldest version under /usr/bin in the default path. This would however be problematic for customers still running 8.1 under Solaris 10 who want to upgrade to Solaris 11, as they would have to upgrade PostgreSQL and/or OS twice. We will be adding an upgrade solution to mitigate that problem. The fact that we *have* released SXDE with PostgreSQL 8.1 may complicate things; I'm not sure how that will affect our ability to release Solaris 11 without it. The business risk of integrating 8.3 is very low, but the risk of not integrating it is high - we would be seen as lagging behind the community with our releases, and throw into question our commitment to releasing and supporting up to date versions of open source products. 3. Business Summary 3.1. Problem Area: Many customers will need to run a database system, and PostgreSQL is a powerful, open source alternatvie to proprietary systems. By shipping this with Solaris, it's ready for use right out of the box. It's also important that new releases of Solaris include a reasonably up-to-date version of PostgreSQL. 3.2. Market/Requester: John Loiacono announced support for PostgreSQL on Solaris 10 on Nov 17th 2005. See http://www.sun.com/smi/Press/sunflash/2005-11/sunflash.20051117.1.xml 3.3. Business Justification: PostgreSQL is one of the most widely used open sorce database systems, but it's most often being run on Linux. We need to show that database solutions can be implemented at a low cost also on Solaris, and shipping and supporting PostgreSQL is an important part of this. Version 8.3 is considered a major release despite the seemingly minor numbering, as 8.2 was. The most important news are integrated text search, XML support and performance improvements in many areas. There are also a host of other small features as well as bug fixes too numerous to list here. 3.4. Competitive Analysis: 3.5. Opportunity Window/Exposure: PostgreSQL 8.3 is now in the final beta testing stage, and will likely be available from the community in January 2008 (no date fixed). I will make preparations (some hve already been done) so that I can hopefully integrate very soon after the community release, provided all paperwork has been completed by then. The upgrade solution is currently being implemented and is also expected to be ready in January. As for integration into Solaris 10, it's too late for update 5 but still should be plently of time to get it into update 6. 3.6. How will you know when you are done?: When the PostgreSQL 8.3 product is integrated into the Nevada SFW consolidation. 4. Technical Description: 4.1. Details: [Mostly reused text from the 8.2 ARC case as it also applies to 8.3.] Version 8.3 will be integrated into the SFW consolidation in the same way in which 8.2 was integrated. The two versions will coexist in the SFW consolodation, and be issued together with Solaris. The complete 8.3 product is modular, and will be packaged in a similar fashion to the way version 8.2 is packaged - In that there will be separate packages for client tools, server code, development tools, docs & man pages, JDBC driver, shared libraries and additional server procedural languages. In 8.3 there will also be an additional package for the upgrade solution. The version 8.3 packages will have names matching the corresponding 8.2 packages. SUNWpostgr-83-libs shared client and server libraries SUNWpostgr-83-client client tools SUNWpostgr-83-server-data-root database server (Root) SUNWpostgr-83-server database server (Usr) SUNWpostgr-83-contrib community contributed tools not part of core product SUNWpostgr-83-devel development tools, header files and libraries SUNWpostgr-83-docs documentation and man pages SUNWpostgr-83-pl additional Perl, Python & TCL server procedural languages SUNWpostgr-83-tcl Tcl binding library SUNWpostgr-upgrade Tools to upgrade PostgreSQL versions SUNWpostgr-jdbc JDBC 3 & JDBC 4 drivers The version 8.3 packages will install files into locations uniquely identified by the major version number so that multiple major versions can coexist on the same system: /usr/postgres// bin - Commands doc - Documentation (html) etc - Configuration files include - Header files jdbc - JDBC driver .jar file lib - Shared libraries (client & server) man - Man pages (1 & 5) share - SQL files, localized message files, sample files Under bin and lib there will also be subdirectories amd64 (on x86 systems) or sparcv9 (on Sparc systems), with a softlink '64' pointing to it; this will contain 64-bit libraries/commands. Version 8.2 had an issue with timezone files and whether or not to use the ones provided with the community version. In 8.3 this is no longer a problem, as the community source package now provides a configure option specifically for using system timezone files, which is what we want. For users wanting to upgrade from 8.1, we will provide an upgrade solution. The exact implementation details are not finalized, but it will come in a separate package which likely will include a few binaries from 8.1 and a script. It may include separate solutions for upgrade to 8.2 and to 8.3. 4.2. Bug/RFE Number(s): N/A 4.3. In Scope: 4.4. Out of Scope: A separate ARC case has being filed at the same time as this, asking for EOF of PostgreSQL 8.1 (LSARC/2008/005). This was requested by ARC when the case for integrating 8.2 was accepted. In addition to having to support it, the bad choice of install location that was made is another argument. Users (including myself!) get confusing results if they're not careful about always setting the PATH, and inadvertently run version 8.1 of e.g. psql while expecting 8.2 behaviour. 4.5. Interfaces: Binaries and libraries are as for PostgreSQL 8.2 except that the locations will be under /usr/postgres/8.3 instead of (or rather, in addition to) /usr/postgres/8.2. The first integration of 8.2 has been extended (integrated in Nevada b79) with 64 bit client libraries; this will also be done for 8.3. See LSARC/2007/553. This case also covers 64 bit server which is currently being done for 8.2; this work too will be included in the 8.3 integration. 4.6. Doc Impact: Minimal - Sun will not need to provide any new documentation with the product, as there is extensive documentation that accompanies it. There is one Sun produced document that accompanies PostgreSQL (a small installation & configuration guide), this will be updated to accomodate the new version of PostgreSQL. 4.7. Admin/Config Impact: None. There is a GUI admin tool, pgAdmin3, but this has been ARCed and integrated independently of this upgrade to the core product. 4.8. HA Impact: N/A 4.9. I18N/L10N Impact: No changes since PostgreSQL 8.2. 4.10. Packaging & Delivery: SUNWpostgr-83-client PostgreSQL 8.3 client tools SUNWpostgr-83-contrib PostgreSQL 8.3 community contributed tools not part of core product SUNWpostgr-83-devel PostgreSQL 8.3 development tools, header files and libraries SUNWpostgr-83-docs PostgreSQL 8.3 documentation and man pages SUNWpostgr-83-libs PostgreSQL 8.3 shared client and server libraries SUNWpostgr-83-pl PostgreSQL 8.3 additional Perl, Python & TCL server procedural languages SUNWpostgr-83-server PostgreSQL 8.3 database server SUNWpostgr-83-server-data-root PostgreSQL 8.3 database server data directories and root components SUNWpostgr-jdbc JDBC3 and JDBC4 version 8.3 build 603 SUNWpostgr-upgrade Tools to upgrade from PostgreSQL versions 4.11. Security Impact: PostgreSQL 8.3 will have the same security impact as version 8.2. 4.12. Dependencies: PostgreSQL 8.3 is dependent upon the following packages: SUNWPython The Python interpreter, libraries and utilities SUNWTcl Tcl - Tool Command Language SUNWTk Tk - TCL GUI Toolkit SUNWcar Core Architecture, (Root) SUNWcsd Core Solaris Devices SUNWcsl Core Solaris Libraries SUNWcsr Core Solaris, (Root) SUNWcsu Core Solaris, (Usr) SUNWj5rt JDK 5.0 Runtime Env. (1.5.0_01) SUNWkvm Core Architecture, (Kvm) SUNWlibms Math & Microtasking Libraries (Usr) SUNWlibmsr Math & Microtasking Libraries (Root) SUNWlxml The XML library SUNWlxsl The XSLT library SUNWopenssl-libraries OpenSSL Libraries (Usr) SUNWperl584core Perl 5.8.4 (core) SUNWperl584usr Perl 5.8.4 (non-core) SUNWzlib The Zip compression library SUNWkrbu Kerberos version 5 support (Usr) SUNWkdcu Kerberos V5 Master KDC (user) 5. Reference Documents: All material associated with the original ARC case to integrate PostgreSQL 8.1 can be found at: http://sac.sfbay.sun.com/LSARC/2005/515/ Material associated with the ARC case to integrate PostgreSQL 8.2 can be found at: http://sac.sfbay.sun.com/LSARC/2006/655/ PostgreSQL 8.3 information can be found at: http://www.postgresql.org/ 6. Resources and Schedule: 6.1. Projected Availability: This depends on when the PostgreSQL community formally announces 8.3, which is likely to happen in the first half of January 2008, and when our upgrade solution is ready, also likely in January 2008. 6.2. Cost of Effort: A few man weeks to implement the upgrade path from 8.1; this work is currently ongoing. Otherwise minimal, since it only consist of building and packaging, and this can easily be adapted from what was done for 8.2. Also, building and testing has already been done for community beta releases. 6.3. Cost of Capital Resources: None. 6.4. Product Approval Committee requested information: 6.4.1. Consolidation or Component Name: SFW 6.4.3. Type of CPT Review and Approval expected: FastTrack 6.4.4. Project Boundary Conditions: N/A 6.4.5. Is this a necessary project for OEM agreements: No 6.4.6. Notes: 6.4.7. Target RTI Date/Release: ASAP after the community releases 8.3. 6.4.8. Target Code Design Review Date: 6.4.9. Update approval addition: 6.5. ARC review type: FastTrack 6.6. ARC Exposure: open 6.6.1. Rationale: N/A 7. Prototype Availability: 7.1. Prototype Availability: N/A 7.2. Prototype Cost: N/A