Commit graph

83 commits

Author SHA1 Message Date
Mahesh Arumugam
858f889745 FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
Ben Johnson
ea01f7e37c Switch timestamp field to use epoch instead of min/max 2021-04-14 08:46:37 -06:00
Ben Johnson
cfc725e799 Add timestamp field type support 2021-04-06 10:50:10 -06:00
Ben Johnson
150c8a5b06 database per shard, HolderConfig, rbf bit-wise import speedups.
- introduce Query Context (Qcx) for managing database-per-shard.
- replaces the MultiTx, so mtx.go is retired and removed.
- introduces the HolderConfig struct and all Holders now have
  a path from birth.
- rbf speedups on bitwise writes
- badgerdb is removed due to unresolvable write conflicts.

fixes #703 #676
2020-09-04 13:00:33 -05:00
Seebs
cecaf99ee4 testhook: leak auditing infrastructure
The testhook/ package provides an easy way to set up multiple
hooks to run before/after tests are run.

The audit hooks track open and closes of storage backends,
files, indexes, and holders, for example. A tempdir wrapper
creates temporary directories which are automatically cleaned up
when the test ends. Any kind of resource creation that
should be closed at test conclusion can be tracked. We
will complain at the end of the TestMain if resources are
leaking.

Leaks under go1.13:

We use a wrapper function which is a no-op for go 1.13, but actually
calls testing.TB.Cleanup in go1.14, so we can still build with 1.13 even though
tests will leak files all over the place there. Because of this,
don't run the testhook tests when using 1.13, as they'll always fail.

- the test/pilosa.go http client now times out after 10 seconds
to help diagnose hung server situations.

- Makefile targets added to get better progress reports.
2020-08-24 11:26:39 -05:00
Seebs
ceaf5c15d1
thread the holder through things, and improve snapshot queue logic
This is logically two separate things, but the individual changes
are thoroughly intertwined in the code.

The first change is a logical change to the design of the snapshot
queue, which is that it now adjusts the maxOpN the background scan
targets, allowing it to lower that value over time when things are
quiet. We do this because it turns out that on large data sets,
this can make a factor-of-four difference in memory usage!

So, in general, on a quiet system, each pass through the holder
aims for about 1/4 of the existing fragments to get snapshotted.
When there's more load, we adjust those values up.

We also make the snapshot queue a bit less chatty, to make testing
less annoying -- we only print stats if the queue enqueues at least
two snapshots, or skips any.

The second change is threading the holder through things. We've
always threaded the logger through, and then added the snapshot
queue, and some of the Inspect-related work led to wanting to
have a way to thread options through, so what if we just threaded
the holder itself through, and removed the direct copying around
of the logger, snapshot queue, and so on. Similarly, everything
can now use holder.PartitionN instead of having to get its own
copy of PartitionN handed out to each index.

This does imply ensuring that test cases always get a reasonable
default holder.

This is a precursor to adding additional information to the holder,
such as whether it's in a special read-only mode, which would imply
not modifying on-disk files. This is already semi-supported for
the specific case of the background snapshot queue and cache flushing,
which are attached to the (created in a previous commit) new
holder Activate method, instead of being automatic on holder Open.

The change to a snapshot queue can also cause races in tests, because
the fragment.Clean method's "sanity check" accesses a fragment without
a lock. Fix that. Since there's a couple of t.Fatalf(), but we need
to release the lock before closing, we use an anonymous function
with a defer to handle that. Whee!
2020-06-29 15:13:50 -04:00
Travis
22cca67d6a Revert "back out the pql.Decimal changes"
This reverts commit 741ba9b268.
2020-04-01 17:46:46 -05:00
Travis
741ba9b268 back out the pql.Decimal changes 2020-04-01 11:10:33 -05:00
Travis
1da7cf09bb support pql.Decimal for decimal field min/max arguments 2020-03-27 16:02:47 -05:00
Kuba Podgórski
57eb741c24
Don't allow an int and decimal fields to be created with keys=true (#118) 2020-02-14 08:47:31 +01:00
Ben Johnson
82910911dd refactoring id partitioning 2020-01-08 09:47:43 -07:00
Ben Johnson
c7c9c1e1d7
v2.0.0
Co-authored-by: Cody Soyland <codysoyland@gmail.com>
2019-10-08 14:56:17 -06:00
Ben Johnson
40803372dd
Add min/max constraints; fix tests 2019-05-19 16:05:22 -06:00
Ben Johnson
d4de122549
Add min/max constraints 2019-05-17 15:52:17 -06:00
Ben Johnson
7ed9fba335
Unbounded BSI w/ sign magnitude
This commit implements BSI with variable bit depth using a
sign magnitudeto indicate whether a value is positive or negative.
This also rearranges the existence bit to be the first bit instead
of the last bit.
2019-05-17 15:52:17 -06:00
Yuce Tekol
3d54f737cd
ditch OptFieldTypeTimeWithOptions 2018-11-20 23:21:09 +03:00
Yuce Tekol
7913a419ae
adds NoStandardView field option. Fixes #1710 2018-11-08 18:33:39 +03:00
Travis Turner
44f0b992f6
change all CreateField() methods to take functional options instead of FieldOptions 2018-07-04 21:22:35 -05:00
Travis Turner
9633e34300
address feedback in PR 2018-07-01 19:54:10 -05:00
Travis Turner
8a5f5dd737
return an error when deleting a non-existent index or field 2018-07-01 19:54:09 -05:00
Travis Turner
5dd7a9556a
rename slice to shard 2018-06-28 14:07:07 -05:00
Travis Turner
6f4c50a4b5
move fragment_test into the pilosa package (internal) 2018-06-06 16:06:11 -05:00
Travis Turner
2a9b1e9e5b
final Frame to Field rename 2018-06-06 01:27:12 -05:00
Travis Turner
0f8bd62e33
more Frame to Field in tests. move frame*.go files to field*.go 2018-06-05 23:58:46 -05:00
Travis Turner
3531c128c4
GoRename Frame to Field in index.go 2018-06-05 22:33:48 -05:00
Travis Turner
1d3c4d6fcb
first pass at GoRename Frame to Field in frame.go 2018-06-05 17:52:22 -05:00
Travis Turner
207e9c2674
minor fixes 2018-06-05 12:30:59 -05:00
Travis Turner
dbb4cdf390
adjust the tests to match the new unexported Field and FrameOptions 2018-06-04 14:45:28 -05:00
Matt Jaffee
47f7beaecc
WIP removing inverse 2018-05-25 17:18:38 -05:00
Matt Jaffee
75e8a873b1
remove rangeEnabled option everywhere 2018-05-25 13:09:32 -05:00
Matt Jaffee
2b311d267c
check some unchecked errors 2018-05-15 10:42:55 -05:00
Matt Jaffee
616545cd5c
remove input definition, add install-stringer to Makefile
also removes one line of unreachable code in cluster.go (unrelated)
2018-05-14 17:14:20 -05:00
Travis Turner
e7151eb2a8
Remove Index.TimeQuantum 2018-04-18 08:17:26 -05:00
Matthew Jaffee
e56b8717b5
add better inverseEnabled with field test 2018-04-17 09:00:57 -05:00
Matthew Jaffee
fe0ba6280f
deprecate RangeEnabled, but leave in API
the RangeEnabled option now has no effect, but it still exists in the API. A few
tests still use it to ensure this. This would only be considered a breaking
change if someone was relying on Pilosa to enforce the RangeEnabled: false
option to prevent fields being created in certain frames. This seems unlikely.
2018-04-16 16:08:04 -05:00
Travis Turner
2a8172b2a3
Remove RowLabel support 2018-03-26 14:48:56 -05:00
Travis Turner
c9886b049b
Merge branch 'master' into cluster-resize working branch. 2017-12-04 22:18:57 -06:00
Yuce Tekol
8fdaea5777
fixed tests 2017-11-14 20:41:00 +03:00
Yuce Tekol
83be24f4d2
Removes column/row labels for input definition. Resolves #810 2017-11-10 18:00:45 +03:00
Travis Turner
fee1b55838
replace test ErrRangeCacheNotAllowed with ErrRangeCacheAllowed 2017-11-06 16:03:23 -06:00
Travis Turner
7e797efdc2
Allow CacheType to be set for a RangeEnabled frame (to apply to the standard frame) 2017-11-06 14:32:20 -06:00
Travis Turner
cd8542ca30
Remove FrameSchema. Move Fields to the Frame struct. 2017-10-26 11:11:05 -05:00
Travis
b91da2d0a4
Merge branch 'master' into input-definition 2017-07-26 14:44:31 -05:00
Linh Vo
326a162094 fixed review 2017-07-24 22:09:31 -05:00
Linh Vo
4aa487daac check range with CacheTypeNone 2017-07-21 13:28:20 -05:00
Michael Baird
a2ad3925d0 refactor input definition tests to use test utility package 2017-06-29 15:07:40 -05:00
Michael Baird
504d25b36f Merge remote-tracking branch 'origin/master' into input-definition
Conflicts:
	handler_test.go
	index_test.go
2017-06-29 14:32:50 -05:00
Michael Baird
56f8705407 return an error if the definition does not exist 2017-06-29 08:51:29 -05:00
Michael Baird
7cbe679640 handle input nil bit 2017-06-27 16:30:59 -05:00
Linh Vo
8653154dee merge handleAction 2017-06-27 16:29:10 -05:00