Skip to content

The LSM RUM-tree implementation based on AsterixDB

Notifications You must be signed in to change notification settings

purduedb/LSM-RUM-tree

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LSM RUM-tree built in AsterixDB

This codebase includes the implementation of LSM RUM-tree from the VLDBJ paper: An Update-intensive LSM-based R-tree. The original source code was cloned from https://github.com/apache/asterixdb

Compilation

    mvn clean package -DskipTests -Drat.numUnapprovedLicenses=200 -e -Dcheckstyle.skip

LSM RUM-tree source code locations

  • LSM RUM-tree implementation:

      hyracks-fullstack/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTree.java 
    
  • Experiment:

      hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-rtree-test/src/test/java/org/apache/hyracks/UMTest.java
    

Experiment and Evaluation

    java -cp /path/to/asterixdb/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-rtree-test/target/test-classes/:/path/to/asterixdb_um/asterixdb/hyracks-fullstack/hyracks/hyracks-tests/hyracks-storage-am-lsm-rtree-test/target/dependency/*  org.apache.hyracks.storage.am.lsm.rtree.UMTest

Competitors and baseline Experiment

The codebase of the competitor experiment can be found at https://github.com/Jiboxiake/LSM-R-tree-competitor-experiment

What is AsterixDB?

AsterixDB is a BDMS (Big Data Management System) with a rich feature set that sets it apart from other Big Data platforms. Its feature set makes it well-suited to modern needs such as web data warehousing and social data storage and analysis. AsterixDB has:

  • Data model
    A semistructured NoSQL style data model (ADM) resulting from extending JSON with object database ideas

  • Query languages
    Two expressive and declarative query languages (SQL++ and AQL) that support a broad range of queries and analysis over semistructured data

  • Scalability
    A parallel runtime query execution engine, Apache Hyracks, that has been scale-tested on up to 1000+ cores and 500+ disks

  • Native storage
    Partitioned LSM-based data storage and indexing to support efficient ingestion and management of semistructured data

  • External storage
    Support for query access to externally stored data (e.g., data in HDFS) as well as to data stored natively by AsterixDB

  • Data types
    A rich set of primitive data types, including spatial and temporal data in addition to integer, floating point, and textual data

  • Indexing
    Secondary indexing options that include B+ trees, R trees, and inverted keyword (exact and fuzzy) index types

  • Transactions
    Basic transactional (concurrency and recovery) capabilities akin to those of a NoSQL store

Learn more about AsterixDB at its website.

Build from source

To build AsterixDB from source, you should have a platform with the following:

  • A Unix-ish environment (Linux, OS X, will all do).
  • git
  • Maven 3.3.9 or newer.
  • Oracle JDK 8 or newer.

Instructions for building the master:

  • Checkout AsterixDB master:

      $git clone https://github.com/apache/asterixdb.git
    
  • Build AsterixDB master:

      $cd asterixdb
      $mvn clean package -DskipTests
    

Run the build on your machine

Here are steps to get AsterixDB running on your local machine:

  • Start a single-machine AsterixDB instance:

      $cd asterixdb/asterix-server/target/asterix-server-*-binary-assembly/apache-asterixdb-*-SNAPSHOT
      $./opt/local/bin/start-sample-cluster.sh
    
  • Good to go and run queries in your browser at:

      http://localhost:19001
    
  • Read more documentation to learn the data model, query language, and how to create a cluster instance.

Documentation

Community support

About

The LSM RUM-tree implementation based on AsterixDB

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published