Commit graph

5199 commits

Author SHA1 Message Date
tgruben
5b40ebc036 Merge pull request #89 from benbjohnson/buffered-import
Add buffered snapshot writer
2016-06-10 10:00:43 -05:00
Ben Johnson
677824c065 add buffered snapshot writer
This commit wraps the snapshot in a `bufio.Writer`.
2016-06-10 08:58:37 -06:00
tgruben
c9f1e26143 Merge pull request #88 from benbjohnson/optimize-import
Optimize Import
2016-06-09 16:47:27 -05:00
Ben Johnson
64decdaf81 sort bits on import
This commit sorts bits from import files before performing the input.
2016-06-09 14:25:41 -06:00
tgruben
32697531fd Merge pull request #87 from benbjohnson/fix-client-fragment-nodes
Fix Client.FragmentNodes()
2016-06-08 11:27:31 -05:00
Ben Johnson
45a62c30bd fix Client.FragmentNodes()
This commit fixes the hardcoded database field in
`Client.FragmentNodes()`.
2016-06-08 10:23:44 -06:00
Todd Gruben
afb40fe8ef fixed typo 2016-06-07 15:29:28 -05:00
Todd Gruben
b40b2ff5ca Merge branch 'master' of github.com:umbel/pilosa 2016-06-07 15:25:42 -05:00
Todd Gruben
dab399e328 added logging on import;crashing bug on sync on empty fragment 2016-06-07 15:25:37 -05:00
tgruben
3f84549651 Merge pull request #86 from benbjohnson/fragment-allocation
Use db in fragment allocation
2016-06-07 15:18:48 -05:00
Ben Johnson
14627a2152 use db in fragment allocation
This commit changes the fragment allocation algorithm in the cluster
to make use of the `DB` name. This allows each database to use a
different slice distribution.

Initially, the `frame` was going to be used for allocation, however,
this was problematic since queries can span multiple frames so it's
impossible to choose a single frame to use.
2016-06-07 14:01:13 -06:00
tgruben
849b10c2f5 Merge pull request #85 from benbjohnson/optimize-intersection-count
Optimize intersection count
2016-06-03 09:39:56 -05:00
Ben Johnson
08659c350b optimize intersection count
This commit moves the computation of the intersection count to
the `roaring` package so that no allocations are required. The
implementation operates at the roaring container level and has
specialized functions for array-array, array-bitmap, and
bitmap-bitmap container pairs.
2016-06-02 16:03:21 -06:00
tgruben
64e3458e09 Merge pull request #84 from umbel/slow_import
Slow import optimization
2016-06-01 14:58:35 -05:00
Todd Gruben
228865cc35 code cleanup 2016-06-01 14:55:48 -05:00
Todd Gruben
3d4eaecac0 Import optimization 2016-06-01 14:10:34 -05:00
Todd Gruben
9c5b4829e5 patched in assembly routines for reference 2016-05-27 11:15:14 -05:00
Todd Gruben
ef2cbcdc4b merge 2016-05-25 09:18:57 -05:00
Todd Gruben
38c59dcc5b no alloc on search 2016-05-25 09:12:56 -05:00
tgruben
effb9b8b9c Merge pull request #82 from benbjohnson/bitmap-refactor
Refactor in-memory bitmap storage
2016-05-24 16:31:55 -05:00
Ben Johnson
722d697228 refactor in-memory bitmap storage
This commit changes the underlying storage for `Bitmap` from a
red-black tree to a roaring bitmap. It also removes bitmaps from
the cache and only stores the bitmap count.
2016-05-24 15:01:49 -06:00
tgruben
93efe624ce Merge pull request #81 from benbjohnson/pilosa-bench
pilosa-bench skeleton
2016-05-17 17:19:29 -05:00
Ben Johnson
91874bdaee pilosa-bench skeleton 2016-05-17 15:45:24 -06:00
Todd Gruben
cc7d0abe10 Merge branch 'master' of github.com:umbel/pilosa 2016-05-13 19:59:24 -05:00
Todd Gruben
a5b84e092a changed slicewidth 2016-05-13 19:59:14 -05:00
tgruben
00f4426970 Merge pull request #79 from benbjohnson/server
Refactor main into pilosa.Server
2016-05-13 16:56:24 -05:00
Ben Johnson
a0a519bfdf 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
tgruben
4d22338cf1 Merge pull request #78 from benbjohnson/import-cache
Fix import cache updates
2016-05-13 10:17:34 -05:00
Ben Johnson
c9edabb23d fix import cache updates
This commit fixes a bug in the import where the cache was not being
updated and the block checksum was not being invalidated.
2016-05-11 17:32:28 -06:00
tgruben
06b3e30a10 Merge pull request #77 from benbjohnson/consensus-block-merge
Consensus block merge
2016-05-09 14:01:29 -05:00
Ben Johnson
de698aa03e 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
Todd Gruben
616248707b Merge branch 'master' of github.com:umbel/pilosa 2016-04-26 14:41:48 -05:00
Todd Gruben
ee95aec91c check for iterator overflow 2016-04-26 14:41:37 -05:00
Travis Turner
db47b4fcde Merge pull request #75 from benbjohnson/godep
Add protobuf/testdata, fix Makefile
2016-04-26 10:09:01 -05:00
Ben Johnson
2756c5295b add protobuf/testdata, fix Makefile
This commit re-adds the `testdata` folder that godeps strips and
also updates the `Makefile` to add a `vendor` target that will
handle this in the future.
2016-04-26 08:48:04 -06:00
Todd Gruben
cd78dd6fd1 Merge branch 'master' of github.com:umbel/pilosa 2016-04-19 09:24:07 -05:00
tgruben
02a0148981 Merge pull request #73 from benbjohnson/anti-entropy-monitor
Anti-entropy monitor
2016-04-19 09:23:56 -05:00
Todd Gruben
b565271f94 made Bitmap SetBit method public 2016-04-19 09:22:42 -05:00
Ben Johnson
243c611cb4 Merge pull request #72 from travisturner/docs
fixed typos. changed -config flag to represent prefered Go format
2016-04-18 16:45:18 -06:00
Ben Johnson
f6bb605ee8 add anti-entropy monitor 2016-04-18 16:32:27 -06:00
travisturner
3995125011 fixed typos. changed -config flag to represent prefered Go format 2016-04-15 12:50:47 -05:00
tgruben
c904a919f0 Merge pull request #71 from benbjohnson/anti-entropy
Active Anti-Entropy (AAE)
2016-04-13 14:49:45 -05:00
tgruben
9697afda9b Merge pull request #70 from travisturner/docs
update the README file with config and query information
2016-04-13 10:18:05 -05:00
Ben Johnson
8f4d7d50c3 active anti-entropy
This commit adds active anti-entropy via a merkle tree structure.
2016-04-12 19:48:32 -06:00
travisturner
40274fe6b8 update the README file with config and query information 2016-04-11 22:28:50 -05:00
tgruben
f8da0b7448 Merge pull request #68 from benbjohnson/bench
Add 'pilosactl bench' command
2016-04-01 12:17:18 -05:00
Ben Johnson
26fd00ff3e 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
tgruben
9b8a81ca4a Merge pull request #67 from benbjohnson/op-n
Snapshot after op threshold
2016-03-31 09:28:03 -05:00
Ben Johnson
c753052f78 snapshot after op threshold
This commit changes `SetBit()` and `ClearBit()` to issue a
snapshot after a certain number of calls are made on a given
fragment.

Fixes #66
2016-03-30 15:28:42 -06:00
tgruben
43aef87104 Merge pull request #65 from benbjohnson/schema
Add schema endpoint
2016-03-28 16:15:16 -05:00