Ampool 1.2.1 is the first general release of Ampool targeted towards users, who are looking for analytics from data generated from their Apps. It is designed to sit closer to applications and/or compute clusters, serving data for both analytics and low-latency applications.

What's New in 1.2.1

With this release, a new immutable data abstraction, FTable, is introduced that only supports append operation, with compact memory representation for table entries. This is in tech preview, not ready for production yet. Following are the highlights of this release:

Core data store

  • FTable: A new table type that supports Create, Append and Scan operations

  • Local persistence option for FTable to 'tier' data when data volume is greater than available memory

Interfaces & APIs

  • CLI (MASH): Added support for FTable for basic operations - create, get & scan. Also, top-level commands are re-factored to use generic 'table' instead of using 'mtable'. For a complete list, please refer to Table Command Reference.


  • Spark: Added option to specify data for FTable, which is now the default table type

Besides, several internal enhancements were made to improve performance for insert, update & scan operations, and efficient data recovery for larger datasets.

Package Contents

Following packages are available for download from Ampool's (S3) website:

  • Ampool Base Package (ampool-1.2.1.tar.gz): Includes Ampool core (MTable, FTable, CoProcessors, Local DiskStore for recovery, etc) and core interfaces (MASH & Java API)

  • Ampool Compute Connectors:

  • Spark (ampool-spark-1.2.1.tar.gz)

  • Hive (ampool-hive-1.2.1.tar.gz)

Installing Ampool v1.2.1

Core Ampool Server & Locator

  • Untar the binaries in a new installation directory. After extracting the contents from the package, you should see the following directory structure:
  • For launching ampool services, start the command-line utility MASH (Memory Analytics Shell) by typing the following from the installed ampool directory (ampool-home):
$ <ampool-home>/bin/mash

Type 'help' for a list of commands.

For a detailed explanation of ampool services and commands, please refer to the README within the main directory.


  • Untar the Ampool connector packages on the Ampool client nodes (ampool-spark-1.2.1.tar.gz, ampool-hive-1.2.1.tar.gz)

  • Refer to README in the respective packages to install and use the Ampool connectors with Spark and Hive.

Upgrading to Ampool v1.2.1

Core Ampool Server & Locator

  • Stop the existing Ampool Server(s) and Locator(s) using Mash CLI

  • Untar the new Ampool core package and start the Ampool Server and Locators using new binaries.

  • Make sure provide the previous version's server and locator directories using --dir option in Mash CLI when starting the Server and Locators.


  • Untar the newer verison of connector packages and use them in place of previous verion in the classpath when using Spark and Hive with newer version of Ampool

Resolved Issues

Issue Ref Description
GEN-1229 Scan may return more records than actual if a failover happens during the scan. Now, this throws an exception.

Known Issues & Limitations

Issue Ref Description Workaround (if any)
GEN-1161 On local developer machines, if ampool services are started without specifying the host, it may bind to wifi address, which changes with moving location. In such scenarios, reconnecting to the locator from MASH fails. Manually kill ampool (locator and server) processes and restart the services. Alternatively, specify localhost or stable network interface to bind these services.
Limitation Coprocessor can not be called on an empty table. Endpoint coprocessor execution is not supported on empty table, To check for empty table use, MTable.isEmpty() API.
GEN-1144 runExamples script with already running ampool cluster fails. Run the runExamples script after stopping the ampool cluster.
GEN-1235 For a persisted MTable, the number of records returned by a scan after cluster restart may differ from the number of records returned by scan before cluster restart. Re-run scan operations, as required.
GEN-1228 Scan operation may fail if a failover happens while scan is running. Re-run scan operations, as required.

Versions & Compatibility

This distribution is based on Apache Geode release (1.0.0-incubating.M3). Following table summarizes the minimum versions supported for different connectors:

Connector Version
Apache Spark 1.5.1, 1.6.0
Scala 2.10
Apache Hive 0.14.0, 1.2.1
  • Code examples: A set of code samples showcasing table and coprocessor API can be found under <installation_dir>/examples folder.