featurebase/cmd
Ben Johnson eff08af112 Separate physical data layout with views.
Previously, multiple frames with different prefixes were used to separate
different data layouts. This included separating standard row/column
layouts from inverted column/row layouts as well as storing aggregate
information for timestamp data.

Unfortunately, this caused frame meta data to be copied between multiple
frames and it made it difficult to keep these frames in sync.

This commit separates these different physical layouts into `Views`.
A `Frame` now has one or more views which represent each layout.
Fragments have been moved from under the `Frame` to be contained
within the `View`.

There are two primary views:

- `standard`
- `inverse`

If a frame has a time quantum, then views are generated for these
each of the standard/inverse views. For example a time quantum
of `YMDH` for the date `2000-01-02T00:00:00Z` would create the
following views:

- `standard_2000`
- `inverse_2000`
- `standard_200001`
- `inverse_200001`
- `standard_20000102`
- `inverse_20000102`

From the user's perspective, nothing should change in PQL. Different
PQL statements will handle the appropriate view automatically. For
example, `Bitmap()` and `Profile()` will fetch using the `standard`
view or the `inverse` view, respectively. The `Range()` statement
will lookup the appropriate time-based views automatically.
2017-03-24 13:57:02 -06:00
..
pilosa convert all subcommands to nonglobal style 2017-03-17 16:43:04 -05:00
backup.go Separate physical data layout with views. 2017-03-24 13:57:02 -06:00
backup_test.go add tests for backup cmd 2017-03-17 16:43:04 -05:00
bench.go change port 15000 to 10101 everywhere 2017-03-17 16:43:04 -05:00
bench_test.go add tests for subcommands 2017-03-17 16:43:04 -05:00
check.go convert all commands to use RunE and global Command var 2017-03-17 16:43:04 -05:00
check_test.go add tests for subcommands 2017-03-17 16:43:04 -05:00
config.go convert all commands to use RunE and global Command var 2017-03-17 16:43:04 -05:00
export.go change port 15000 to 10101 everywhere 2017-03-17 16:43:04 -05:00
export_test.go add tests for subcommands 2017-03-17 16:43:04 -05:00
import.go change port 15000 to 10101 everywhere 2017-03-17 16:43:04 -05:00
import_test.go add tests for subcommands 2017-03-17 16:43:04 -05:00
inspect.go put all cmd test helpers in root_test and return errors from them 2017-03-17 16:43:04 -05:00
inspect_test.go put all cmd test helpers in root_test and return errors from them 2017-03-17 16:43:04 -05:00
restore.go Separate physical data layout with views. 2017-03-24 13:57:02 -06:00
restore_test.go add tests for subcommands 2017-03-17 16:43:04 -05:00
root.go support the various ways of specifying bind addr 2017-03-17 16:43:04 -05:00
root_test.go add tests for subcommands 2017-03-17 16:43:04 -05:00
server.go add embedded struct to contain io for commands 2017-03-17 16:43:04 -05:00
server_test.go add tests for subcommands 2017-03-17 16:43:04 -05:00
sort.go convert all commands to use RunE and global Command var 2017-03-17 16:43:04 -05:00
sort_test.go add tests for subcommands 2017-03-17 16:43:04 -05:00