MCPcopy
hub / github.com/uber/aresdb

github.com/uber/aresdb @v0.0.2 sqlite

repository ↗ · DeepWiki ↗ · release v0.0.2 ↗
5,686 symbols 16,818 edges 513 files 3,084 documented · 54%
README

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.

Extension points exported contracts — how you extend this code

Job (Interface)
Job defines the common interface for BackfillJob, ArchivingJob and SnapshotJob [6 implementers]
memstore/scheduler.go
Expr (Interface)
Expr represents an expression that can be evaluated to a value. [14 implementers]
query/expr/ast.go
QueryExecutor (Interface)
QueryExecutor defines query executor [10 implementers]
broker/common/types.go
Topology (Interface)
Topology is a container of a placement map and disseminates the placement map changes [6 implementers]
cluster/topology/types.go
EnumMutator (Interface)
EnumMutator defines EnumMutator interface [5 implementers]
controller/mutators/common/types.go
Bootstrapable (Interface)
Bootstrapable defines bootstrapable interface [5 implementers]
datanode/bootstrap/types.go
LiveVectorParty (Interface)
LiveVectorParty represents vector party in live store [4 implementers]
memstore/common/vector_party.go
RedologManager (Interface)
RedologManager defines rodelog manager interface [4 implementers]
redolog/redolog_manager.go

Core symbols most depended-on inside this repo

Get
called by 911
cluster/topology/types.go
StackError
called by 548
utils/error.go
Error
called by 431
common/log.go
String
called by 309
query/expr/ast.go
VisitChildren
called by 232
query/sql/sql_parser.go
GetLogger
called by 225
utils/di.go
With
called by 187
common/log.go
Unlock
called by 186
memstore/mocks/MemStore.go

Shape

Method 3,897
Function 914
Struct 624
Interface 160
TypeAlias 62
FuncType 29

Languages

Go99%
TypeScript1%

Modules by API surface

query/sql/antlrgen/sqlbase_parser.go1,265 symbols
datanode/generated/proto/rpc/peer_streaming.pb.go312 symbols
query/sql/sql_parser.go132 symbols
query/sql/antlrgen/sqlbase_visitor.go88 symbols
query/sql/antlrgen/sqlbase_base_visitor.go88 symbols
query/expr/ast.go84 symbols
metastore/disk_metastore.go66 symbols
cluster/topology/types.go62 symbols
memstore/job_manager.go57 symbols
memstore/common/vector_party.go53 symbols
common/log.go49 symbols
memstore/merge.go46 symbols

Dependencies from manifests, versioned

github.com/MichaelTJones/pcgv0.0.0-2018012205554 · 1×
github.com/Shopify/saramav1.22.1 · 1×
github.com/abiosoft/ishellv2.0.0+incompatible · 1×
github.com/abiosoft/readlinev0.0.0-2018060704043 · 1×
github.com/antlr/antlr4v0.0.0-2019062322452 · 1×
github.com/bkaradzic/go-lz4v1.0.0 · 1×
github.com/chzyer/logexv1.1.10 · 1×
github.com/chzyer/testv0.0.0-2018021303581 · 1×
github.com/confluentinc/confluent-kafka-gov0.0.0-2019020711341 · 1×
github.com/curator-go/curatorv0.0.0-2018092314001 · 1×

For agents

$ claude mcp add aresdb \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact