Akiban Persistit halo-rc-1

The first release candidate for Halo.

Milestone information

Project:
Akiban Persistit
Series:
halo
Version:
halo-rc-1
Released:
2011-03-31  
Registrant:
Padraig O'Sullivan
Release registered:
2011-04-22
Active:
No. Drivers cannot target bugs and blueprints to this milestone.  

Download RDF metadata

Activities

Assigned to you:
No blueprints or bugs assigned to you.
Assignees:
3 Padraig O'Sullivan
Blueprints:
3 Implemented
Bugs:
No bugs are targeted to this milestone.

Download files for this release

File Description Downloads

Release notes 

Release Notes
v.0.1, released March 31, 2011

What's new, what you should know, and what you've been asking about the latest version of Akiban.

Release Notes
Introduction to Akiban
The Akiban solution is comprised of the following projects:
Akiban Server
Akiban SQL Driver
Akiban Adapter for MySQL
Akiban PersistIT
Akiban Studio
What's New in Akiban 0.1
What is v0.1 Intended For?
What is v0.1 NOT Intended For?
System Requirements
Dependencies
Prerequisites
Java
Downloading and Installing
Directory Structure
Known Issues
Troubleshooting
Port conflicts
Existing Tomcat installation
Tomcat Crashed!
Frequently Asked Questions
Resources

Introduction to Akiban
Akiban’s data-grouping(TM) technology is a new approach for relational systems to deal with the complexity of scaled-out database schemas. It enables pre-computing of joins, which reduces and in many cases eliminates the high costs of these operations. That leads to transformational advances in performance and scalability, especially for complex operational queries. Akiban’s solutions can be deployed incrementally, without the disruption and risk of a full database replacement. They use only industry standard protocols and access mechanisms - including SQL - and therefore require only minimal changes to existing database applications.

Akiban provides the following features and benefits:

Frictionless adoption as a MySQL slave
Easy integration as a storage engine plugin to MySQL
Simple access using the memcache protocol together with Akiban's Data API
Developer-friendly output via a nested JSON string
The Akiban solution is comprised of the following projects:
Akiban Server
Akiban Server is the base component of the Akiban architecture. It arranges relational data in real time into table groups, allowing for very efficient query access. It offers an operator framework for query execution against the grouped data which supports direct access as well as full transactional SQL semantics.

Akiban SQL Driver
The SQL Driver provides rich and fast SQL access to the Akiban Server.

Akiban Adapter for MySQL
The adapter replicates MySQL data into the Akiban Server in real time.

Akiban PersistIT
A compact, fast Java btree with a unique hybrid update approach.

Akiban Studio
An intuitive UI tool designed to analyze existing MySQL schemas and problem queries, design grouping, deploy and monitor Akiban Server.

What's New in Akiban 0.1
Well that's easy...everything! Welcome to Akiban's debut release.

What is v0.1 Intended For?
Akiban 0.1 is a product release beta intended to showcase the benefits of Akiban's data-grouping(TM) technology and the ability for Akiban to act as a replicated slave.

What is v0.1 NOT Intended For?
As you will see in the Known Issues section below, there are issues surrounding concurrency and data correctness that make this release inappropriate for a production deployment.

/************************
System Requirements
Operating System Version CentOS 5.4 or higher, Ubuntu 10.04
Architecture x64
MySQL Version 5.5.8 (standalone or replicated slave) available here
Disk Space 1.33 x grouped table size*
* TIP: See the MySQL documentation for OPTIMIZE TABLE for more information on how to determine table size
************************/

/************************
Dependencies
Prerequisites
MySQL: MySQL 5.5.8 must be installed on the target system (see System Requirements section above). The Ubuntu package installation will install MySQL.
Tomcat: In order to utilize Akiban Studio, Tomcat must be installed. The package installations for CentOs and Ubuntu will install Tomcat.
Java
The only dependency when installing Akiban server from packages is Java. Akiban recommends the Sun Java (java6 for CentOS - which must be downloaded from Oracle's website for CentOS - http://www.oracle.com/technetwork/java/javase/downloads/index.html, and sun-java6-jre on Ubuntu) distribution to maximize performance.

On Ubuntu, the java packages require the following lines in /etc/apt/sources.list be uncommented (note that the distribution, e.g. lucid, depends on which Ubuntu version you are running):

deb http://archive.canonical.com/ubuntu lucid partner
deb-src http://archive.canonical.com/ubuntu lucid partner
If installing from source, maven is required.
************************/

/************************
Downloading and Installing
Downloading and Installing Akiban is simple. This page contains all of the relevant details (will be updated to reflect akiban.com URL), whereas the basic installation procedure is detailed below:
************************/

/************************
Directory Structure
After performing the installation, the following directory structure will be installed:

Directory Name Purpose
/etc/akiban configuration files
/usr/sbin any admin binaries/scripts we have
/usr/bin any command line tools for users we have
/usr/share/akiban all akiban jar files (persistit, server)
/usr/share/doc/akiban man pages, license information
/etc/init.d/akiban-server startup script for akiban server
/var/log/akiban akiban log files
/var/lib/akiban akiban data files
/var/run/akiban pid files
************************/

/************************
Known Issues
Summary of high-level known issues:

Explicit transactions are not currently supported
Concurrent operation synchronization has not yet been implemented (specifically, a single scan will see a non-isolated view, including the results of updates which happened during the scan)
Known issues should be reviewed to determine which ALTER TABLE operations are not currently supported
Akiban Studio limitations:
Information is currently not persisted to disk. Any operations that are performed should be saved or deployed prior to exiting Akiban Studio.
Once a group is deployed, tables may be added to the group, but grouped tables cannot be altered nor can tables be removed from a group without dropping and recreating the group.
Issue (links to bug definition on LaunchPad) Description
BIT datatype not supported The BIT datatype is not currently supported
BLOB unsupported as table key BLOB datatype not currently supported as a table key
DATETIME values are incorrect through data API Datetime values are currently incorrect through the memcache protocol API
ENUM/SET datatypes not supported The ENUM and SET datatypes are not currently supported
FLOAT/DOUBLE/REAL keys not supported Use of Float/Double/Real datatypes as keys is not currently supported
YEAR(2) as index returns incorrect results Creating an index on a Year(2) column currently returns incorrect results
SELECT during concurrent UPDATE operation returning incorrect results If one connection SELECTs data while another connection updates data contained in an index, incorrect data will be returned to the SELECT. For example, if connectionA begins to select data from tableONE, and then connectionB updates data in tableONE that affects the data selected by connectionA, connectionA will retrieve the data that was read before an after the update. This can result in data with the same key being returned twice with different values.
ALTER TABLE...ADD PRIMARY KEY not supported ALTER TABLE to add a primary key is not currently supported
ALTER TABLE...SET ENGINE not supported Issuing ALTER TABLE...SET ENGINE is not currently supported on Akiban tables
CREATE TABLE...SELECT not supported Creating a table using a SELECT statement is not currently supported
CREATE UNIQUE INDEX does not check existing rows Creating a unique index on an existing Akiban table does not currently validate the index on existing rows
DESC keyword in primary key not supported Creating a primary key with a descending key order is not currently supported
DROP DATABASE generates exceptions on grouped tables Dropping a database with grouped (Akiban) tables currently generates an exception because tables are dropped out-of-order relative to the group definition foreign keys
RENAME TABLE not supported Rename table is not currently supported
Parentheses in table names not supported Tables with parentheses in their names are not currently supported
GROUP BY on indexed column allowing nulls results in an infinite loop Group by on indexed column allowing nulls currently results in an infinite loop
NULL fields returned for SELECT during DROP operation Currently, when dropping a table during a select operation, the select will return NULLs for the fields dropped before they were scanned
Duplicate Key exceptions break rowcount Currently duplicate key exceptions from INSERT or UPDATE currently result in incorrect rowcount values (higher rowcount for insert and lower for update).
Child exists without parent when queried via memcache Querying a group using the memcached protocol may return child rows without their parent
Bulk operations not transactional Bulk operations do not currently support transactions
Server Crashes With BufferOverflowException Messages over 1MB result in a buffer overflow exception
Problems scanning + updating in a single transaction If an UPDATE...SELECT expression is executed, and depending upon the number of table records fit in Akiban's message buffer, some scans will update values and then continuously find the updated values thereby resulting in an infinite loop condition.
MySQL slave status error after SLAVE STOP The MySQL slave status will currently show an error after the SLAVE STOP command is issued
************************/

/************************
Troubleshooting
Port conflicts
In some cases, one of the default ports assigned to an Akiban process will already be assigned to a running process. The easiest way to identify the conflict, and to identify the free ports on a system is to run the netstat command:

netstat --tcp --listening --programs
Then refer to the Akiban documentation on configuration options to adjust the ports used by Akiban processes.

Existing Tomcat installation
Akiban Studio can be installed in an existing Tomcat deployment, but in most cases you will prefer to keep it separate. See the Tomcat documentation

Tomcat Crashed!
See the Tomcat documentation
************************/

/************************
Frequently Asked Questions
We don't have FAQ's just yet.

Resources
We will be blogging and uploading quite a lot of content to http://www.akiban.com soon!
Until then, if you have any questions or feedback for us, please don't hesitate to email support@akiban.com.
************************/

Changelog 

This release does not have a changelog.

3 blueprints and 0 bugs targeted

Blueprint Priority Assignee Delivery
Nightly Long Running Stress Tests Nightly Long Running Stress Tests 4 High Padraig O'Sullivan  11 Implemented
Clean up the findbugs Warnings in Persistit Clean up the findbugs Warnings in Persistit 3 Medium Padraig O'Sullivan  11 Implemented
port sample benchmarks from www.persistit.com port sample benchmarks from www.persistit.com 3 Medium Padraig O'Sullivan  11 Implemented
This milestone contains Public information
Everyone can see this information.