Commit graph

34 commits

Author SHA1 Message Date
jaffee
1d0a314287 rename imports umbel->pilosa 2016-11-28 15:45:18 -07:00
jaffee
86e226d574 better documentation for bagent and bspawn 2016-11-28 15:45:18 -07:00
jaffee
a3b69f9066 rename bench commands and args
lower case and dash separated
2016-11-28 15:45:18 -07:00
jaffee
aa2b4949d8 add random query benchmark 2016-11-28 15:45:18 -07:00
jaffee
df6e519222 bspawn can create and tear down cluster for benchmarks 2016-11-28 15:45:18 -07:00
jaffee
65ac486b4c refactor Init and provide ClientType option
Benchmark implementations can now use 'HasClient' as a component which provides
an Init method which sets up the pilosa client in a configurable way.
Implementations must still expose the ClientType argument through ConsumeFlags
and describe it in Usage()
2016-11-28 15:45:17 -07:00
jaffee
2f4171bba8 add agentNum to benchmark Init as well as run 2016-11-28 15:45:17 -07:00
jaffee
256d516726 fix broken context stuff after rebase 2016-11-28 15:45:17 -07:00
jaffee
86d408310c add MultiDBSetBits benchmark 2016-11-28 15:45:17 -07:00
jaffee
6d2cc4335f forgot to check in randspawn benchmark file 2016-11-28 15:45:17 -07:00
jaffee
cb85882289 add RandomSetBits benchmark demonstrating seeds 2016-11-28 15:45:17 -07:00
jaffee
776da440f6 add bspawn command and json config file 2016-11-28 15:45:17 -07:00
jaffee
3bd5daa5f3 redirect pilosactl create -local output to file 2016-11-28 15:45:17 -07:00
jaffee
e6b31db90d simplify and rename SetBits Benchmark 2016-11-28 15:45:17 -07:00
jaffee
6c42e8b7e7 renaming stuff to be more idiomatic 2016-11-28 15:45:17 -07:00
jaffee
7e524ed836 setup and support BenchmarkCmd interface 2016-11-28 15:45:17 -07:00
jaffee
5488c36527 move pilosa-benchmark-agent under pilosactl 2016-11-28 15:45:17 -07:00
jaffee
983379928c add cluster creation to pilosactl 2016-11-28 15:45:17 -07:00
Cody Soyland
a2d9a9a8d3 Migrate from Umbel to Pilosa organization on Github 2016-11-28 15:21:11 -06:00
Ben Johnson
7c1a39a02d
Add context to pilosactl. 2016-11-16 19:53:40 -07:00
Ben Johnson
748484040d
Add pilosactl check. 2016-10-26 13:51:23 -06:00
Todd Gruben
57810f8ab6 merge 2016-09-22 03:05:53 -05:00
Ben Johnson
432bf74368
Add import sorting command.
Introduces new `pilosactl sort` to sort import files by bit
position so they can be inserted faster. Also optimizes container
scanning and adds a `-buffer-size` flag to `import`.
2016-09-21 14:33:24 -06:00
Ben Johnson
947eea4668
Optimize TopN() w/ source query.
This commit makes several changes to optimize the TopN() query:

- Reduce highbits() back from 24-bits to 16-bits.
- Reduce MaxArraySize back from 2^20 to 4096.
- Optimize bitmap count invalidation.
- Parallelize TopN() across nodes.
- Parallelize TopN() across slices.
2016-09-13 14:55:56 -06:00
Ben Johnson
0879bab148
Remove post-mmap resizing 2016-09-01 09:18:52 -06:00
Ben Johnson
157b7eb966
Add export command to pilosactl
CSV exports can now be done with the pilosactl application:

	$ pilosactl -d mydb -f myframe -o MYFILE.csv

If `-o` is not specified then the CSV is written to STDOUT. The
exporter combines all slices for the db/frame to into a single
concatenated CSV file.
2016-08-30 16:18:12 -06:00
Ben Johnson
15cc4d7d5a
serialize cache flush
This commit moves the cache flush to the `Index` and only serializes
a single fragment at a time.

Also included in this commit is the `inspect` command for the
`pilsoactl` binary. This provides insight into pilosa data files.
2016-08-05 14:58:37 -06:00
Ben Johnson
ebdd5f8477
consensus block merge
This commit refactors the anti-entropy system to fetch data from
all replicated blocks and only set/clear bits which deviate from
the consensus between all blocks.

An example of this is if 3 nodes had the following bits set for
a single bitmap:

	Node A: 1 2 3
	Node B:   2   4
	Node C: 1 2   4

Then only bits which are set on a majority will be set. In this
case bits 1, 2, & 4 are set but 3 only exists on a single node.

The node performing the merge would then determine the following
set/clear diffs for each node:

	Node A: clear(3), set(4)
	Node B: set(1)
	Node C: none

Once the merge is performed and all nodes receive their diff
instructions then the nodes will be in sync:

	Node A: 1 2 4
	Node B: 1 2 4
	Node C: 1 2 4

There still exists situations where bits can be reset. If Node A
is up and Node B & C are down then Node A's bits will be reset
once B & C come back online. We should add write consistency
settings for incoming writes so that we can ensure that a quorum
is written to before returning a success. This is outside the
scope of this commit though.
2016-05-06 16:19:10 -06:00
Ben Johnson
dfda274c40 add 'pilosactl bench' command
This commit adds a simple benchmarking utility to the `pilosactl`
binary. It currently only supports individual `SetBit()` commands
but it's a good start towards making a generic benchmarking
framework at the integration level.

The subcommands and usage/help messages were also cleaned up to
output correctly.
2016-03-31 15:49:57 -06:00
Ben Johnson
cfa1a71190 add backup/restore to pilosactl
This commit adds two commands:

    pilosactl backup
    pilosactl restore

The `Client` implementations have also been added to support these
commands:

    func (c *Client) BackupTo(w io.Writer, db, frame string) error
    func (c *Client) RestoreFrom(r io.Reader, db, frame string) error

Backups occur on a per-frame basis and all slices from the cluster
are packed into a single tar file. The backup tool attempts to
read from owner nodes in a random order and will retry against
the next owner if one fails.

During restore, the slices are restored to all owner nodes. This
allows users to backup a frame from one cluster and restore it
to a different one -- even if the topology of the new cluster is
different.
2016-02-29 08:38:24 -07:00
Todd Gruben
7c8a27338a added support for returning SetBit effect 2016-02-16 17:38:56 -06:00
Ben Johnson
7c8c2251ac cluster-wide import
This commit fixes the `pilosactl import` command to import data files
across an entire cluster of machines.

A `pilosactl config` command is also added to provide a default config.
2016-01-05 20:09:17 -07:00
Ben Johnson
54db22c54e bulk importer
This commit adds the pilosactl binary with a single `import` command.
The import allows users to bulk import data from a CSV file.
2016-01-02 15:10:17 -07:00
Ben Johnson
34fa1afad0 refactor
This commit refactors the pilosa codebase. It makes several major
changes:

* Removes bitmap handles
* Removes dispatch/hold/transport
* Removes etcd dependency
* Adds consistent hash ring for slice placement
* Refactors parser/lexer
* Adds strong typing to PQL AST
* Flattens package hierarchy
2015-12-02 15:34:49 -07:00