mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-08-28 10:54:59 +00:00
No description
This commit refactors the config into a `main.Config` object instead of a global singleton. The `core.Service` is also refactored into the `main` package and individual pieces of the service are wired together by the `pilosa` binary. These two changes are required to begin to decouple packages from one another and allow them to be individually unit tested. Previously most top-level objects in the system could access any other top-level object through the `core.Service` which effectively made `Service` a singleton in the system. Each top-level object now has inline interfaces for their dependencies so that can be set at runtime by the `main` package or can be mocked by a test package. |
||
|---|---|---|
| cmd/pilosa | ||
| core | ||
| cruncher | ||
| db | ||
| dispatch | ||
| executor | ||
| hold | ||
| index | ||
| interfaces | ||
| query | ||
| transport | ||
| util | ||
| .gitignore | ||
| default.yaml | ||
| deps.json | ||
| README.md | ||
pilosa
Pilosa is a bitmap index database.
Getting Started
To download the source, run go get:
$ go get github.com/umbel/pilosa
You can update the dependencies to specific versions using depman:
$ go get github.com/vube/depman
And then run depman from the project directory:
$ cd $GOPATH/src/github.com/umbel/pilosa
$ depman
Now you can install the pilosa binary:
$ go install github.com/umbel/pilosa/...
Pilosa requires that etcd is running locally for coordinating the cluster:
# In another terminal window
$ etcd
Now run pilosa with the default configuration:
PILOSA_CONFIG=default.yaml pilosa
This setup assumes that cassandra and etcd are running locally and that
cassandra keyspace pilosa has been setup as describe in the file
index/storage_cass.go.
If you don't want backend storage you can comment out storage_backend in the yaml file and it will just operate out of memory.