Commit graph

13 commits

Author SHA1 Message Date
Travis
dd63382ed3
Fixes merge conflicts related to MaxSlices.
Merge branch 'time' of github.com:benbjohnson/pilosa into benbjohnson-time
2016-12-12 09:04:23 -06:00
Ben Johnson
3d0dada6fb
Add time-based frames and Range() support. 2016-12-08 12:29:49 -07:00
Travis
4d1c12b4d7 Merge branch 'master' into db-specific-slices 2016-11-29 11:59:41 -06:00
Cody Soyland
a2d9a9a8d3 Migrate from Umbel to Pilosa organization on Github 2016-11-28 15:21:11 -06:00
Travis
461ac13c2a changes MaxSlices logic to be DB-specific 2016-11-21 16:12:30 -06:00
Ben Johnson
5fcea77be3
Add context to Client, Executor, & Handler.
This changes the API of the types but does not alter the functionality
since only the `context.Background()` is currently being used. Adding
`Context` will help handle fault tolerance in the future by allowing
timeouts to be propagated across calls to different nodes.
2016-11-10 13:37:00 -07:00
Ben Johnson
47724584b6
Add endpoint for database deletion.
Executing a request against `DELETE /db` will now delete a database.

	curl -X DELETE "http://localhost:15000/db" -d '{"db":"d"}'
2016-10-04 09:40:59 -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
523cf5bc0e
refactor main into pilosa.Server
This commit refactors most of the code in `cmd/pilosa` to
`pilosa.Server` so that it can be reused in long running cluster
testing.
2016-05-13 14:39:09 -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
37d90eac7a
active anti-entropy
This commit adds active anti-entropy via a merkle tree structure.
2016-04-12 19:48:32 -06: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
19a1a90800 roaring storage
This commit attaches the mmap-backed roaring bitmaps as storage
to the fragments. Currently snapshotting is not supported from
Pilosa so the WAL will grow indefinitely, however, it is not a
difficult change to make.
2015-12-17 20:35:33 -07:00