A GPU-powered real-time analytics storage and query engine.
Branch: master
Clone or download
Latest commit f409086 Feb 8, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update issue templates Jan 16, 2019
.travis reorganize binary and file location (#78) Feb 2, 2019
api fix data table in debug ui (#96) Feb 8, 2019
cgoutils change package name Nov 5, 2018
client fix typo (#80) Feb 5, 2019
clients increase tests for controller integration (#79) Feb 3, 2019
cmd fix typo (#80) Feb 5, 2019
common fix log (#95) Feb 8, 2019
config address comments Nov 19, 2018
diskstore Bark to zap (#59) Jan 30, 2019
docker reorganize binary and file location (#78) Feb 2, 2019
docs reorganize binary and file location (#78) Feb 2, 2019
examples Sample data (#92) Feb 8, 2019
img add logo Jan 16, 2019
memstore provide default table configs (#93) Feb 8, 2019
memutils lint fix Nov 5, 2018
metastore provide default table configs (#93) Feb 8, 2019
query Use more local macro to reduce code redundancy (#88) Feb 7, 2019
testing Update server side hll header (#54) Jan 24, 2019
utils introduce HLLConfig (#74) Feb 5, 2019
.gitignore fix log (#95) Feb 8, 2019
.travis.yml combin cache setting (#53) Jan 22, 2019
CODEOWNERS add CODEOWNERS file Oct 26, 2018
CODE_OF_CONDUCT.md Update CODE_OF_CONDUCT.md Jan 16, 2019
CONTRIBUTING.md Create CONTRIBUTING.md Jan 16, 2019
LICENSE add license and notice Nov 6, 2018
Makefile introduce HLLConfig (#74) Feb 5, 2019
NOTICE add license and notice Nov 6, 2018
README.md Update README.md (#75) Feb 3, 2019
glide.lock provide default table configs (#93) Feb 8, 2019
glide.yaml provide default table configs (#93) Feb 8, 2019
main.go Viper and Cobra integration (#51) Jan 23, 2019

README.md

Build Status Coverage Status license FOSSA Status


AresDB Logo

AresDB

AresDB is a GPU-powered real-time analytics storage and query engine. It features low query latency, high data freshness and highly efficient in-memory and on disk storage management. Please see AresDB's features, architecture design described in the Uber Engineering Blog.

This repo contains the source code of AresDB and debug UI.

Legal Note

AresDB requires the CUDA Toolkit. Please ensure you read, acknowledge, and accept the CUDA End User License Agreement.

Getting started

To get AresDB:

git clone https://github.com/uber/aresdb.git $GOPATH/src/github.com/uber/aresdb

NVIDIA Driver and CUDA Setup

AresDB needs NVIDIA driver version >= 390.48 and CUDA version 9.1.

Environment Variables

Run the following to make sure the following environment variables are correctly set:

export PATH=/path/to/cuda/bin:${PATH}
export LD_LIBRARY_PATH=/path/to/cuda/lib64:/path/to/aresdb/lib:${LD_LIBRARY_PATH}

Language Requirements

Building and running AresDB requires:

  • golang 1.9+
  • C++ compiler that support c++11
  • nvcc version 9.1

Build

The following dependencies need to be installed before building the binary.

glide

We use glide to manage Go dependencies. Please make sure glide is in your PATH before you attempt to build.

Local Test

AresDB is written in C++ (query engine) and Golang (mem store, disk store and other query components). Because of this, we break testing into two parts:

Test Golang Code

Ginkgo

We use Ginkgo as the test framework for running the Golang unit test and coverage. Install Ginkgo first and run

make test

Test C++ Code

google-test

We use google-test as the test framework to test C++ code. Install google-test and set the environment variable, GTEST_ROOT, to the installed location.

After you have installed properly, run

make test-cuda

Run AresDB Server

The following command will start an AresDB server locally. You can start to query the server using a curl command or swagger page.

make run_server

Run AresDB Docker

Please read the Docker page.

Documentation

Interested in learning more about AresDB? Read the blog post

License

Apache 2.0 License, please see LICENSE for details.