Skip to content
A GPU-powered real-time analytics storage and query engine.
Go Cuda C++ JavaScript C HTML Other
Branch: master
Clone or download

Latest commit

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update issue templates Jan 16, 2019
.travis [testing] speed up build by skipping cuda test when no cpp file chang… Apr 1, 2020
api add memstore for in memory schema read at schema handler (#360) Mar 6, 2020
broker Consolidate http utils (#347) Dec 9, 2019
cgoutils Slab allocator and native memory allocator (#214) Jun 20, 2019
client bump up timeout in aresdb connector (#358) Feb 20, 2020
cluster server start on debug port and wait for initial placement (#353) Jan 23, 2020
cmd add middleware support (#365) Apr 23, 2020
common client logger should be passed in from client side (#344) Nov 18, 2019
config move controller handler and http utils code (#340) Nov 18, 2019
controller better error handling on placement does not exist (#355) Mar 6, 2020
datanode add middleware support (#365) Apr 23, 2020
diskstore WriteSyncCloser (#323) Oct 15, 2019
docker fix docker file error for update to go 1.11 (#245) Jul 14, 2019
docs reorganize binary and file location (#78) Feb 2, 2019
examples add array integration tests (#341) Nov 19, 2019
img add logo Jan 16, 2019
integration add array integration tests (#341) Nov 19, 2019
memstore Locking time metrics (#359) Feb 26, 2020
metastore fix array table creation and null value length issue (#338) Nov 8, 2019
query Locking time metrics (#359) Feb 26, 2020
redolog WriteSyncCloser (#323) Oct 15, 2019
scripts Migrate build system from MakefIle to CMake (#100) Feb 25, 2019
subscriber Refactor get primary key values to reduce ingestion latency (#350) Dec 19, 2019
testing WriteSyncCloser (#323) Oct 15, 2019
thirdparty add bootstrap details, logging and metrics (#236) Jul 9, 2019
utils Locking time metrics (#359) Feb 26, 2020
.gitignore Fix master build (#362) Mar 30, 2020
.gitmodules include cudf (#184) May 29, 2019
.travis.yml Fix master build (#362) Mar 30, 2020
CMakeLists.txt move controller handler and http utils code (#340) Nov 18, 2019
CODEOWNERS Subscriber (#103) Mar 20, 2019
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
NOTICE Slab allocator and native memory allocator (#214) Jun 20, 2019
README.md migrate glide to go mod (#189) May 30, 2019
go.mod Fix master build (#362) Mar 30, 2020
go.sum Fix master build (#362) Mar 30, 2020

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 --recursive 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}
export PKG_CONFIG_PATH=${LD_LIBRARY_PATH}/pkgconfig:${PKG_CONFIG_PATH}

Language Requirements

Building and running AresDB requires:

  • golang 1.11+
  • C++ compiler that support c++14
  • cmake 3.12+
  • nvcc version 9.1

Configure

Run following commands to generate makefile:

cmake -DQUERY_MODE=DEVICE .

Alternatively, if you want to run the query in CPU mode, run following commands:

cmake -DQUERY_MODE=HOST .

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-golang

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.

You can’t perform that action at this time.