No description
Find a file
Seebs 8b20406f45 experiment: handle errors more gracefully, but don't stream CreateKeys
We were trying to write an error to a ResponseWriter After attempting to
write to it, and this produces messages about superfluous WriteHeaders,
which is correct. This patch changes things so that we report messages
more clearly and verbosely if we hit them before writing, and if we try
to write and fail, we log the message because that's all we can do.

This does change semantics slightly, in that now we're marshalling
separately from trying to write the marshalled data. I think this is
probably a reasonable call because it lets us get diagnostics about a
hypothetical encoding problem, but in practice I don't think there
should be any encoding problems. So my guess is the actual error will
occur in that last line, and be logged to the server console instead
of failing to write over HTTP.

Also note that this changes some of the messages to include the
underlying error they're complaining about.

We also merge the create/find and index/field cases because only a
couple of lines of code changed between four largeish functions,
and we test some of the failure cases.

We don't have test coverage on the "field isn't provided" type things
because the mux won't actually route things there without them, so
far as I know.
2021-12-01 11:06:54 -06:00
.artifactory Added in various CI files 2021-10-08 12:16:03 -07:00
.circleci remove references to LICENSE and checks for it in source files 2021-11-19 10:38:06 -06:00
.github remove references to CONTRIBUTING and CHANGELOG 2021-11-19 11:22:15 -06:00
.gitlab updated error messages 2021-11-23 20:28:14 -06:00
api/client FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
boltdb kill off a ton more fsyncs 2021-10-01 10:45:08 -05:00
client fix govet and gofmt errors in existing code 2021-10-29 13:14:27 -05:00
cmd added a generate only flag 2021-11-19 12:26:23 -06:00
ctl Import/ImportValue API rework and improvements 2021-11-05 13:06:38 -05:00
debugstats introduce storage.Config 2021-01-20 22:05:38 -06:00
disco replace roaring.Bitmap by [][]byte 2021-05-10 18:45:23 +02:00
encoding/proto encode/decode timestamp val appropriately 2021-11-22 10:08:18 -06:00
etcd reduce etcd fsyncs during testing 2021-10-01 10:45:08 -05:00
gcnotify FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
generator Address TODOs in roaring tests 2020-05-21 13:28:54 -05:00
gopsutil FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
hash FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
http experiment: handle errors more gracefully, but don't stream CreateKeys 2021-12-01 11:06:54 -06:00
ingest Improvements and benchmarks for ingest field operation sorting 2021-11-05 13:06:38 -05:00
ingest_testdata ingest and ingest/codec testing work 2021-08-19 09:50:59 -05:00
install add config files for release 2021-11-19 01:26:18 +03:00
internal Import/ImportValue API rework and improvements 2021-11-05 13:06:38 -05:00
lattice remove inline styling 2021-11-04 12:14:01 -05:00
logger FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
lru so much lint 2019-04-16 12:07:18 -05:00
mock FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
net Address PR comments 2021-03-24 18:09:01 +01:00
pb encode/decode timestamp val appropriately 2021-11-22 10:08:18 -06:00
pg address ben's comments 2021-10-12 11:21:14 -05:00
pql FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
prometheus FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
proto FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
qa updated error messages 2021-11-23 20:28:14 -06:00
rbf Update README.md 2021-11-29 09:18:44 -06:00
roaring remove references to LICENSE and checks for it in source files 2021-11-19 10:38:06 -06:00
scripts Fix benchmark file naming 2021-05-21 14:51:08 -06:00
server Merge branch 'master' into sup-102 2021-11-17 08:11:03 -06:00
shardwidth cleanup gofmt 2021-10-29 13:14:27 -05:00
short_txkey pilosa: only open views with data 2020-12-19 00:03:31 +00:00
sql . 2021-11-03 09:37:52 -05:00
sql2 fix govet and gofmt errors in existing code 2021-10-29 13:14:27 -05:00
statik FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
stats FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
statsd FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
storage Giant Commit: drop a bunch of stuff we don't use. 2021-10-26 12:30:25 -05:00
syswrap fix govet and gofmt errors in existing code 2021-10-29 13:14:27 -05:00
test Merge branch 'master' into sup-102 2021-11-17 08:11:03 -06:00
testdata Test cases for Store(Distinct) 2020-09-14 14:15:29 -05:00
testhook cleanup gofmt 2021-10-29 13:14:27 -05:00
toml Add license headers to files missing them and CI check to verify they are present. Fixes #1633 2019-04-12 11:30:41 -05:00
topology FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
tracing fix govet and gofmt errors in existing code 2021-10-29 13:14:27 -05:00
txkey pilosa: only open views with data 2020-12-19 00:03:31 +00:00
vprint Move vprint to separate pakage 2021-03-29 14:29:19 +02:00
.dockerignore Add new Docker build process and continuous delivery 2021-02-26 14:34:14 -06:00
.gitignore add featurebase to .gitignore 2021-10-26 09:15:44 -05:00
.golangci.yml fix govet and gofmt errors in existing code 2021-10-29 13:14:27 -05:00
api.go Import/ImportValue API rework and improvements 2021-11-05 13:06:38 -05:00
api_test.go Import/ImportValue API rework and improvements 2021-11-05 13:06:38 -05:00
apimethod_string.go remove attributes 2021-05-14 10:28:08 -04:00
audit.go FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
audit_internal_test.go FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
audit_test.go FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
broadcast.go FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
bsi.go FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
bsi_test.go introduce "fields" directory between index and field 2021-03-05 16:56:44 -06:00
cache.go fix govet and gofmt errors in existing code 2021-10-29 13:14:27 -05:00
cache_test.go FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
catcher.go Giant Commit: drop a bunch of stuff we don't use. 2021-10-26 12:30:25 -05:00
client.go Import/ImportValue API rework and improvements 2021-11-05 13:06:38 -05:00
cluster.go fix govet and gofmt errors in existing code 2021-10-29 13:14:27 -05:00
cluster_internal_test.go remove @ from yaml 2021-11-03 08:48:57 -05:00
cmd.go FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
const_amd64.go fix govet and gofmt errors in existing code 2021-10-29 13:14:27 -05:00
const_other.go remove lmdb as a Tx backend 2020-12-04 23:17:59 +00:00
cover-everything.sh removed filter 2021-11-16 12:08:46 -06:00
dbshard.go Giant Commit: drop a bunch of stuff we don't use. 2021-10-26 12:30:25 -05:00
dbshard_internal_test.go Giant Commit: drop a bunch of stuff we don't use. 2021-10-26 12:30:25 -05:00
dbshard_test.go FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
delete_test.go Giant Commit: drop a bunch of stuff we don't use. 2021-10-26 12:30:25 -05:00
diagnostics.go FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
diagnostics_internal_test.go FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
doc.go Apply Apache License 2.0 2017-04-28 14:22:03 -05:00
docker-compose-3.yml More rename to work with backup and cluster tests 2021-09-22 15:41:17 -05:00
Dockerfile remove references to LICENSE and checks for it in source files 2021-11-19 10:38:06 -06:00
Dockerfile-clustertests remove references to LICENSE and checks for it in source files 2021-11-19 10:38:06 -06:00
Dockerfile.pilosa remove references to LICENSE and checks for it in source files 2021-11-19 10:38:06 -06:00
Dockerfile.runner Rename docker builds to featurebase 2021-09-22 15:41:00 -05:00
event.go FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
executor.go remove extra line smh my head 2021-11-19 09:32:41 -06:00
executor_internal_test.go add unit test 2021-11-19 09:23:01 -06:00
executor_test.go remove helper status 2021-11-22 15:06:00 -06:00
field.go Import/ImportValue API rework and improvements 2021-11-05 13:06:38 -05:00
field_internal_test.go kill off a ton more fsyncs 2021-10-01 10:45:08 -05:00
field_test.go kill off a ton more fsyncs 2021-10-01 10:45:08 -05:00
filesystem.go Add missing file 2020-08-31 09:02:46 -05:00
fragment.go Perform sanity check only if we have the storage it runs on 2021-11-23 10:22:06 -06:00
fragment_internal_test.go bug with shadow correction 2021-10-30 10:44:23 -05:00
gc.go fix some lint warnings raised in VS-Code 2019-04-17 18:10:05 -05:00
gendebug_test.go FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
generation.go FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
generation_debug.go testhook: leak auditing infrastructure 2020-08-24 11:26:39 -05:00
generation_nodebug.go fix govet and gofmt errors in existing code 2021-10-29 13:14:27 -05:00
generation_test.go Tx integration milestone 2020-07-27 19:29:46 -04:00
gid.go database per shard, HolderConfig, rbf bit-wise import speedups. 2020-09-04 13:00:33 -05:00
go.mod Modified random query to use vegeta library 2021-11-18 16:23:12 -06:00
go.sum Modified random query to use vegeta library 2021-11-18 16:23:12 -06:00
hack.go fix govet and gofmt errors in existing code 2021-10-29 13:14:27 -05:00
handler.go Import/ImportValue API rework and improvements 2021-11-05 13:06:38 -05:00
holder.go fix govet and gofmt errors in existing code 2021-10-29 13:14:27 -05:00
holder_internal_test.go Giant Commit: drop a bunch of stuff we don't use. 2021-10-26 12:30:25 -05:00
holder_test.go kill off a ton more fsyncs 2021-10-01 10:45:08 -05:00
idalloc.go kill off a ton more fsyncs 2021-10-01 10:45:08 -05:00
idalloc_test.go reduce etcd fsyncs during testing 2021-10-01 10:45:08 -05:00
index.go Giant Commit: drop a bunch of stuff we don't use. 2021-10-26 12:30:25 -05:00
index_internal_test.go kill off a ton more fsyncs 2021-10-01 10:45:08 -05:00
index_test.go Add comment as to why we are using os.Exit instead of panic 2021-10-14 18:07:02 +03:00
ingest_test.go ingest cluster support 2021-09-27 12:05:57 -05:00
iterator.go FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
iterator_internal_test.go rename internal_tests. fix license header 2018-07-04 10:59:08 -05:00
license.exceptions update license header check exceptions 2021-05-14 10:45:46 -04:00
like.go execute like queries on the primary's key translation database 2021-05-27 14:45:10 -04:00
like_test.go execute like queries on the primary's key translation database 2021-05-27 14:45:10 -04:00
main_test.go bug with shadow correction 2021-10-30 10:44:23 -05:00
Makefile remove references to LICENSE and checks for it in source files 2021-11-19 10:38:06 -06:00
metrics.go remove attributes 2021-05-14 10:28:08 -04:00
mmap_test.go FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
nfpm.yaml FB-904: Add deb/rpm packaging of FeatureBase binary 2021-11-04 10:32:59 -06:00
NOTICE add config files for release 2021-11-19 01:26:18 +03:00
pilosa.go Update pilosa.go 2021-10-08 13:46:17 -07:00
pilosa_internal_test.go FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
pilosa_test.go FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
planner.go CORE-809: Aggregate COUNT() with INNER JOIN 2021-10-07 14:20:07 -06:00
planner_test.go CORE-809: Aggregate COUNT() with INNER JOIN 2021-10-07 14:20:07 -06:00
pprof.go FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
rbf.go fix govet and gofmt errors in existing code 2021-10-29 13:14:27 -05:00
README.md meaningless commit 2021-10-29 11:56:09 -05:00
row.go fix govet and gofmt errors in existing code 2021-10-29 13:14:27 -05:00
row_test.go FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
rrtx.go Giant Commit: drop a bunch of stuff we don't use. 2021-10-26 12:30:25 -05:00
rrtx_internal_test.go FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
serializer.go add a gob-encoding Serializer implementation for tests 2021-02-23 10:09:55 -06:00
server.go unbreak featurebase holder subcommand 2021-11-16 14:23:35 -06:00
server_internal_test.go kill off a ton more fsyncs 2021-10-01 10:45:08 -05:00
snapshotqueue.go FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
stattx.go Giant Commit: drop a bunch of stuff we don't use. 2021-10-26 12:30:25 -05:00
testBackupRestore.sh partial backup/restore 2021-10-08 10:50:52 -05:00
time.go fix govet and gofmt errors in existing code 2021-10-29 13:14:27 -05:00
time_internal_test.go avoid allocations in viewsByTime 2021-08-18 13:45:36 -05:00
tournament.sh remove instances of os.Getenv("PILOSA_TXSRC") 2021-01-21 21:18:46 -06:00
tracker.go ingest and ingest/codec testing work 2021-08-19 09:50:59 -05:00
tracker_test.go Update tests 2021-01-20 10:48:35 -06:00
transaction.go FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
transaction_test.go FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
translate.go kill off a ton more fsyncs 2021-10-01 10:45:08 -05:00
translator_test.go fix govet and gofmt errors in existing code 2021-10-29 13:14:27 -05:00
tx.go Giant Commit: drop a bunch of stuff we don't use. 2021-10-26 12:30:25 -05:00
tx_internal_test.go FeatureBase Renaming: changing go.mod module name for featurebase 2021-07-19 09:20:30 -07:00
tx_test.go make import correctly reflect that it needs a single shard always 2021-08-18 13:45:36 -05:00
txfactory.go Giant Commit: drop a bunch of stuff we don't use. 2021-10-26 12:30:25 -05:00
txfactory_internal_test.go Giant Commit: drop a bunch of stuff we don't use. 2021-10-26 12:30:25 -05:00
util.go refactor and add test 2021-11-16 14:53:30 -06:00
util_test.go refactor and add test 2021-11-16 14:53:30 -06:00
utils_internal_test.go Giant Commit: drop a bunch of stuff we don't use. 2021-10-26 12:30:25 -05:00
version.go FeatureBase renaming: version info in server log 2021-07-12 12:25:43 -07:00
view.go Giant Commit: drop a bunch of stuff we don't use. 2021-10-26 12:30:25 -05:00
view_internal_test.go kill off a ton more fsyncs 2021-10-01 10:45:08 -05:00

FeatureBase, a distributed bitmap index

See our internal documentation, which includes all external documentation, plus many internal-only pages, listed under the "Internal" heading in the main navigation bar.

Follow along with the Sample Project to get a better understanding of FeatureBase's capabilities.