Merge lp:~nwilliams/akiban-persistit/release-notes-3.1.4 into lp:akiban-persistit

Proposed by Nathan Williams
Status: Merged
Approved by: Peter Beaman
Approved revision: 349
Merged at revision: 347
Proposed branch: lp:~nwilliams/akiban-persistit/release-notes-3.1.4
Merge into: lp:akiban-persistit
Diff against target: 235 lines (+180/-2)
3 files modified
README.rst (+64/-0)
build_release.sh (+36/-2)
doc/ReleaseNotes.rst (+80/-0)
To merge this branch: bzr merge lp:~nwilliams/akiban-persistit/release-notes-3.1.4
Reviewer Review Type Date Requested Status
Peter Beaman Approve
Review via email: mp+117998@code.launchpad.net

Description of the change

Update release notes, add simple README, and add md5 generation to release script.

Release notes are as Peter and Tim previously put together, with slight elaboration, summaries and formatting.

Simple md5 generation on all the resulting artifacts from the release script so the Jenkins job doesn't have to do it.

Also add a simple README file that was cobbled together from the introduction to the ReleaseNotes and the first chunk of the GettingStarted docs. It's a simple start, that doesn't have the extra stuff in the release notes, and also makes the project look nice on GitHub (see https://github.com/nathanlws/persistit#readme).

LBJ: NO_BUILD

To post a comment you must log in.
Revision history for this message
Peter Beaman (pbeaman) wrote :

Excellent. Thanks for the cleanup and the README file.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'README.rst'
2--- README.rst 1970-01-01 00:00:00 +0000
3+++ README.rst 2012-08-02 21:28:43 +0000
4@@ -0,0 +1,64 @@
5+************************************
6+Akiban Persistit
7+************************************
8+
9+Overview
10+========
11+We have worked hard to make Akiban Persistit™ exceptionally fast, reliable, simple and lightweight. We hope you will enjoy learning more about it and using it.
12+
13+Akiban Persistit is a key/value data storage library written in Java™. Key features include:
14+
15+- Support for highly concurrent transaction processing with multi-version concurrency control
16+- Optimized serialization and deserialization mechanism for Java primitives and objects
17+- Multi-segment (compound) keys to enable a natural logical key hierarchy
18+- Support for long records (megabytes)
19+- Implementation of a persistent SortedMap
20+- Extensive management capability including command-line and GUI tools
21+
22+See http://www.akiban.com/akiban-persistit for a more detailed summary of features and benefits, licensing information and how to get support.
23+
24+Documentation
25+=============
26+Users Guide: http://www.akiban.com/ak-docs/admin/persistit
27+
28+JavaDoc: http://www.akiban.com/sites/all/libraries/persistit-api/index.html
29+
30+Building Akiban Persistit From Source
31+=====================================
32+Use Maven (http://maven.apache.org) to build Persistit.
33+
34+To build::
35+
36+ mvn install
37+
38+The resulting jar files are in the ``target`` directory. To build the Javadoc::
39+
40+ mvn javadoc:javadoc
41+
42+The resulting Javadoc HTML files are in ``target/site/apidocs``.
43+
44+Building and Running the Examples
45+---------------------------------
46+
47+Small examples are located in the ``examples`` directory. Each has a short README file describing the example, and an Ant build script (http://ant.apache.org). After building the main akiban-persisit jar file using Maven, you may run::
48+
49+ ant run
50+
51+in each of the examples subdirectories to build and run the examples.
52+
53+
54+Download and Install Akiban Persistit From Binaries
55+---------------------------------------------------
56+
57+Pre-built jars can be downloaded directlry from http://akiban.com/akiban-persistit.
58+
59+Unpack the distribution kit into a convenient directory using the appropriate utility (e.g. unzip or tar).
60+
61+Review the ``LICENSE.txt`` file located in the root of the installation directory. Persistit is licensed under the Eclipse Public License or a free-use community license, see our `licensing options <http://www.akiban.com/akiban-licensing-options>`_ for more details. By installing, copying or otherwise using the Software contained in the distribution kit, you agree to be bound by the terms of the license agreement. If you do not agree to these terms, remove and destroy all copies of the software in your possession immediately.
62+
63+Working With Persistit
64+----------------------
65+
66+Add the ``akiban-persistit-3.1.4.jar`` file, found in the root directory of the distribution kit, to your project's classpath. For example, copy it to ``jre/lib/ext`` in your Java Runtime Environment, or add it to your classpath environment variable.
67+
68+That's it. You are ready to work with Persistit.
69
70=== modified file 'build_release.sh'
71--- build_release.sh 2012-08-02 14:45:58 +0000
72+++ build_release.sh 2012-08-02 21:28:43 +0000
73@@ -46,6 +46,36 @@
74 mvn $2 -DBZR_REVISION="$1" -DskipTests=true clean compile test-compile package >/dev/null
75 }
76
77+MD5_TYPE=""
78+function md5_type {
79+ if [ "$(which md5sum)" != "" ]; then
80+ MD5_TYPE="md5sum"
81+ else
82+ if [ "$(which md5)" != "" ]; then
83+ MD5_TYPE="md5"
84+ else
85+ echo " No supported md5 program found in PATH" 1>&2
86+ exit 1
87+ fi
88+ fi
89+}
90+
91+function do_md5 {
92+ OUTFILE="${1}.md5"
93+ case "${MD5_TYPE}" in
94+ md5)
95+ $(md5 -r "$1" |sed 's/ / /' > "${OUTFILE}")
96+ ;;
97+ md5sum)
98+ $(md5sum "$1" > "${OUTFILE}")
99+ ;;
100+ *)
101+ echo "Unknown md5 type: ${MD5_TYPE}"
102+ exit 1
103+ ;;
104+ esac
105+}
106+
107
108 REQUIRED_PROGS="bzr mvn javac sphinx-build curl awk sed tr basename zip tar gpg"
109 BRANCH_DEFAULT="lp:~akiban-technologies/akiban-persistit"
110@@ -58,7 +88,7 @@
111 while getopts "hb:v:w:" FLAG; do
112 case "${FLAG}" in
113 h) ;;
114- b) BRANCH="${OPTARG}" ;;
115+ b) BRANCH_URL="${OPTARG}" ;;
116 v) VERSION="${OPTARG}" ;;
117 w) WORKSPACE="${OPTARG}" ;;
118 *) echo "Unhandled option" 1>&2 ; exit 1 ;;
119@@ -70,7 +100,7 @@
120 exit 1
121 fi
122
123-if [ "${BRANCH}" = "" ]; then
124+if [ "${BRANCH_URL}" = "" ]; then
125 BRANCH_URL="${BRANCH_DEFAULT}/${VERSION}"
126 fi
127
128@@ -88,6 +118,9 @@
129 fi
130 done
131
132+echo "Checking for md5 program"
133+md5_type
134+
135
136 NAME="akiban-persistit"
137 BRANCH_DIR="${WORKSPACE}/${VERSION}"
138@@ -191,6 +224,7 @@
139 echo "Signing files for Launchpad upload"
140 for FILE in `ls *.zip *.tar.gz`; do
141 gpg --armor --sign --detach-sig "${FILE}" 1>/dev/null
142+ do_md5 "${FILE}"
143 done
144 fi
145
146
147=== modified file 'doc/ReleaseNotes.rst'
148--- doc/ReleaseNotes.rst 2012-07-13 13:33:22 +0000
149+++ doc/ReleaseNotes.rst 2012-08-02 21:28:43 +0000
150@@ -45,6 +45,86 @@
151 |
152
153 ************************************
154+3.1.4
155+************************************
156+
157+Release Date
158+============
159+August 3, 2012
160+
161+Overview
162+========
163+This version of Persistit changes the licensing to Eclipse Public License (EPL) and includes minor enhancements and bug fixes.
164+
165+New Features
166+============
167+
168+Detection and Ignoring of Missing Volumes
169+-----------------------------------------
170+
171+Warnings are now issues when a previously existing volume is missing, and an option to allow a system to continue by ignoring pages and transactions in the journal from missing volumes.
172+
173+Every time Persistit writes a modified page to disk, it does so first to the journal. During recovery processing, the page images from the journal are analyzed and reinserted into volumes in such a way that all B+Trees are restored to a consistent state. The issue addressed in this change is how Persistit behaves during recovery if it discovers that a volume referred to by a page in the journal no longer exists.
174+
175+Recognizing that under some circumstances an administrator may indeed wish to remove a volume from an existing Database, this change provides a configurable switch to optionally allow pages from missing volumes to be skipped (with logged warning messages) during recovery processing. The switch can be enabled by setting the configuration parameter ignoreMissingVolumes to true, see com.persistit.Configuration#setIgnoreMissingViolumes.
176+
177+
178+Reduce KeyCoder Serialized Object Size
179+--------------------------------------
180+
181+.. note::
182+ Any Database containing objects serialized by a custom KeyCoder from a previous version of Persistit is incompatible with this change
183+
184+Minimize the per-instance overhead for application objects written into Persistit Keys by reducing the size of the internal identifier.
185+
186+Persistit has rich support for serializing standard Java primitive and object types into a Key. Additionally, the KeyCoder class allows for any application level object to also be appended to a Key right next to any other type. This is tagged internally with per-class handles. This change lowers the initial offset to, in many cases, halve the serialized size.
187+
188+Maven POM Changes For Eclipse Juno
189+----------------------------------
190+
191+The latest version of Eclipse, code named Juno, features a wide array of changes, including a new release of the m2eclipse plugin. In an effort to make getting started with Persistit as easy as possible, we have included the required m2e configuration sections in our pom.
192+
193+Please contact Akiban if you have encounter any issues getting up and running with Persistit.
194+
195+Fixed Issues
196+============
197+
198+Old Journal Files Not Being Deleted
199+-----------------------------------
200+
201+https://launchpad.net/akiban-persistit/+bug/1028016
202+
203+If a volume was removed from the configuration and Persistit was restarted the associated journal files would not be removed due to internal safety checks. In the event that the missing volume is intended behavior, a new configuration option was added. See the ``Detection and Ignoring of Missing Volumes`` feature description for more details.
204+
205+Class Index Updates Causing Write-Write Dependencies
206+----------------------------------------------------
207+
208+https://launchpad.net/akiban-persistit/+bug/1024857
209+
210+https://launchpad.net/akiban-persistit/+bug/1026207
211+
212+Custom classes that are serialized into keys or values, through a custom KeyCoder or ValueCoder, are given a unique identifier. The identifier is determined transactionally the first time a class is written and stored in an internal tree. This would cause seemingly spurious aborts if more than one application threads simultaneously attempt to store the first instance of a given class.
213+
214+Accumulator Memory Usage and Transaction Step Policy
215+----------------------------------------------------
216+
217+https://launchpad.net/akiban-persistit/+bug/1028050
218+
219+https://launchpad.net/akiban-persistit/+bug/1028134
220+
221+Changes to Accumulators are stored were previously stored as individual Delta objects. For long running transactions that heavily utilized Accumulators, this would cause excessive memory usage. These unique instances are no eliminated in most scenarios, resulting in no memory growth in all but pathological cases.
222+
223+Additionally, the Accumulator handling of the Transaction step value was inconsistent with how it was treated through an Exchange. Now, both classes allow a given step x to see any change that occurred at a step less than or equal to itself.
224+
225+
226+Known Issues
227+============
228+As described in the *3.1.1 Known Issues*.
229+
230+|
231+|
232+
233+************************************
234 3.1.2
235 ************************************
236

Subscribers

People subscribed via source and target branches