Commit graph

89 commits

Author SHA1 Message Date
Travis
0ce5245e5a turn on bitmapCache support in openCache() 2017-03-07 08:34:29 -06:00
Travis
8bb45b8bec Refactor fragment.bitmap() so that it leverages bitmapCache and so that
it's no longer reponsible for updating the count cache.
This commit also helps SetBit/ClearBit performance by allowing them
to work against data from `bitmapCache` instead of loading bitmaps
from fragment.storage every time.
2017-03-06 22:16:37 -06:00
Travis
bfc0e56dc2 move BitmapCache into cache.go. adjust some variable names for clarity 2017-03-06 22:16:37 -06:00
Todd Gruben
e27c1a6d33 rank cache update after count
heap sort order backwards

WIP TopN accuracy

adjusted first phase topn to collect all slices id's

incorrect handling of large topns

cache performance enhancement

fix for failed test TestMain_FrameRestore

remove unused code and fix some variable names
2017-03-06 22:16:36 -06:00
Todd Gruben
23bc227bf3 fix for failed test TestMain_FrameRestore 2017-03-06 22:02:49 -06:00
Todd Gruben
cabe0fef24 cache performance enhancement 2017-03-06 22:02:49 -06:00
Todd Gruben
283dfef1d9 WIP TopN accuracy 2017-03-06 21:59:46 -06:00
Todd Gruben
29ccab9624 rank cache update after count 2017-03-06 18:02:59 -06:00
Travis
307b5884d3 change the names of Simple, turbo to SimpleCache, bitmapCache 2017-03-06 18:02:57 -06:00
Todd Gruben
b1ce3ab751 WIP TopN optimization 2017-03-06 18:02:57 -06:00
Todd Gruben
e7d71a8f47 WIP increase caching and topn adjustments 2017-03-06 18:02:56 -06:00
Todd Gruben
5716006717 top bug in cache refresh 2017-03-06 18:02:55 -06:00
Todd Gruben
a1b9dc05b8 added simple cache to fragment 2017-03-06 18:02:55 -06:00
Travis
7052809504 Adds Todd's performance improvements:
- Ingore asserts in fragment container.
- Only log queries that take longer than 90 seconds.

TODO:
- address the TODOs that make the asserts configurable.
2017-03-06 17:59:14 -06:00
jaffee
2c4d3859bb remove LogOutput arg from New* funcs
default to ioutil.Discard
2017-01-18 12:28:09 -06:00
jaffee
6d748ae177 thread logoutput index -> db -> frame -> fragment
also stop extra output to stderr from tests
2017-01-18 09:29:42 -06:00
Todd Gruben
eff0e0e7fc removed low count limit on import which is fix for #243 2017-01-11 15:00:44 -05:00
Ben Johnson
7a91cbdd6d Add timestamps to import/sort.
The HTTP API, client, and `pilosactl` have been updated to allow
for a timestamp formatted using the pilosa date format of
`YYYY-MM-DDTHH:MM`.
2016-12-20 10:36:33 -07:00
Ben Johnson
c6e2b1294b Add time-based frames and Range() support. 2016-12-08 12:29:49 -07:00
Cody Soyland
5206461d51 Migrate from Umbel to Pilosa organization on Github 2016-11-28 15:21:11 -06:00
Ben Johnson
8f78f854dd 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
c6ca86f2d9 Add ExpvarStatsClient and basic tracking.
A `StatsClient` for `expvar` is added so we can track Stats through
the `/debug/vars` endpoint. Tags are nested inside maps so that we
can see stats for db, frame & slice.

Also added a `MultiStatsClient` for chaining multiple `StatsClient`
implementations together (e.g. `expvar` and DataDog).
2016-10-20 14:35:14 -06:00
Ben Johnson
d5ad5fbb05 Add profile & bitmap attribute anti-entropy.
Adds block-based anti-entropy for the attribute stores and hooks
into the existing `IndexSyncer` to regulate frequency of syncs.
2016-09-30 11:47:43 -06:00
Todd Gruben
f006270971 merge 2016-09-22 03:05:26 -05:00
Ben Johnson
46bef724a5 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
b40d4385e8 Remove import count optimization. 2016-09-16 11:36:54 -06:00
Todd Gruben
ec4b1352d1 cache update on import adjustment 2016-09-16 11:20:31 -06:00
Todd Gruben
4035763ef4 ignore checksum on single node clusters 2016-09-16 11:18:44 -06:00
Todd Gruben
8913216a6e cache update on import adjustment 2016-09-15 13:37:10 -05:00
Todd Gruben
46b3161c47 Merge branch 'master' of github.com:umbel/pilosa 2016-09-13 20:59:23 -05:00
Ben Johnson
cf4297a771 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
Todd Gruben
51560213f9 Merge branch 'master' of github.com:umbel/pilosa 2016-09-01 12:07:27 -05:00
Ben Johnson
089650b845 Remove post-mmap resizing 2016-09-01 09:18:52 -06:00
Todd Gruben
c12d8e096b Merge branch 'master' of github.com:umbel/pilosa 2016-08-30 17:36:21 -05:00
Ben Johnson
39e0d22598 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
Todd Gruben
32fec201c0 Merge branch 'master' of github.com:umbel/pilosa 2016-08-26 12:59:55 -05:00
Ben Johnson
04c814141a Optimize bitmap with zero copy
Segments bitmaps by slice and changes `Fragment.Bitmap()` to return
bitmaps with segments which are offset ranges of mmapped bitmaps.
2016-08-25 13:30:25 -06:00
Todd Gruben
838a7ee0f6 Merge branch 'master' of github.com:umbel/pilosa 2016-08-15 18:36:08 -05:00
Ben Johnson
650e03cc79 add CountRange()
This commit adds `roaring.Bitmap.CountRange()` to return the number
of bits in a subrange of a bitmap. This significantly improves
server start time and is needed for upcoming zero copy bitmap
optimizations.
2016-08-15 16:03:25 -06:00
Todd Gruben
ee01ea624f Merge branch 'master' of github.com:umbel/pilosa 2016-08-12 15:10:57 -05:00
Todd Gruben
f5f3a58e96 cache loading 2016-08-12 15:10:50 -05:00
Ben Johnson
6ad7d0bfab fix count() cache retrieval 2016-08-12 11:02:52 -06:00
Ben Johnson
3150471c3c fix bitmap reference bug 2016-08-09 14:57:37 -06:00
Todd Gruben
d79a5e7b0b Merge branch 'master' of github.com:umbel/pilosa 2016-08-08 09:35:43 -05:00
Ben Johnson
a063421467 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
Todd Gruben
8762cf3425 Merge branch 'master' of github.com:umbel/pilosa 2016-07-07 11:23:50 -05:00
Todd Gruben
3e288d6108 ignore checksum on single node clusters 2016-07-07 11:22:15 -05:00
Ben Johnson
1ed2d54855 optimize sparse bitmap block checksums
This commit refactors the block checksumming by removing the
iteration over each block and instead only checking blocks which
have data. This requires merging the cache inspection with the
roaring iterator to reduce CPU time and memory allocations.
2016-07-07 10:03:38 -06:00
Ben Johnson
521b098c83 check for early close during AAE
This commit adds a `Closing` channel to the `IndexSyncer` and the
`FragmentSyncer` that is periodically checked during execution.
If the channel is closed then an in-progress sync is immediately
stopped.
2016-06-29 10:18:24 -06:00
Todd Gruben
a68975bb6f Merge branch 'master' of github.com:umbel/pilosa 2016-06-10 10:21:27 -05:00