Akiban Persistit 3.1.2
Released branch: lp:~akiban-technologies/akiban-persistit/3.1.2
Milestone information
- Project:
- Akiban Persistit
- Series:
- trunk
- Version:
- 3.1.2
- Released:
- Registrant:
- Nathan Williams
- Release registered:
- Active:
- No. Drivers cannot target bugs and blueprints to this milestone.
Activities
- Assigned to you:
- No blueprints or bugs assigned to you.
- Assignees:
- 5 Peter Beaman
- Blueprints:
- No blueprints are targeted to this milestone.
- Bugs:
- 5 Fix Released
Download files for this release
Release notes
*******
Akiban Persistit - 3.1.2
*******
Release Date
=============
July 13, 2012
Overview
=========
This is a bug fix release of the Persistit project
See http://
benefits, licensing information and how to get support.
Documentation
==============
Users Guide: http://
JavaDoc: http://
Building Akiban Persistit
=======
Use Maven (maven.apache.org) to build Persistit.
To build:
mvn install
The resulting jar files are in the target directory. To build the Javadoc:
mvn javadoc:javadoc
The resulting Javadoc HTML files are in target/
Building and Running the Examples
-------
Small examples are located in the examples directory. Each has a short
README file describing the example, and an Ant build script
(http://
Maven, you may run:
ant run
in each of the examples subdirectories to build and run the examples.
Buffer Pool Configuration
=======
For optimal performance, proper configuration of the Persistit buffer pool is
required. See section "Configuring the Buffer Pool" in the configuration
document http://
NOTE: Especially when used with multi-gigabyte heaps, the default Hotspot
JVM server heuristics are be suboptimal for Persistit applications. Persistit
is usually configured to allocate a large fraction of the heap to Buffer
instances that are allocated at startup and held for the duration of the
Persistit instance. For efficient operation, all of the Buffer instances must
fit in the tenured (old) generation of the heap to avoid very significant
garbage collector overhead. Use either -XX:NewSize or -Xmn to adjust the
relative sizes of the new and old generations.
Fixed Issues
=============
Infinite Loop When Repacking Buffer
-------
https:/
This was introduced late into the 3.1.1 development cycle. This could occur if
a buffer required restructuring during pruning of a long value that was
previously stored under a transaction. Upon the next save of this buffer to
disk (e.g. shutdown), an infinite loop would occur.
Corruption Exceptions During Various Operations
-------
https:/
NOTE:
Only the message indicates a database corruption. The data volume is
actually correct and intact.
This was introduced late into the 3.1.1 development cycle. This could occur if
pruning a buffer containing a long record previously stored under a transaction
required removal of keys and then that buffer was reused without further
modification. A parallel structure associated with the every Buffer, the
FastIndex, was not maintained during this operation.
Slow Accumulator Operations
-------
https:/
This bug preexisted but was unknown to the 3.1.1 release. If a thread starting
a new transaction was interrupted during the call to begin(), there was a
chance for an internal object to wind up in an invalid state. This invalid
state caused no visible consequences other than slower than expected
Accumulator actions if this had occurred many times.
B+Tree Corruption in Stress Test
-------
https:/
This bug preexisted but was unknown to the 3.1.1 release. An extremely rare
combination of events corrupted memory structures causing an incorrect
key-pointer pair to be inserted while deleting records in a key range. The bug
was detected in an 8-hour stress test run.
Slow Recovery Due to Temporary Tree IT Records
-------
https:/
This bug preexisted but was unknown to the 3.1.1 release. Every Tree created in
a temporary volume was being assigned a tree handle recorded permanently in the
journal. In one case the result was a journal containing millions of IT
(Identify Tree) records, and these caused normal recovery to take a very long
time. The fix keeps temporary trees out of the journal and removes IT records
which may have been added previously.
Asserts Added to Check for Correct Exchange Thread Behavior
-------
A bug in the Akiban Server code caused an Exchange to be used concurrently by
two Threads, causing serious and seemingly unrelated failures in Persistit
including instances of IllegalMonitorE
guard against future occurrences, asserts were added to catch such concurrent
use by multiple threads. Applications should be tested with asserts enabled to
verify correct thread usage.
Known Issues
=============
As described in the *3.1.1 Known Issues*.
Changelog
This release does not have a changelog.
0 blueprints and 5 bugs targeted
Bug report | Importance | Assignee | Status | |||
---|---|---|---|---|---|---|
1005206 | #1005206 | Stress test caused inifinite loop in repack() | 2 Critical | Peter Beaman | 10 Fix Released | |
1010079 | #1010079 | Corruption in stress test mixture_txn_1 | 2 Critical | Peter Beaman | 10 Fix Released | |
1017957 | #1017957 | Stress tests occasionally fail spectacularly | 2 Critical | Peter Beaman | 10 Fix Released | |
1012859 | #1012859 | Interrupt may leave TransactionStatus ABORTED but not Notified | 3 High | Peter Beaman | 10 Fix Released | |
1018526 | #1018526 | Very long recovery time due to many temporary tree IT records | 3 High | Peter Beaman | 10 Fix Released |