Commit graph

5199 commits

Author SHA1 Message Date
Ben Johnson
c51a17cfc6 add schema endpoint
This commit adds a new HTTP handler to return a list of all databases
and frames in the index:

	GET /schema

This returns JSON in the following format:

	{
	  "dbs":[
	    {
	      "name":"d0",
	      "frames":[
	        {"name":"f0"},
	        {"name":"f1"}
	      ]
	    }
	  ]
	}

Fixes #61
2016-03-22 11:25:52 -06:00
tgruben
169c3691eb Merge pull request #64 from benbjohnson/backup-restore-cache
Add cache to fragment backup/restore
2016-03-18 09:47:38 -05:00
Ben Johnson
ab3358ae77 add cache to fragment backup/restore
This commit changes the backup format of a fragment from a
simple file stream to a tar archive which combines the data file
and the cache file.

Fixes #63
2016-03-17 15:48:48 -06:00
tgruben
7080cae2f1 Merge pull request #62 from benbjohnson/frame-restore
Add frame restore for cluster transfer
2016-03-16 09:25:01 -05:00
Ben Johnson
0ab4ee6f07 add frame restore for cluster transfer
This commit adds an endpoint to restore an entire frame from
another cluster. Multiple hosts can use this endpoint to copy
and rebalance a cluster to a new cluster.
2016-03-15 14:42:42 -06:00
tgruben
4dde1d6589 Merge pull request #60 from benbjohnson/multi-call
Add bulk call support to the query endpoint
2016-03-09 10:53:07 -06:00
Ben Johnson
569bafdc7d add bulk call support to the query endpoint
This commit changes the `pql.Query` so that it can accept one or more
top-level calls instead of only one.

The query request format change because a query with a single call is
still valid. However, the result format now returns a `results` field
that has one result for each top-level call. The `profiles` field is
still the same, however, it combines all profiles from all bitmap
responses into one return so that there's not duplicate attributes.

Fixes #59
2016-03-08 14:34:37 -07:00
tgruben
f57b9d9d6e Merge pull request #58 from benbjohnson/top-n-2
Refetch full counts for TopN()
2016-03-03 14:43:56 -06:00
Ben Johnson
5a63a14742 refetch full counts for TopN()
This commits adds refetching to get the actual TopN() count
after the top bitmaps are determined.

Fixes #57
2016-03-03 13:03:20 -07:00
tgruben
a58468fc7a Merge pull request #56 from benbjohnson/backup
Add backup/restore to pilosactl
2016-02-29 10:49:58 -06:00
Todd Gruben
24260e9d0c test for topn fill 2016-02-29 10:18:57 -06:00
Ben Johnson
5d79555d3e 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
tgruben
86de27fcf5 Merge pull request #54 from umbel/todd
fixed issue with SetBit/ClearBit not correctly reporting bitchange
2016-02-26 12:13:41 -06:00
Todd Gruben
7c33b7fcf2 merge 2016-02-26 12:13:03 -06:00
tgruben
985320e903 Merge pull request #55 from benbjohnson/backup-restore
Add backup/restore endpoints
2016-02-25 18:37:40 -06:00
Ben Johnson
c64199a69e add backup/restore endpoints
This commit adds io.ReaderFrom and io.WriterTo implementations to
the Fragment and also adds backup & restore endpoints to the Handler.
2016-02-25 17:29:45 -07:00
Todd Gruben
a535d1e604 generated using go generate 2016-02-25 17:15:40 -06:00
Todd Gruben
fb3e563a7c issue 41 2016-02-25 15:43:52 -06:00
Todd Gruben
0d620aae61 align more with go idioms 2016-02-24 15:02:24 -06:00
Todd Gruben
759ad537be merged 2016-02-24 14:19:44 -06:00
Todd Gruben
9fc6a39d65 adjust SetBit/ClearBit to releably report bit change 2016-02-24 14:00:41 -06:00
Ben Johnson
cda1646ac6 Merge pull request #52 from benbjohnson/range
Add Range() support
2016-02-23 14:59:03 -07:00
Ben Johnson
cca8970019 add Range() support
This commit adds support for setting bits in time-based frames.
2016-02-23 14:53:03 -07:00
tgruben
660139e957 Merge pull request #50 from umbel/todd
added support for returning SetBit effect
2016-02-22 11:36:22 -06:00
Todd Gruben
08266d3496 cleaned up tests for SetBit 2016-02-22 11:30:06 -06:00
Todd Gruben
5862f714b3 removed debugging code' 2016-02-17 13:23:30 -06:00
Ben Johnson
b68c1caea0 fix int64 attr 2016-02-17 10:59:17 -07:00
Todd Gruben
4394a97db8 changed protobuf to uint; doesn't work 2016-02-17 11:06:57 -06:00
Todd Gruben
3bd5182f96 added support for returning SetBit effect 2016-02-16 17:38:56 -06:00
tgruben
c28585458d Merge pull request #49 from benbjohnson/attr
Refactor attribute stores
2016-02-16 16:27:22 -06:00
Ben Johnson
f0fa03da83 refactor attribute stores
This commit refactors the profile and bitmap attribute stores so
that they share the same code. There is a new `AttrStore` which
associates key/value pairs with a `uint64` identifier.

The previous JSON encoding has been fixed to use protobufs which
fixes encoding issues for int64.
2016-02-16 13:41:37 -07:00
tgruben
a16db08b32 Merge pull request #46 from benbjohnson/cache-persistence
Add cache persistence
2016-02-15 09:29:57 -06:00
Ben Johnson
b28e961f2e add cache persistence
This commit adds the ability of the Fragment to flush the cache
bitmap IDs to disk periodically. They can then be reloaded when
the fragment is reopened.
2016-02-13 10:02:53 -07:00
tgruben
5e11c4c746 Merge pull request #45 from benbjohnson/topn
TopN()
2016-02-10 15:00:41 -06:00
Ben Johnson
d3500c64f7 TopN()
This commit adds TopN() functionality to the fragment, executor
and handler.
2016-02-09 14:43:49 -07:00
tgruben
48fde6f74d Merge pull request #44 from benbjohnson/pql
Add bitmap and profile attribute support
2016-02-01 15:16:31 -06:00
Ben Johnson
e0937b79c0 add bitmap and profile attribute support
This commit adds the ability to set string, integer, and boolean
values on bitmaps and profiles within Pilosa. Bitmap attributes
are automatically returned when making a `Bitmap()` call. Profile
attributes must be requested by setting `profile=true` in the
URL.

The function names have also been renamed to initial caps so that
the PQL query language can support math operations in the future.
2016-02-01 08:44:33 -07:00
tgruben
6a08e53144 Merge pull request #42 from benbjohnson/attributes
Bitmap Attributes Storage
2016-01-19 11:17:19 -06:00
Ben Johnson
657cc8ad4c bitmap attributes
This commit adds storage for bitmap attributes and adds
a Frame type to contain them.
2016-01-15 11:49:09 -07:00
tgruben
a6a95f2693 Merge pull request #38 from benbjohnson/roaring-array-append-fix
Fix roaring array append
2016-01-09 17:18:17 -06:00
Ben Johnson
039ca1d91b fix roaring array append
This commit fixes a bug where appends to an array container did
not cause it to roll over to a bitmap container when it reached
the max array size.
2016-01-09 12:27:20 -07:00
Ben Johnson
9bbf9f1955 Merge pull request #37 from benbjohnson/import-error
Add import error string
2016-01-08 14:23:23 -07:00
Ben Johnson
db0b766829 add import error string 2016-01-08 14:22:54 -07:00
tgruben
8c4331d455 Merge pull request #35 from benbjohnson/roaring-uint64
Support uint64 in roaring bitmaps
2016-01-07 16:22:42 -06:00
Ben Johnson
bc11f36862 support uint64 in roaring bitmaps
This commit refactors the roaring bitmaps to use uint64 values
instead of uint32 values. This is required for the size of
values we need in pilosa.

This change is not backwards compatible with the previous data
format so any existing data directories need to be removed before
using this code.
2016-01-07 13:43:57 -07:00
Ben Johnson
d0ee823d6d Merge pull request #34 from umbel/testing
added support for period (.) in frame names
2016-01-06 14:28:36 -07:00
Todd Gruben
61f791eeac added support for period (.) in frame names 2016-01-06 15:24:25 -06:00
tgruben
ec43c46a57 Merge pull request #32 from benbjohnson/cluster-import
Cluster-wide Import
2016-01-06 09:31:26 -06:00
Ben Johnson
c12c186a73 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
d00cd6da56 Merge pull request #29 from benbjohnson/import
Bulk Importer
2016-01-02 15:14:41 -07:00