CloudBurst port for Themis MapReduce and TritonSort
C++ Python
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
LICENSE
README

README

Themis MapReduce/TritonSort CloudBurst Port
August 8, 2015
http://themis.sysnet.ucsd.edu/

This code is made available under 3-clause BSD (see LICENSE file), and is
provided for mainly for eductional purposes. We will not be supporting this
codebase moving forward, so please don't ask for feature requests, bug fixes,
or runtime support. Themis and TritonSort are research prototypes, and were
built for our research testbeds. They may not run on arbitrary platforms, and
significant effort may be required to run them.

This codebase includes a port of the CloudBurst project
(http://sourceforge.net/projects/cloudburst-bio/) for Themis MapReduce.

Place the files within src/ in the same directories in your main Themis directory.

Add the following clause to src/tritonsort/mapreduce/functions/map/MapFunctionFactory.cc
```
  } else if (mapName == "CloudBurstMapFunction") {
      mapFunction = new CloudBurstMapFunction(
        params.get<uint32_t>("CLOUDBURST_MAX_ALIGN_DIFF"),
        params.get<uint32_t>("CLOUDBURST_REDUNDANCY"),
        params.get<int32_t>("CLOUDBURST_MIN_READ_LEN"),
        params.get<int32_t>("CLOUDBURST_MAX_READ_LEN"));
  }
```

Add the following clause to src/tritonsort/mapreduce/functions/reduce/ReduceFunctionFactory.cc:
```
  } else if (reduceName == "CloudBurstReduceFunction") {
    return new CloudBurstReduceFunction(
        params.get<uint32_t>("CLOUDBURST_MAX_ALIGN_DIFF"),
        params.get<uint32_t>("CLOUDBURST_SEED_LEN"),
        params.get<uint32_t>("CLOUDBURST_ALLOW_DIFFERENCES"),
        params.get<uint32_t>("CLOUDBURST_BLOCK_SIZE"),
        params.get<uint32_t>("CLOUDBURST_REDUNDANCY"));
  }
```

Add the following clause to src/tritonsort/mapreduce/functions/partition/PartitionFunctionFactory.cc:
```
  } else if (partitionFunctionName.compare("CloudburstPartitionFunction") == 0) {
    // Use a special (non-order-preserving) hash function for Cloudburst
    partitionFunction = new (themis::memcheck)
      CloudburstPartitionFunction(keyPartitioner);
  }
```