Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Sorted key/value store (badger) backed storage plugin (#760)
* Implementation of sorted key/value store backed storage plugin for Jaeger. Implemented against badger for now. Implement Services() and Operations(service) using memory cached map which is filled from the K/V store on the startup. Also, move entry creation outside the Update() transaction to reduce blocking in the badger processing as well as implement correct TTL writing and reading. Fix ASC ordering of return set if only a single index seek was used Implement range index scanning for duration index, use common initialize and tear down for tests and benchmarks, implement a small write benchmark and do Span fetching in a single transaction. Duration only test Create configuration options and modify tests to use them. Rebased from master. Fixtures should use internal model and not domain model for comparison Fix badger storage to pass all the integration tests and enable integration tests for badger Add license headers Update dependencies Make lint happy Addressing review comments, replacing magic numbers with a sizeOf constant, using logger to indicate initialization is completed and io.Closer is used. Added maintenance thread that cleans up value log as well as exposes the size of data directories. Added some comments for multiple internal functions as well as refactored FindTraces to use more functions for easier reading. Default data directory (when ephmeral is not used) is now starting directory + data/keys and data/values. Fix domain_trace_compare to check for differences between data and not pointers Add support for protoBuf encoding/decoding and make it as a default instead of json encoding in the storage Fix merge error disk statistics are only built on a Linux platform, fixes darwin compilation issues Signed-off-by: Michael Burman <miburman@redhat.com> * Add stuff (and some tests also) to satisfy Codecov Signed-off-by: Michael Burman <miburman@redhat.com> * Add LastMaintenanceRun expvar for test purposes and remove error checks from stats_linux.go for codecov satisfaction Signed-off-by: Michael Burman <miburman@redhat.com> * Add more testing purposes timers Signed-off-by: Michael Burman <miburman@redhat.com> * Add dependency reader, address comments Signed-off-by: Michael Burman <miburman@redhat.com> * Replace expvar with metrics.Factory, rebase to new TraceReader API, remove unused code / comments, rename MaintenanceTimer, change visibility of the ticker, make Close() remove the temp files in most cases, update dependencies to Gopkg.toml Signed-off-by: Michael Burman <miburman@redhat.com> * Revert changes to the fixtures, outdated Signed-off-by: Michael Burman <miburman@redhat.com> * Satisfy gosimple by using Equal instead of Compare Signed-off-by: Michael Burman <miburman@redhat.com> * Make factory_test check for io.Closer implementation Signed-off-by: Michael Burman <miburman@redhat.com> * Make metrics vars private to fix the liner Signed-off-by: Yuri Shkuro <ys@uber.com> * Fix compile error in linux-only test Signed-off-by: Yuri Shkuro <ys@uber.com> * Create artificial test to hopefully cheat Codecov Signed-off-by: Michael Burman <miburman@redhat.com> * Add sign-off to empty_tests Signed-off-by: Michael Burman <miburman@redhat.com> * Rebased and changed to metricstest Signed-off-by: Michael Burman <miburman@redhat.com> * dep ensure --update Signed-off-by: Yuri Shkuro <ys@uber.com> * Refactor tests int sub-packages Signed-off-by: Yuri Shkuro <ys@uber.com> * dep ensure --update Signed-off-by: Yuri Shkuro <ys@uber.com> * Change cache interfaces and add new tests to reach higher coverage Signed-off-by: Michael Burman <yak@iki.fi> * Add more tests, including validation and encoding parsing tests Signed-off-by: Michael Burman <yak@iki.fi> * Fix test refactoring to get factory coverage back to 100% Signed-off-by: Michael Burman <yak@iki.fi> * Change dependencyreader to use spanstore Signed-off-by: Michael Burman <yak@iki.fi> * Remove redundant consts Signed-off-by: Michael Burman <yak@iki.fi> * dep update Signed-off-by: Yuri Shkuro <ys@uber.com> * make fmt Signed-off-by: Yuri Shkuro <ys@uber.com> * regen proto files Signed-off-by: Yuri Shkuro <ys@uber.com> * dep --update Signed-off-by: Yuri Shkuro <ys@uber.com> * make proto Signed-off-by: Yuri Shkuro <ys@uber.com>
- Loading branch information