Template Version: @(#)onepager.txt 1.35 07/11/07 SMI Copyright 2007 Sun Microsystems 1. Introduction 1.1. Project/Component Working Name: EOL of Berkeley DB 4.2 in Solaris. 1.2. Name of Document Author/Supplier: Karen Langford 1.3. Date of This Document: 03/05/09 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: Jeffrey.Pugh@sun.com 1.4.4. The name of your business unit: Software 1.5. Email Aliases: 1.5.1. Responsible Manager: Lars.Heill@sun.com 1.5.2. Responsible Engineer: Karen.Langford@sun.com 1.5.3. Marketing Manager: Rebecca.Hansen@sun.com 1.5.4. Interest List: sleepycat-productgroup-users@sun.com 2. Project Summary 2.1. Project Description: The Berkeley DB (BDB) 4.2 release was approved by ARC back in 2003 and integrated into Nevada and Solaris in 2007. In 2008 the latest release of Berkeley DB 4.7 was approved by ARC and integrated into Nevada along with the old 4.2 release. This project proposes the EOL and removal of the 4.2 release from Nevada. 2.2. Previous relevant ARC cases LSARC/2003/585 BDB 4.2 - Integrated into Solaris 10 and Nevada LSARC/2008/570 BDB 4.7 - Integrated along with BDB 4.2 into Nevada Note BDB 4.2 is not in OpenSolaris, neither is 4.7. 2.3. Risks and Assumptions: As we propose to leave 4.2 in the Solaris Updates we see no risks there. We will commit to delivering critical bug fixes for the duration of the Update's Active Service Life. We also see no risk in regards to removing 4.2 from Nevada as S11 has not been offically released. We contacted our sole Nevada customer, Evolution, and they confirmed that they have upgraded their product to use 4.7. 3. Business Summary 3.1. Problem Area: As mentioned above we foresee no problems with removing 4.2 from Nevada. 3.2. Market/Requester: Database Technology Group. This was recommended in the discussions around the ARC case for BDB 4.7 (LSARC/2008/570). 3.3. Business Justification: We want to reduce the amount of resources needed to sustain the old 4.2 release in the future. 3.4. Competitive Analysis: N/A 3.5. Opportunity Window/Exposure: We want to remove 4.2 from Nevada before FCS in 2010. We also want to include the EOF announcement in the S10U7 release notes. Deadline is March 30, 08. 3.6. How will you know when you are done?: When 4.2 has been removed from the ONNV consolidation. 4. Technical Description: 4.1. Details: This project will remove the 4.2 software from the following packages delivered to Nevada: SUNWbdb - Berkeley DB for C/C++ applications SUNWbdbj - Berkeley DB for Java applications 4.2. Bug/RFE Number(s): 6813821 4.3. Doc Impact: We will announce the EOL of 4.2 in S10U7 release notes. 4.4. Admin/Config Impact: None. 4.5. HA Impact: N/A 4.6. I18N/L10N Impact: No. 4.7. Packaging & Delivery: SUNWbdb - Berkeley DB for C/C++ applications SUNWbdbj - Berkeley DB for Java applications 4.7.1. Packages: Cluster id: SUNWCbdb Metaclusters: SUNWCXall, SUNWCall, SUNWCprog, SUNWCuser, SUNWreq Cluster name: BerkeleyDB-Base Packages: SUNWbdb, SUNWbdbj 4.7.2. Package Layout For both the Solaris updates and Nevada, BDB 4.2 is currently installed under: /usr/lib/bdb - c utilities /usr/lib - libraries (versioned ie: libdb.so.1, libdb_java.so.1) /usr/share - db.jar In Nevada, BDB 4.7 is delivered under: /usr/lib/bdb47 - c utilities /usr/lib - libraries (versioned ie: libdb.so.5, libdb_java.so.5) /usr/share/bdb47 - db.jar 4.7.3. Proposed change for Nevada delivery We will update both packages, removing the 4.2 software prior to integrating into Nevada. See [1] for new package layout. 4.8. Upgrading Nevada customers using 4.2 must upgrade their products to use 4.7. As mentioned above, Evolution, our sole customer, has already upgraded their product. The topic of upgrading from 4.2 to 4.7 was discussed in LSARC 2008/570, below is the relevant section from that case: "The BDB software does not automatically inform applications that a new release is available. The decision to upgrade must be made by the customer. Existing applications will continue to access the old library (4.2) until the user performs the manual steps required to upgrade which include linking to the new library and recompiling. Before performing an upgrade customers must backup their database and log files. The upgrade process for the Berkeley database requires that customers perform a number of manual steps. These steps are clearly documented in Chapter 31 of BDB's Reference manual and must be followed by the customer. http://www.oracle.com/technology/documentation/berkeley-db/db/ref/toc.html The Berkeley database does provided a db_upgrade utility which must be used as part of the upgrade procedure. The 4.7 release introduces a number of modifications to existing APIs in the form of method name changes, and new parameters. These incompatibilities with the previous release may be transparent to a customer's application, depending on how the application is coded. An example of an API change in moving from 4.2 to 4.7: DB Cursor APIs were renamed from (for example) dbc->c_close() to dbc->close(). All code referencing these APIs would have to be updated. As part of the upgrade procedure each customer must determine whether their application requires modification based on changes introduced by 4.7. Again, this information is available in BDB's reference manual." 4.9. Interfaces: All interfaces provided by the 4.2 software will be deleted. See Appendix A for full list. 4.10. Security Impact: No impact. 5. Reference Documents: Berkeley DB Public Websites: http://www.oracle.com/technology/products/berkeley-db/index.html Berkeley DB 4.7.25 Release Notes: http://www.oracle.com/technology/documentation/berkeley-db/db/ref/changelog/4.7.html References: [1] ./pkgmaps.txt 6. Resources and Schedule: 6.1. Projected Availability: This project will be included in Nevada. This project will not be included in S10, note S10 include BDB 4.2 but not 4.7. This project will not be included in OpenSolaris. 6.2. Cost of Effort: Minimal; just removal of a component within packages. 6.3. Cost of Capital Resources: None. 6.4.1. Consolidation or Component Name: ON 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.5. ARC review type: FastTrack 7. Prototype Availability: 7.1. Prototype Availability: BDB 4.7.25 binaries are available to test. 7.2. Prototype Cost: Minimal. Appendix A FULL LIST of EXPORTED INTERFACES in BDB 4.2.52: Proposed Former Stability Interface Stability Classification Name Classification and Other Comments ------------------ ------------- ---------------------------------- C API Obsolete Formerly External, Removed in a Volatile Minor release of Solaris C++ API Obsolete Formerly External, Removed in a Volatile Minor release of Solaris Java API Obsolete Formerly External, Removed in a Volatile Minor release of Solaris TCL API Obsolete Formerly External, Removed in a Volatile Minor release of Solaris DB_HOME env Obsolete Formerly External, Removed in a Variable Volatile Minor release of Solaris Used to configure the location of db files. DB_CONFIG Obsolete Formerly External, Removed in a config file Volatile Minor release of Solaris Used to configure a database database file Obsolete Removed in a Minor release of Solaris Project Private transaction log Obsolete Removed in a Minor release of Solaris Project Private temporary backing Obsolete Removed in a Minor release of Solaris files Project Private db_archive Obsolete Formerly Unstable, Removed in a Uncommitted minor release of Solaris db_checkpoint Obsolete Formerly Unstable, Removed in a Uncommitted minor release of Solaris db_deadlock Obsolete Formerly Unstable, Removed in a Uncommitted minor release of Solaris db_dump Obsolete Formerly Unstable, Removed in a Uncommitted minor release of Solaris db_load Obsolete Formerly Unstable, Removed in a Uncommitted minor release of Solaris db_printlog Obsolete Formerly Unstable, Removed in a Uncommitted minor release of Solaris db_recover Obsolete Formerly Unstable, Removed in a Uncommitted minor release of Solaris db_stat Obsolete Formerly Unstable, Removed in a Uncommitted minor release of Solaris db_upgrade Obsolete Formerly Unstable, Removed in a Uncommitted minor release of Solaris db_verify Obsolete Formerly Unstable, Removed in a Uncommitted minor release of Solaris