You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ha...@apache.org on 2022/08/24 23:55:18 UTC
[skywalking-banyandb] 01/01: Use bluge to implement inverted index
This is an automated email from the ASF dual-hosted git repository.
hanahmily pushed a commit to branch index-bluge
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb.git
commit 54ac2e21e682281f583fee070e34cea29644e67d
Author: Gao Hongtao <ha...@gmail.com>
AuthorDate: Wed Aug 24 23:46:56 2022 +0000
Use bluge to implement inverted index
Signed-off-by: Gao Hongtao <ha...@gmail.com>
---
banyand/tsdb/block.go | 14 +-
banyand/tsdb/index/writer.go | 207 +++++++------
banyand/tsdb/indexdb.go | 45 +--
banyand/tsdb/series_write.go | 18 +-
dist/LICENSE | 14 +-
.../license-github.com-axiomhq-hyperloglog.txt | 21 ++
...nse-github.com-blevesearch-go-porterstemmer.txt | 19 ++
.../license-github.com-blevesearch-mmap-go.txt | 25 ++
.../license-github.com-blevesearch-segment.txt} | 226 ++------------
...license-github.com-blevesearch-snowballstem.txt | 29 ++
.../license-github.com-blevesearch-vellum.txt} | 226 ++------------
...nse-github.com-blugelabs-bluge-segment-api.txt} | 226 ++------------
.../license-github.com-blugelabs-bluge.txt} | 226 ++------------
.../license-github.com-blugelabs-ice-v2.txt} | 226 ++------------
.../license-github.com-blugelabs-ice.txt} | 226 ++------------
.../license-github.com-caio-go-tdigest.txt | 21 ++
.../license-github.com-dgryski-go-metro.txt | 24 ++
go.mod | 14 +-
go.sum | 53 +++-
pkg/index/index.go | 22 +-
pkg/index/inverted/field_map.go | 90 ------
pkg/index/inverted/inverted.go | 331 ++++++++++-----------
pkg/index/inverted/inverted_test.go | 73 -----
pkg/index/inverted/mem.go | 245 ---------------
pkg/index/inverted/mem_test.go | 38 ---
pkg/index/inverted/term_map.go | 96 ------
pkg/index/lsm/lsm.go | 17 +-
pkg/index/testcases/duration.go | 4 +-
pkg/index/testcases/service_name.go | 8 +-
pkg/logger/logger.go | 4 +
30 files changed, 733 insertions(+), 2055 deletions(-)
diff --git a/banyand/tsdb/block.go b/banyand/tsdb/block.go
index a090f41..1dc1df0 100644
--- a/banyand/tsdb/block.go
+++ b/banyand/tsdb/block.go
@@ -295,8 +295,8 @@ type blockDelegate interface {
contains(ts time.Time) bool
write(key []byte, val []byte, ts time.Time) error
writePrimaryIndex(field index.Field, id common.ItemID) error
- writeLSMIndex(field index.Field, id common.ItemID) error
- writeInvertedIndex(field index.Field, id common.ItemID) error
+ writeLSMIndex(fields []index.Field, id common.ItemID) error
+ writeInvertedIndex(fields []index.Field, id common.ItemID) error
dataReader() kv.TimeSeriesReader
lsmIndexReader() index.Searcher
invertedIndexReader() index.Searcher
@@ -341,15 +341,15 @@ func (d *bDelegate) write(key []byte, val []byte, ts time.Time) error {
}
func (d *bDelegate) writePrimaryIndex(field index.Field, id common.ItemID) error {
- return d.delegate.lsmIndex.Write(field, id)
+ return d.delegate.lsmIndex.Write([]index.Field{field}, id)
}
-func (d *bDelegate) writeLSMIndex(field index.Field, id common.ItemID) error {
- return d.delegate.lsmIndex.Write(field, id)
+func (d *bDelegate) writeLSMIndex(fields []index.Field, id common.ItemID) error {
+ return d.delegate.lsmIndex.Write(fields, id)
}
-func (d *bDelegate) writeInvertedIndex(field index.Field, id common.ItemID) error {
- return d.delegate.invertedIndex.Write(field, id)
+func (d *bDelegate) writeInvertedIndex(fields []index.Field, id common.ItemID) error {
+ return d.delegate.invertedIndex.Write(fields, id)
}
func (d *bDelegate) contains(ts time.Time) bool {
diff --git a/banyand/tsdb/index/writer.go b/banyand/tsdb/index/writer.go
index 8b0dcc9..4204b0f 100644
--- a/banyand/tsdb/index/writer.go
+++ b/banyand/tsdb/index/writer.go
@@ -58,13 +58,20 @@ type WriterOptions struct {
EnableGlobalIndex bool
}
+const (
+ local = 1 << iota
+ global
+ inverted
+ tree
+)
+
type Writer struct {
l *logger.Logger
db tsdb.Supplier
shardNum uint32
enableGlobalIndex bool
ch chan Message
- indexRuleIndex []*partition.IndexRuleLocator
+ invertRuleIndex map[byte][]*partition.IndexRuleLocator
}
func NewWriter(ctx context.Context, options WriterOptions) *Writer {
@@ -78,7 +85,30 @@ func NewWriter(ctx context.Context, options WriterOptions) *Writer {
w.shardNum = options.ShardNum
w.db = options.DB
w.enableGlobalIndex = options.EnableGlobalIndex
- w.indexRuleIndex = partition.ParseIndexRuleLocators(options.Families, options.IndexRules)
+ w.invertRuleIndex = make(map[byte][]*partition.IndexRuleLocator, 4)
+ for _, ruleIndex := range partition.ParseIndexRuleLocators(options.Families, options.IndexRules) {
+ rule := ruleIndex.Rule
+ var key byte
+ switch rule.GetLocation() {
+ case databasev1.IndexRule_LOCATION_SERIES:
+ key = key | local
+ case databasev1.IndexRule_LOCATION_GLOBAL:
+ if !w.enableGlobalIndex {
+ w.l.Warn().Stringer("index-rule", ruleIndex.Rule).Msg("global index is disabled")
+ continue
+ }
+ key = key | global
+ }
+ switch rule.Type {
+ case databasev1.IndexRule_TYPE_INVERTED:
+ key = key | inverted
+ case databasev1.IndexRule_TYPE_TREE:
+ key = key | tree
+ }
+ rules := w.invertRuleIndex[key]
+ rules = append(rules, ruleIndex)
+ w.invertRuleIndex[key] = rules
+ }
w.ch = make(chan Message)
w.bootIndexGenerator()
return w
@@ -97,21 +127,11 @@ func (s *Writer) Close() error {
func (s *Writer) bootIndexGenerator() {
go func() {
for m := range s.ch {
- var err error
- for _, ruleIndex := range s.indexRuleIndex {
- rule := ruleIndex.Rule
- switch rule.GetLocation() {
- case databasev1.IndexRule_LOCATION_SERIES:
- err = multierr.Append(err, writeLocalIndex(m.LocalWriter, ruleIndex, m.Value))
- case databasev1.IndexRule_LOCATION_GLOBAL:
- if !s.enableGlobalIndex {
- s.l.Warn().Stringer("index-rule", ruleIndex.Rule).Msg("global index is disabled")
- continue
- }
- err = multierr.Append(err, s.writeGlobalIndex(m.Scope, ruleIndex, m.LocalWriter.ItemID(), m.Value))
- }
- }
- err = multierr.Append(err, m.BlockCloser.Close())
+ err := multierr.Combine(
+ s.writeLocalIndex(m.LocalWriter, m.Value),
+ s.writeGlobalIndex(m.Scope, m.LocalWriter.ItemID(), m.Value),
+ m.BlockCloser.Close(),
+ )
if err != nil {
s.l.Error().Err(err).Msg("encounter some errors when generating indices")
}
@@ -123,84 +143,95 @@ func (s *Writer) bootIndexGenerator() {
}
// TODO: should listen to pipeline in a distributed cluster
-func (s *Writer) writeGlobalIndex(scope tsdb.Entry, ruleIndex *partition.IndexRuleLocator, ref tsdb.GlobalItemID, value Value) error {
- values, _, err := getIndexValue(ruleIndex, value)
- if err != nil {
- return err
- }
- if values == nil {
- return nil
- }
- var errWriting error
- for _, val := range values {
- indexShardID, err := partition.ShardID(val, s.shardNum)
- if err != nil {
- return err
- }
- shard, err := s.db.SupplyTSDB().Shard(common.ShardID(indexShardID))
- if err != nil {
- return err
- }
- builder := shard.Index().WriterBuilder()
- indexWriter, err := builder.
- Scope(scope).
- GlobalItemID(ref).
- Time(value.Timestamp).
- Build()
- if err != nil {
- return err
+func (s *Writer) writeGlobalIndex(scope tsdb.Entry, ref tsdb.GlobalItemID, value Value) error {
+ collect := func(ruleIndexes []*partition.IndexRuleLocator, fn func(indexWriter tsdb.IndexWriter, fields []index.Field) error) error {
+ fields := make(map[uint][]index.Field)
+ for _, ruleIndex := range ruleIndexes {
+ values, _, err := getIndexValue(ruleIndex, value)
+ if err != nil {
+ return err
+ }
+ if values == nil {
+ continue
+ }
+ for _, val := range values {
+ indexShardID, err := partition.ShardID(val, s.shardNum)
+ if err != nil {
+ return err
+ }
+ rule := ruleIndex.Rule
+ rr := fields[indexShardID]
+ rr = append(rr, index.Field{
+ Key: index.FieldKey{
+ IndexRuleID: rule.GetMetadata().GetId(),
+ },
+ Term: val,
+ })
+ fields[indexShardID] = rr
+ }
}
- rule := ruleIndex.Rule
- switch rule.GetType() {
- case databasev1.IndexRule_TYPE_INVERTED:
- errWriting = multierr.Append(errWriting, indexWriter.WriteInvertedIndex(index.Field{
- Key: index.FieldKey{
- IndexRuleID: rule.GetMetadata().GetId(),
- },
- Term: val,
- }))
- case databasev1.IndexRule_TYPE_TREE:
- errWriting = multierr.Append(errWriting, indexWriter.WriteLSMIndex(index.Field{
- Key: index.FieldKey{
- IndexRuleID: rule.GetMetadata().GetId(),
- },
- Term: val,
- }))
+ for shardID, rules := range fields {
+ shard, err := s.db.SupplyTSDB().Shard(common.ShardID(shardID))
+ if err != nil {
+ return err
+ }
+ builder := shard.Index().WriterBuilder()
+ indexWriter, err := builder.
+ Scope(scope).
+ GlobalItemID(ref).
+ Time(value.Timestamp).
+ Build()
+ if err != nil {
+ return err
+ }
+ err = fn(indexWriter, rules)
+ if err != nil {
+ return err
+ }
}
+ return nil
}
- return errWriting
+ return multierr.Combine(
+ collect(s.invertRuleIndex[global|inverted], func(indexWriter tsdb.IndexWriter, fields []index.Field) error {
+ return indexWriter.WriteInvertedIndex(fields)
+ }),
+ collect(s.invertRuleIndex[global|tree], func(indexWriter tsdb.IndexWriter, fields []index.Field) error {
+ return indexWriter.WriteLSMIndex(fields)
+ }),
+ )
}
-func writeLocalIndex(writer tsdb.Writer, ruleIndex *partition.IndexRuleLocator, value Value) (err error) {
- values, _, err := getIndexValue(ruleIndex, value)
- if err != nil {
- return err
- }
- if values == nil {
- return nil
- }
- var errWriting error
- for _, val := range values {
- rule := ruleIndex.Rule
- switch rule.GetType() {
- case databasev1.IndexRule_TYPE_INVERTED:
- errWriting = multierr.Append(errWriting, writer.WriteInvertedIndex(index.Field{
- Key: index.FieldKey{
- IndexRuleID: rule.GetMetadata().GetId(),
- },
- Term: val,
- }))
- case databasev1.IndexRule_TYPE_TREE:
- errWriting = multierr.Append(errWriting, writer.WriteLSMIndex(index.Field{
- Key: index.FieldKey{
- IndexRuleID: rule.GetMetadata().GetId(),
- },
- Term: val,
- }))
+func (s *Writer) writeLocalIndex(writer tsdb.Writer, value Value) (err error) {
+ collect := func(ruleIndexes []*partition.IndexRuleLocator, fn func(fields []index.Field) error) error {
+ var fields []index.Field
+ for _, ruleIndex := range ruleIndexes {
+ values, _, err := getIndexValue(ruleIndex, value)
+ if err != nil {
+ return err
+ }
+ if values == nil {
+ continue
+ }
+ for _, val := range values {
+ rule := ruleIndex.Rule
+ fields = append(fields, index.Field{
+ Key: index.FieldKey{
+ IndexRuleID: rule.GetMetadata().GetId(),
+ },
+ Term: val,
+ })
+ }
}
+ return fn(fields)
}
-
- return errWriting
+ return multierr.Combine(
+ collect(s.invertRuleIndex[local|inverted], func(fields []index.Field) error {
+ return writer.WriteInvertedIndex(fields)
+ }),
+ collect(s.invertRuleIndex[local|tree], func(fields []index.Field) error {
+ return writer.WriteLSMIndex(fields)
+ }),
+ )
}
var ErrUnsupportedIndexType = errors.New("unsupported index type")
diff --git a/banyand/tsdb/indexdb.go b/banyand/tsdb/indexdb.go
index 261b39e..e7ce863 100644
--- a/banyand/tsdb/indexdb.go
+++ b/banyand/tsdb/indexdb.go
@@ -22,6 +22,7 @@ import (
"time"
"github.com/pkg/errors"
+ "go.uber.org/multierr"
"github.com/apache/skywalking-banyandb/api/common"
"github.com/apache/skywalking-banyandb/banyand/kv"
@@ -36,8 +37,8 @@ type IndexDatabase interface {
}
type IndexWriter interface {
- WriteLSMIndex(field index.Field) error
- WriteInvertedIndex(field index.Field) error
+ WriteLSMIndex(field []index.Field) error
+ WriteInvertedIndex(field []index.Field) error
}
type IndexWriterBuilder interface {
@@ -150,26 +151,34 @@ type indexWriter struct {
itemID *GlobalItemID
}
-func (i *indexWriter) WriteLSMIndex(field index.Field) error {
- if i.scope != nil {
- field.Key.SeriesID = GlobalSeriesID(i.scope)
- }
- key, err := field.Marshal()
- if err != nil {
- return err
+func (i *indexWriter) WriteLSMIndex(fields []index.Field) (err error) {
+ for _, field := range fields {
+ if i.scope != nil {
+ field.Key.SeriesID = GlobalSeriesID(i.scope)
+ }
+ key, errInternal := field.Marshal()
+ if errInternal != nil {
+ err = multierr.Append(err, errInternal)
+ continue
+ }
+ err = multierr.Append(err, i.seg.globalIndex.PutWithVersion(key, i.itemID.Marshal(), uint64(i.ts.UnixNano())))
}
- return i.seg.globalIndex.PutWithVersion(key, i.itemID.Marshal(), uint64(i.ts.UnixNano()))
+ return err
}
-func (i *indexWriter) WriteInvertedIndex(field index.Field) error {
- if i.scope != nil {
- field.Key.SeriesID = GlobalSeriesID(i.scope)
- }
- key, err := field.Marshal()
- if err != nil {
- return err
+func (i *indexWriter) WriteInvertedIndex(fields []index.Field) (err error) {
+ for _, field := range fields {
+ if i.scope != nil {
+ field.Key.SeriesID = GlobalSeriesID(i.scope)
+ }
+ key, errInternal := field.Marshal()
+ if errInternal != nil {
+ err = multierr.Append(err, errInternal)
+ continue
+ }
+ err = multierr.Append(err, i.seg.globalIndex.PutWithVersion(key, i.itemID.Marshal(), uint64(i.ts.UnixNano())))
}
- return i.seg.globalIndex.PutWithVersion(key, i.itemID.Marshal(), uint64(i.ts.UnixNano()))
+ return err
}
func GlobalSeriesID(scope Entry) common.SeriesID {
diff --git a/banyand/tsdb/series_write.go b/banyand/tsdb/series_write.go
index 0d0d82d..e3e4a22 100644
--- a/banyand/tsdb/series_write.go
+++ b/banyand/tsdb/series_write.go
@@ -145,14 +145,20 @@ func (w *writer) ItemID() GlobalItemID {
return *w.itemID
}
-func (w *writer) WriteLSMIndex(field index.Field) error {
- field.Key.SeriesID = w.itemID.SeriesID
- return w.block.writeLSMIndex(field, w.itemID.ID)
+func (w *writer) WriteLSMIndex(fields []index.Field) error {
+ for i, f := range fields {
+ f.Key.SeriesID = w.itemID.SeriesID
+ fields[i] = f
+ }
+ return w.block.writeLSMIndex(fields, w.itemID.ID)
}
-func (w *writer) WriteInvertedIndex(field index.Field) error {
- field.Key.SeriesID = w.itemID.SeriesID
- return w.block.writeInvertedIndex(field, w.itemID.ID)
+func (w *writer) WriteInvertedIndex(fields []index.Field) error {
+ for i, f := range fields {
+ f.Key.SeriesID = w.itemID.SeriesID
+ fields[i] = f
+ }
+ return w.block.writeInvertedIndex(fields, w.itemID.ID)
}
func (w *writer) String() string {
diff --git a/dist/LICENSE b/dist/LICENSE
index 7848d86..734f3c5 100644
--- a/dist/LICENSE
+++ b/dist/LICENSE
@@ -179,6 +179,12 @@ Apache-2.0 licenses
========================================================================
github.com/SkyAPM/badger/v3 v3.0.0-20220817114744-b3711444d876 Apache-2.0
+ github.com/blevesearch/segment v0.9.0 Apache-2.0
+ github.com/blevesearch/vellum v1.0.7 Apache-2.0
+ github.com/blugelabs/bluge v0.2.2 Apache-2.0
+ github.com/blugelabs/bluge_segment_api v0.2.0 Apache-2.0
+ github.com/blugelabs/ice v1.0.0 Apache-2.0
+ github.com/blugelabs/ice/v2 v2.0.1 Apache-2.0
github.com/coreos/go-semver v0.3.0 Apache-2.0
github.com/coreos/go-systemd/v22 v22.3.2 Apache-2.0
github.com/dgraph-io/ristretto v0.1.0 Apache-2.0
@@ -231,7 +237,7 @@ Apache-2.0 licenses
Apache-2.0 and BSD-3-Clause licenses
========================================================================
- github.com/RoaringBitmap/roaring v0.9.1 Apache-2.0 and BSD-3-Clause
+ github.com/RoaringBitmap/roaring v0.9.4 Apache-2.0 and BSD-3-Clause
========================================================================
BSD-2-Clause licenses
@@ -246,6 +252,8 @@ BSD-3-Clause licenses
========================================================================
github.com/bits-and-blooms/bitset v1.2.0 BSD-3-Clause
+ github.com/blevesearch/mmap-go v1.0.4 BSD-3-Clause
+ github.com/blevesearch/snowballstem v0.9.0 BSD-3-Clause
github.com/fsnotify/fsnotify v1.5.4 BSD-3-Clause
github.com/gogo/protobuf v1.3.2 BSD-3-Clause
github.com/golang/protobuf v1.5.2 BSD-3-Clause
@@ -283,9 +291,13 @@ MIT licenses
========================================================================
github.com/SkyAPM/clock v1.3.1-0.20220809233656-dc7607c94a97 MIT
+ github.com/axiomhq/hyperloglog v0.0.0-20191112132149-a4c4c47bc57f MIT
github.com/beorn7/perks v1.0.1 MIT
+ github.com/blevesearch/go-porterstemmer v1.0.3 MIT
+ github.com/caio/go-tdigest v3.1.0+incompatible MIT
github.com/cespare/xxhash v1.1.0 MIT
github.com/cespare/xxhash/v2 v2.1.2 MIT
+ github.com/dgryski/go-metro v0.0.0-20180109044635-280f6062b5bc MIT
github.com/dustin/go-humanize v1.0.0 MIT
github.com/form3tech-oss/jwt-go v3.2.3+incompatible MIT
github.com/go-chi/chi/v5 v5.0.7 MIT
diff --git a/dist/licenses/license-github.com-axiomhq-hyperloglog.txt b/dist/licenses/license-github.com-axiomhq-hyperloglog.txt
new file mode 100644
index 0000000..8436fdb
--- /dev/null
+++ b/dist/licenses/license-github.com-axiomhq-hyperloglog.txt
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2017 Axiom Inc. <se...@axiom.sh>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/dist/licenses/license-github.com-blevesearch-go-porterstemmer.txt b/dist/licenses/license-github.com-blevesearch-go-porterstemmer.txt
new file mode 100644
index 0000000..8d2999c
--- /dev/null
+++ b/dist/licenses/license-github.com-blevesearch-go-porterstemmer.txt
@@ -0,0 +1,19 @@
+Copyright (c) 2013 Charles Iliya Krempeaux <ch...@reptile.ca> :: http://changelog.ca/
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/dist/licenses/license-github.com-blevesearch-mmap-go.txt b/dist/licenses/license-github.com-blevesearch-mmap-go.txt
new file mode 100644
index 0000000..8f05f33
--- /dev/null
+++ b/dist/licenses/license-github.com-blevesearch-mmap-go.txt
@@ -0,0 +1,25 @@
+Copyright (c) 2011, Evan Shaw <ed...@gmail.com>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the name of the copyright holder nor the
+ names of its contributors may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
diff --git a/dist/LICENSE b/dist/licenses/license-github.com-blevesearch-segment.txt
similarity index 53%
copy from dist/LICENSE
copy to dist/licenses/license-github.com-blevesearch-segment.txt
index 7848d86..7a4a3ea 100644
--- a/dist/LICENSE
+++ b/dist/licenses/license-github.com-blevesearch-segment.txt
@@ -1,3 +1,4 @@
+
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
@@ -173,204 +174,29 @@
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
-========================================================================
-Apache-2.0 licenses
-========================================================================
-
- github.com/SkyAPM/badger/v3 v3.0.0-20220817114744-b3711444d876 Apache-2.0
- github.com/coreos/go-semver v0.3.0 Apache-2.0
- github.com/coreos/go-systemd/v22 v22.3.2 Apache-2.0
- github.com/dgraph-io/ristretto v0.1.0 Apache-2.0
- github.com/envoyproxy/protoc-gen-validate v0.1.0 Apache-2.0
- github.com/golang/glog v1.0.0 Apache-2.0
- github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da Apache-2.0
- github.com/golang/mock v1.6.0 Apache-2.0
- github.com/google/btree v1.0.1 Apache-2.0
- github.com/google/flatbuffers v1.12.1 Apache-2.0
- github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 Apache-2.0
- github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 Apache-2.0
- github.com/inconshreveable/mousetrap v1.0.0 Apache-2.0
- github.com/jonboulle/clockwork v0.2.2 Apache-2.0
- github.com/matttproud/golang_protobuf_extensions v1.0.1 Apache-2.0
- github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd Apache-2.0
- github.com/modern-go/reflect2 v1.0.2 Apache-2.0
- github.com/mschoch/smat v0.2.0 Apache-2.0
- github.com/oklog/run v1.1.0 Apache-2.0
- github.com/prometheus/client_golang v1.12.2 Apache-2.0
- github.com/prometheus/client_model v0.2.0 Apache-2.0
- github.com/prometheus/common v0.32.1 Apache-2.0
- github.com/prometheus/procfs v0.7.3 Apache-2.0
- github.com/soheilhy/cmux v0.1.5 Apache-2.0
- github.com/spf13/afero v1.8.2 Apache-2.0
- github.com/spf13/cobra v1.4.0 Apache-2.0
- go.etcd.io/etcd/api/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/client/pkg/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/client/v2 v2.305.4 Apache-2.0
- go.etcd.io/etcd/client/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/pkg/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/raft/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/server/v3 v3.5.4 Apache-2.0
- go.opencensus.io v0.23.0 Apache-2.0
- go.opentelemetry.io/contrib v0.20.0 Apache-2.0
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0 Apache-2.0
- go.opentelemetry.io/otel v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/exporters/otlp v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/metric v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/sdk v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/sdk/export/metric v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/sdk/metric v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/trace v0.20.0 Apache-2.0
- go.opentelemetry.io/proto/otlp v0.7.0 Apache-2.0
- google.golang.org/genproto v0.0.0-20220615141314-f1464d18c36b Apache-2.0
- google.golang.org/grpc v1.47.0 Apache-2.0
- gopkg.in/ini.v1 v1.66.4 Apache-2.0
- gopkg.in/yaml.v2 v2.4.0 Apache-2.0
-
-========================================================================
-Apache-2.0 and BSD-3-Clause licenses
-========================================================================
-
- github.com/RoaringBitmap/roaring v0.9.1 Apache-2.0 and BSD-3-Clause
-
-========================================================================
-BSD-2-Clause licenses
-========================================================================
-
- github.com/gorilla/websocket v1.4.2 BSD-2-Clause
- github.com/magiconair/properties v1.8.6 BSD-2-Clause
- github.com/pkg/errors v0.9.1 BSD-2-Clause
-
-========================================================================
-BSD-3-Clause licenses
-========================================================================
-
- github.com/bits-and-blooms/bitset v1.2.0 BSD-3-Clause
- github.com/fsnotify/fsnotify v1.5.4 BSD-3-Clause
- github.com/gogo/protobuf v1.3.2 BSD-3-Clause
- github.com/golang/protobuf v1.5.2 BSD-3-Clause
- github.com/golang/snappy v0.0.3 BSD-3-Clause
- github.com/google/go-cmp v0.5.8 BSD-3-Clause
- github.com/google/uuid v1.3.0 BSD-3-Clause
- github.com/grpc-ecosystem/grpc-gateway v1.16.0 BSD-3-Clause
- github.com/grpc-ecosystem/grpc-gateway/v2 v2.10.3 BSD-3-Clause
- github.com/pmezard/go-difflib v1.0.0 BSD-3-Clause
- github.com/spf13/pflag v1.0.5 BSD-3-Clause
- golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 BSD-3-Clause
- golang.org/x/exp v0.0.0-20220602145555-4a0574d9293f BSD-3-Clause
- golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 BSD-3-Clause
- golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2 BSD-3-Clause
- golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a BSD-3-Clause
- golang.org/x/text v0.3.7 BSD-3-Clause
- golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba BSD-3-Clause
- golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df BSD-3-Clause
- google.golang.org/protobuf v1.28.0 BSD-3-Clause
-
-========================================================================
-BSD-3-Clause and Apache-2.0 and MIT licenses
-========================================================================
-
- github.com/klauspost/compress v1.15.6 BSD-3-Clause and Apache-2.0 and MIT
-
-========================================================================
-ISC licenses
-========================================================================
-
- github.com/davecgh/go-spew v1.1.1 ISC
-
-========================================================================
-MIT licenses
-========================================================================
-
- github.com/SkyAPM/clock v1.3.1-0.20220809233656-dc7607c94a97 MIT
- github.com/beorn7/perks v1.0.1 MIT
- github.com/cespare/xxhash v1.1.0 MIT
- github.com/cespare/xxhash/v2 v2.1.2 MIT
- github.com/dustin/go-humanize v1.0.0 MIT
- github.com/form3tech-oss/jwt-go v3.2.3+incompatible MIT
- github.com/go-chi/chi/v5 v5.0.7 MIT
- github.com/json-iterator/go v1.1.12 MIT
- github.com/mitchellh/mapstructure v1.5.0 MIT
- github.com/onsi/ginkgo/v2 v2.1.4 MIT
- github.com/onsi/gomega v1.20.0 MIT
- github.com/pelletier/go-toml/v2 v2.0.1 MIT
- github.com/rs/zerolog v1.26.1 MIT
- github.com/sirupsen/logrus v1.7.0 MIT
- github.com/spf13/cast v1.5.0 MIT
- github.com/spf13/jwalterweatherman v1.1.0 MIT
- github.com/spf13/viper v1.12.0 MIT
- github.com/stretchr/objx v0.1.1 MIT
- github.com/stretchr/testify v1.7.1 MIT
- github.com/subosito/gotenv v1.3.0 MIT
- github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802 MIT
- github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 MIT
- go.etcd.io/bbolt v1.3.6 MIT
- go.uber.org/atomic v1.7.0 MIT
- go.uber.org/multierr v1.8.0 MIT
- go.uber.org/zap v1.17.0 MIT
- gopkg.in/natefinch/lumberjack.v2 v2.0.0 MIT
-
-========================================================================
-MIT and Apache-2.0 licenses
-========================================================================
-
- github.com/pelletier/go-toml v1.9.5 MIT and Apache-2.0
- gopkg.in/yaml.v3 v3.0.1 MIT and Apache-2.0
-
-========================================================================
-MIT and BSD-3-Clause licenses
-========================================================================
-
- sigs.k8s.io/yaml v1.2.0 MIT and BSD-3-Clause
-
-========================================================================
-MPL-2.0 licenses
-========================================================================
-
- github.com/hashicorp/golang-lru v0.5.4 MPL-2.0
- github.com/hashicorp/hcl v1.0.0 MPL-2.0
-
-========================================================================
-UI related licenses
-========================================================================
-
-The following components are used in UI.See project link for details.
-The text of each license is also included at licenses/ui-licenses/LICENSE-[project].txt.
-
-
-========================================================================
-0BSD licenses
-========================================================================
-
- tslib 2.3.0 0BSD
-
-========================================================================
-Apache-2.0 licenses
-========================================================================
-
- echarts 5.3.3 Apache-2.0
-
-========================================================================
-BSD-3-Clause licenses
-========================================================================
-
- normalize-wheel 1.0.1 BSD-3-Clause
- zrender 5.3.2 BSD-3-Clause
-
-========================================================================
-MIT licenses
-========================================================================
-
- async-validator MIT
- babel-helper-vue-jsx-merge-props 2.0.3 MIT
- babel-runtime 6.26.0 MIT
- babel-runtime/node_modules/core-js 2.6.12 MIT
- babel-runtime/node_modules/regenerator-runtime 0.11.1 MIT
- core-js 3.22.8 MIT
- deepmerge 1.5.2 MIT
- element-ui 2.15.9 MIT
- resize-observer-polyfill 1.5.1 MIT
- throttle-debounce 1.1.0 MIT
- vue 2.6.14 MIT
- vue-router 3.5.4 MIT
- vuex 3.6.2 MIT
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
\ No newline at end of file
diff --git a/dist/licenses/license-github.com-blevesearch-snowballstem.txt b/dist/licenses/license-github.com-blevesearch-snowballstem.txt
new file mode 100644
index 0000000..f36607f
--- /dev/null
+++ b/dist/licenses/license-github.com-blevesearch-snowballstem.txt
@@ -0,0 +1,29 @@
+Copyright (c) 2001, Dr Martin Porter
+Copyright (c) 2004,2005, Richard Boulton
+Copyright (c) 2013, Yoshiki Shibukawa
+Copyright (c) 2006,2007,2009,2010,2011,2014-2019, Olly Betts
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. Neither the name of the Snowball project nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/dist/LICENSE b/dist/licenses/license-github.com-blevesearch-vellum.txt
similarity index 53%
copy from dist/LICENSE
copy to dist/licenses/license-github.com-blevesearch-vellum.txt
index 7848d86..7a4a3ea 100644
--- a/dist/LICENSE
+++ b/dist/licenses/license-github.com-blevesearch-vellum.txt
@@ -1,3 +1,4 @@
+
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
@@ -173,204 +174,29 @@
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
-========================================================================
-Apache-2.0 licenses
-========================================================================
-
- github.com/SkyAPM/badger/v3 v3.0.0-20220817114744-b3711444d876 Apache-2.0
- github.com/coreos/go-semver v0.3.0 Apache-2.0
- github.com/coreos/go-systemd/v22 v22.3.2 Apache-2.0
- github.com/dgraph-io/ristretto v0.1.0 Apache-2.0
- github.com/envoyproxy/protoc-gen-validate v0.1.0 Apache-2.0
- github.com/golang/glog v1.0.0 Apache-2.0
- github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da Apache-2.0
- github.com/golang/mock v1.6.0 Apache-2.0
- github.com/google/btree v1.0.1 Apache-2.0
- github.com/google/flatbuffers v1.12.1 Apache-2.0
- github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 Apache-2.0
- github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 Apache-2.0
- github.com/inconshreveable/mousetrap v1.0.0 Apache-2.0
- github.com/jonboulle/clockwork v0.2.2 Apache-2.0
- github.com/matttproud/golang_protobuf_extensions v1.0.1 Apache-2.0
- github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd Apache-2.0
- github.com/modern-go/reflect2 v1.0.2 Apache-2.0
- github.com/mschoch/smat v0.2.0 Apache-2.0
- github.com/oklog/run v1.1.0 Apache-2.0
- github.com/prometheus/client_golang v1.12.2 Apache-2.0
- github.com/prometheus/client_model v0.2.0 Apache-2.0
- github.com/prometheus/common v0.32.1 Apache-2.0
- github.com/prometheus/procfs v0.7.3 Apache-2.0
- github.com/soheilhy/cmux v0.1.5 Apache-2.0
- github.com/spf13/afero v1.8.2 Apache-2.0
- github.com/spf13/cobra v1.4.0 Apache-2.0
- go.etcd.io/etcd/api/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/client/pkg/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/client/v2 v2.305.4 Apache-2.0
- go.etcd.io/etcd/client/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/pkg/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/raft/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/server/v3 v3.5.4 Apache-2.0
- go.opencensus.io v0.23.0 Apache-2.0
- go.opentelemetry.io/contrib v0.20.0 Apache-2.0
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0 Apache-2.0
- go.opentelemetry.io/otel v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/exporters/otlp v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/metric v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/sdk v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/sdk/export/metric v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/sdk/metric v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/trace v0.20.0 Apache-2.0
- go.opentelemetry.io/proto/otlp v0.7.0 Apache-2.0
- google.golang.org/genproto v0.0.0-20220615141314-f1464d18c36b Apache-2.0
- google.golang.org/grpc v1.47.0 Apache-2.0
- gopkg.in/ini.v1 v1.66.4 Apache-2.0
- gopkg.in/yaml.v2 v2.4.0 Apache-2.0
-
-========================================================================
-Apache-2.0 and BSD-3-Clause licenses
-========================================================================
-
- github.com/RoaringBitmap/roaring v0.9.1 Apache-2.0 and BSD-3-Clause
-
-========================================================================
-BSD-2-Clause licenses
-========================================================================
-
- github.com/gorilla/websocket v1.4.2 BSD-2-Clause
- github.com/magiconair/properties v1.8.6 BSD-2-Clause
- github.com/pkg/errors v0.9.1 BSD-2-Clause
-
-========================================================================
-BSD-3-Clause licenses
-========================================================================
-
- github.com/bits-and-blooms/bitset v1.2.0 BSD-3-Clause
- github.com/fsnotify/fsnotify v1.5.4 BSD-3-Clause
- github.com/gogo/protobuf v1.3.2 BSD-3-Clause
- github.com/golang/protobuf v1.5.2 BSD-3-Clause
- github.com/golang/snappy v0.0.3 BSD-3-Clause
- github.com/google/go-cmp v0.5.8 BSD-3-Clause
- github.com/google/uuid v1.3.0 BSD-3-Clause
- github.com/grpc-ecosystem/grpc-gateway v1.16.0 BSD-3-Clause
- github.com/grpc-ecosystem/grpc-gateway/v2 v2.10.3 BSD-3-Clause
- github.com/pmezard/go-difflib v1.0.0 BSD-3-Clause
- github.com/spf13/pflag v1.0.5 BSD-3-Clause
- golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 BSD-3-Clause
- golang.org/x/exp v0.0.0-20220602145555-4a0574d9293f BSD-3-Clause
- golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 BSD-3-Clause
- golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2 BSD-3-Clause
- golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a BSD-3-Clause
- golang.org/x/text v0.3.7 BSD-3-Clause
- golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba BSD-3-Clause
- golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df BSD-3-Clause
- google.golang.org/protobuf v1.28.0 BSD-3-Clause
-
-========================================================================
-BSD-3-Clause and Apache-2.0 and MIT licenses
-========================================================================
-
- github.com/klauspost/compress v1.15.6 BSD-3-Clause and Apache-2.0 and MIT
-
-========================================================================
-ISC licenses
-========================================================================
-
- github.com/davecgh/go-spew v1.1.1 ISC
-
-========================================================================
-MIT licenses
-========================================================================
-
- github.com/SkyAPM/clock v1.3.1-0.20220809233656-dc7607c94a97 MIT
- github.com/beorn7/perks v1.0.1 MIT
- github.com/cespare/xxhash v1.1.0 MIT
- github.com/cespare/xxhash/v2 v2.1.2 MIT
- github.com/dustin/go-humanize v1.0.0 MIT
- github.com/form3tech-oss/jwt-go v3.2.3+incompatible MIT
- github.com/go-chi/chi/v5 v5.0.7 MIT
- github.com/json-iterator/go v1.1.12 MIT
- github.com/mitchellh/mapstructure v1.5.0 MIT
- github.com/onsi/ginkgo/v2 v2.1.4 MIT
- github.com/onsi/gomega v1.20.0 MIT
- github.com/pelletier/go-toml/v2 v2.0.1 MIT
- github.com/rs/zerolog v1.26.1 MIT
- github.com/sirupsen/logrus v1.7.0 MIT
- github.com/spf13/cast v1.5.0 MIT
- github.com/spf13/jwalterweatherman v1.1.0 MIT
- github.com/spf13/viper v1.12.0 MIT
- github.com/stretchr/objx v0.1.1 MIT
- github.com/stretchr/testify v1.7.1 MIT
- github.com/subosito/gotenv v1.3.0 MIT
- github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802 MIT
- github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 MIT
- go.etcd.io/bbolt v1.3.6 MIT
- go.uber.org/atomic v1.7.0 MIT
- go.uber.org/multierr v1.8.0 MIT
- go.uber.org/zap v1.17.0 MIT
- gopkg.in/natefinch/lumberjack.v2 v2.0.0 MIT
-
-========================================================================
-MIT and Apache-2.0 licenses
-========================================================================
-
- github.com/pelletier/go-toml v1.9.5 MIT and Apache-2.0
- gopkg.in/yaml.v3 v3.0.1 MIT and Apache-2.0
-
-========================================================================
-MIT and BSD-3-Clause licenses
-========================================================================
-
- sigs.k8s.io/yaml v1.2.0 MIT and BSD-3-Clause
-
-========================================================================
-MPL-2.0 licenses
-========================================================================
-
- github.com/hashicorp/golang-lru v0.5.4 MPL-2.0
- github.com/hashicorp/hcl v1.0.0 MPL-2.0
-
-========================================================================
-UI related licenses
-========================================================================
-
-The following components are used in UI.See project link for details.
-The text of each license is also included at licenses/ui-licenses/LICENSE-[project].txt.
-
-
-========================================================================
-0BSD licenses
-========================================================================
-
- tslib 2.3.0 0BSD
-
-========================================================================
-Apache-2.0 licenses
-========================================================================
-
- echarts 5.3.3 Apache-2.0
-
-========================================================================
-BSD-3-Clause licenses
-========================================================================
-
- normalize-wheel 1.0.1 BSD-3-Clause
- zrender 5.3.2 BSD-3-Clause
-
-========================================================================
-MIT licenses
-========================================================================
-
- async-validator MIT
- babel-helper-vue-jsx-merge-props 2.0.3 MIT
- babel-runtime 6.26.0 MIT
- babel-runtime/node_modules/core-js 2.6.12 MIT
- babel-runtime/node_modules/regenerator-runtime 0.11.1 MIT
- core-js 3.22.8 MIT
- deepmerge 1.5.2 MIT
- element-ui 2.15.9 MIT
- resize-observer-polyfill 1.5.1 MIT
- throttle-debounce 1.1.0 MIT
- vue 2.6.14 MIT
- vue-router 3.5.4 MIT
- vuex 3.6.2 MIT
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
\ No newline at end of file
diff --git a/dist/LICENSE b/dist/licenses/license-github.com-blugelabs-bluge-segment-api.txt
similarity index 53%
copy from dist/LICENSE
copy to dist/licenses/license-github.com-blugelabs-bluge-segment-api.txt
index 7848d86..7a4a3ea 100644
--- a/dist/LICENSE
+++ b/dist/licenses/license-github.com-blugelabs-bluge-segment-api.txt
@@ -1,3 +1,4 @@
+
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
@@ -173,204 +174,29 @@
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
-========================================================================
-Apache-2.0 licenses
-========================================================================
-
- github.com/SkyAPM/badger/v3 v3.0.0-20220817114744-b3711444d876 Apache-2.0
- github.com/coreos/go-semver v0.3.0 Apache-2.0
- github.com/coreos/go-systemd/v22 v22.3.2 Apache-2.0
- github.com/dgraph-io/ristretto v0.1.0 Apache-2.0
- github.com/envoyproxy/protoc-gen-validate v0.1.0 Apache-2.0
- github.com/golang/glog v1.0.0 Apache-2.0
- github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da Apache-2.0
- github.com/golang/mock v1.6.0 Apache-2.0
- github.com/google/btree v1.0.1 Apache-2.0
- github.com/google/flatbuffers v1.12.1 Apache-2.0
- github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 Apache-2.0
- github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 Apache-2.0
- github.com/inconshreveable/mousetrap v1.0.0 Apache-2.0
- github.com/jonboulle/clockwork v0.2.2 Apache-2.0
- github.com/matttproud/golang_protobuf_extensions v1.0.1 Apache-2.0
- github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd Apache-2.0
- github.com/modern-go/reflect2 v1.0.2 Apache-2.0
- github.com/mschoch/smat v0.2.0 Apache-2.0
- github.com/oklog/run v1.1.0 Apache-2.0
- github.com/prometheus/client_golang v1.12.2 Apache-2.0
- github.com/prometheus/client_model v0.2.0 Apache-2.0
- github.com/prometheus/common v0.32.1 Apache-2.0
- github.com/prometheus/procfs v0.7.3 Apache-2.0
- github.com/soheilhy/cmux v0.1.5 Apache-2.0
- github.com/spf13/afero v1.8.2 Apache-2.0
- github.com/spf13/cobra v1.4.0 Apache-2.0
- go.etcd.io/etcd/api/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/client/pkg/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/client/v2 v2.305.4 Apache-2.0
- go.etcd.io/etcd/client/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/pkg/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/raft/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/server/v3 v3.5.4 Apache-2.0
- go.opencensus.io v0.23.0 Apache-2.0
- go.opentelemetry.io/contrib v0.20.0 Apache-2.0
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0 Apache-2.0
- go.opentelemetry.io/otel v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/exporters/otlp v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/metric v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/sdk v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/sdk/export/metric v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/sdk/metric v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/trace v0.20.0 Apache-2.0
- go.opentelemetry.io/proto/otlp v0.7.0 Apache-2.0
- google.golang.org/genproto v0.0.0-20220615141314-f1464d18c36b Apache-2.0
- google.golang.org/grpc v1.47.0 Apache-2.0
- gopkg.in/ini.v1 v1.66.4 Apache-2.0
- gopkg.in/yaml.v2 v2.4.0 Apache-2.0
-
-========================================================================
-Apache-2.0 and BSD-3-Clause licenses
-========================================================================
-
- github.com/RoaringBitmap/roaring v0.9.1 Apache-2.0 and BSD-3-Clause
-
-========================================================================
-BSD-2-Clause licenses
-========================================================================
-
- github.com/gorilla/websocket v1.4.2 BSD-2-Clause
- github.com/magiconair/properties v1.8.6 BSD-2-Clause
- github.com/pkg/errors v0.9.1 BSD-2-Clause
-
-========================================================================
-BSD-3-Clause licenses
-========================================================================
-
- github.com/bits-and-blooms/bitset v1.2.0 BSD-3-Clause
- github.com/fsnotify/fsnotify v1.5.4 BSD-3-Clause
- github.com/gogo/protobuf v1.3.2 BSD-3-Clause
- github.com/golang/protobuf v1.5.2 BSD-3-Clause
- github.com/golang/snappy v0.0.3 BSD-3-Clause
- github.com/google/go-cmp v0.5.8 BSD-3-Clause
- github.com/google/uuid v1.3.0 BSD-3-Clause
- github.com/grpc-ecosystem/grpc-gateway v1.16.0 BSD-3-Clause
- github.com/grpc-ecosystem/grpc-gateway/v2 v2.10.3 BSD-3-Clause
- github.com/pmezard/go-difflib v1.0.0 BSD-3-Clause
- github.com/spf13/pflag v1.0.5 BSD-3-Clause
- golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 BSD-3-Clause
- golang.org/x/exp v0.0.0-20220602145555-4a0574d9293f BSD-3-Clause
- golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 BSD-3-Clause
- golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2 BSD-3-Clause
- golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a BSD-3-Clause
- golang.org/x/text v0.3.7 BSD-3-Clause
- golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba BSD-3-Clause
- golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df BSD-3-Clause
- google.golang.org/protobuf v1.28.0 BSD-3-Clause
-
-========================================================================
-BSD-3-Clause and Apache-2.0 and MIT licenses
-========================================================================
-
- github.com/klauspost/compress v1.15.6 BSD-3-Clause and Apache-2.0 and MIT
-
-========================================================================
-ISC licenses
-========================================================================
-
- github.com/davecgh/go-spew v1.1.1 ISC
-
-========================================================================
-MIT licenses
-========================================================================
-
- github.com/SkyAPM/clock v1.3.1-0.20220809233656-dc7607c94a97 MIT
- github.com/beorn7/perks v1.0.1 MIT
- github.com/cespare/xxhash v1.1.0 MIT
- github.com/cespare/xxhash/v2 v2.1.2 MIT
- github.com/dustin/go-humanize v1.0.0 MIT
- github.com/form3tech-oss/jwt-go v3.2.3+incompatible MIT
- github.com/go-chi/chi/v5 v5.0.7 MIT
- github.com/json-iterator/go v1.1.12 MIT
- github.com/mitchellh/mapstructure v1.5.0 MIT
- github.com/onsi/ginkgo/v2 v2.1.4 MIT
- github.com/onsi/gomega v1.20.0 MIT
- github.com/pelletier/go-toml/v2 v2.0.1 MIT
- github.com/rs/zerolog v1.26.1 MIT
- github.com/sirupsen/logrus v1.7.0 MIT
- github.com/spf13/cast v1.5.0 MIT
- github.com/spf13/jwalterweatherman v1.1.0 MIT
- github.com/spf13/viper v1.12.0 MIT
- github.com/stretchr/objx v0.1.1 MIT
- github.com/stretchr/testify v1.7.1 MIT
- github.com/subosito/gotenv v1.3.0 MIT
- github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802 MIT
- github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 MIT
- go.etcd.io/bbolt v1.3.6 MIT
- go.uber.org/atomic v1.7.0 MIT
- go.uber.org/multierr v1.8.0 MIT
- go.uber.org/zap v1.17.0 MIT
- gopkg.in/natefinch/lumberjack.v2 v2.0.0 MIT
-
-========================================================================
-MIT and Apache-2.0 licenses
-========================================================================
-
- github.com/pelletier/go-toml v1.9.5 MIT and Apache-2.0
- gopkg.in/yaml.v3 v3.0.1 MIT and Apache-2.0
-
-========================================================================
-MIT and BSD-3-Clause licenses
-========================================================================
-
- sigs.k8s.io/yaml v1.2.0 MIT and BSD-3-Clause
-
-========================================================================
-MPL-2.0 licenses
-========================================================================
-
- github.com/hashicorp/golang-lru v0.5.4 MPL-2.0
- github.com/hashicorp/hcl v1.0.0 MPL-2.0
-
-========================================================================
-UI related licenses
-========================================================================
-
-The following components are used in UI.See project link for details.
-The text of each license is also included at licenses/ui-licenses/LICENSE-[project].txt.
-
-
-========================================================================
-0BSD licenses
-========================================================================
-
- tslib 2.3.0 0BSD
-
-========================================================================
-Apache-2.0 licenses
-========================================================================
-
- echarts 5.3.3 Apache-2.0
-
-========================================================================
-BSD-3-Clause licenses
-========================================================================
-
- normalize-wheel 1.0.1 BSD-3-Clause
- zrender 5.3.2 BSD-3-Clause
-
-========================================================================
-MIT licenses
-========================================================================
-
- async-validator MIT
- babel-helper-vue-jsx-merge-props 2.0.3 MIT
- babel-runtime 6.26.0 MIT
- babel-runtime/node_modules/core-js 2.6.12 MIT
- babel-runtime/node_modules/regenerator-runtime 0.11.1 MIT
- core-js 3.22.8 MIT
- deepmerge 1.5.2 MIT
- element-ui 2.15.9 MIT
- resize-observer-polyfill 1.5.1 MIT
- throttle-debounce 1.1.0 MIT
- vue 2.6.14 MIT
- vue-router 3.5.4 MIT
- vuex 3.6.2 MIT
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
\ No newline at end of file
diff --git a/dist/LICENSE b/dist/licenses/license-github.com-blugelabs-bluge.txt
similarity index 53%
copy from dist/LICENSE
copy to dist/licenses/license-github.com-blugelabs-bluge.txt
index 7848d86..7a4a3ea 100644
--- a/dist/LICENSE
+++ b/dist/licenses/license-github.com-blugelabs-bluge.txt
@@ -1,3 +1,4 @@
+
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
@@ -173,204 +174,29 @@
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
-========================================================================
-Apache-2.0 licenses
-========================================================================
-
- github.com/SkyAPM/badger/v3 v3.0.0-20220817114744-b3711444d876 Apache-2.0
- github.com/coreos/go-semver v0.3.0 Apache-2.0
- github.com/coreos/go-systemd/v22 v22.3.2 Apache-2.0
- github.com/dgraph-io/ristretto v0.1.0 Apache-2.0
- github.com/envoyproxy/protoc-gen-validate v0.1.0 Apache-2.0
- github.com/golang/glog v1.0.0 Apache-2.0
- github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da Apache-2.0
- github.com/golang/mock v1.6.0 Apache-2.0
- github.com/google/btree v1.0.1 Apache-2.0
- github.com/google/flatbuffers v1.12.1 Apache-2.0
- github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 Apache-2.0
- github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 Apache-2.0
- github.com/inconshreveable/mousetrap v1.0.0 Apache-2.0
- github.com/jonboulle/clockwork v0.2.2 Apache-2.0
- github.com/matttproud/golang_protobuf_extensions v1.0.1 Apache-2.0
- github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd Apache-2.0
- github.com/modern-go/reflect2 v1.0.2 Apache-2.0
- github.com/mschoch/smat v0.2.0 Apache-2.0
- github.com/oklog/run v1.1.0 Apache-2.0
- github.com/prometheus/client_golang v1.12.2 Apache-2.0
- github.com/prometheus/client_model v0.2.0 Apache-2.0
- github.com/prometheus/common v0.32.1 Apache-2.0
- github.com/prometheus/procfs v0.7.3 Apache-2.0
- github.com/soheilhy/cmux v0.1.5 Apache-2.0
- github.com/spf13/afero v1.8.2 Apache-2.0
- github.com/spf13/cobra v1.4.0 Apache-2.0
- go.etcd.io/etcd/api/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/client/pkg/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/client/v2 v2.305.4 Apache-2.0
- go.etcd.io/etcd/client/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/pkg/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/raft/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/server/v3 v3.5.4 Apache-2.0
- go.opencensus.io v0.23.0 Apache-2.0
- go.opentelemetry.io/contrib v0.20.0 Apache-2.0
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0 Apache-2.0
- go.opentelemetry.io/otel v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/exporters/otlp v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/metric v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/sdk v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/sdk/export/metric v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/sdk/metric v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/trace v0.20.0 Apache-2.0
- go.opentelemetry.io/proto/otlp v0.7.0 Apache-2.0
- google.golang.org/genproto v0.0.0-20220615141314-f1464d18c36b Apache-2.0
- google.golang.org/grpc v1.47.0 Apache-2.0
- gopkg.in/ini.v1 v1.66.4 Apache-2.0
- gopkg.in/yaml.v2 v2.4.0 Apache-2.0
-
-========================================================================
-Apache-2.0 and BSD-3-Clause licenses
-========================================================================
-
- github.com/RoaringBitmap/roaring v0.9.1 Apache-2.0 and BSD-3-Clause
-
-========================================================================
-BSD-2-Clause licenses
-========================================================================
-
- github.com/gorilla/websocket v1.4.2 BSD-2-Clause
- github.com/magiconair/properties v1.8.6 BSD-2-Clause
- github.com/pkg/errors v0.9.1 BSD-2-Clause
-
-========================================================================
-BSD-3-Clause licenses
-========================================================================
-
- github.com/bits-and-blooms/bitset v1.2.0 BSD-3-Clause
- github.com/fsnotify/fsnotify v1.5.4 BSD-3-Clause
- github.com/gogo/protobuf v1.3.2 BSD-3-Clause
- github.com/golang/protobuf v1.5.2 BSD-3-Clause
- github.com/golang/snappy v0.0.3 BSD-3-Clause
- github.com/google/go-cmp v0.5.8 BSD-3-Clause
- github.com/google/uuid v1.3.0 BSD-3-Clause
- github.com/grpc-ecosystem/grpc-gateway v1.16.0 BSD-3-Clause
- github.com/grpc-ecosystem/grpc-gateway/v2 v2.10.3 BSD-3-Clause
- github.com/pmezard/go-difflib v1.0.0 BSD-3-Clause
- github.com/spf13/pflag v1.0.5 BSD-3-Clause
- golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 BSD-3-Clause
- golang.org/x/exp v0.0.0-20220602145555-4a0574d9293f BSD-3-Clause
- golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 BSD-3-Clause
- golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2 BSD-3-Clause
- golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a BSD-3-Clause
- golang.org/x/text v0.3.7 BSD-3-Clause
- golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba BSD-3-Clause
- golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df BSD-3-Clause
- google.golang.org/protobuf v1.28.0 BSD-3-Clause
-
-========================================================================
-BSD-3-Clause and Apache-2.0 and MIT licenses
-========================================================================
-
- github.com/klauspost/compress v1.15.6 BSD-3-Clause and Apache-2.0 and MIT
-
-========================================================================
-ISC licenses
-========================================================================
-
- github.com/davecgh/go-spew v1.1.1 ISC
-
-========================================================================
-MIT licenses
-========================================================================
-
- github.com/SkyAPM/clock v1.3.1-0.20220809233656-dc7607c94a97 MIT
- github.com/beorn7/perks v1.0.1 MIT
- github.com/cespare/xxhash v1.1.0 MIT
- github.com/cespare/xxhash/v2 v2.1.2 MIT
- github.com/dustin/go-humanize v1.0.0 MIT
- github.com/form3tech-oss/jwt-go v3.2.3+incompatible MIT
- github.com/go-chi/chi/v5 v5.0.7 MIT
- github.com/json-iterator/go v1.1.12 MIT
- github.com/mitchellh/mapstructure v1.5.0 MIT
- github.com/onsi/ginkgo/v2 v2.1.4 MIT
- github.com/onsi/gomega v1.20.0 MIT
- github.com/pelletier/go-toml/v2 v2.0.1 MIT
- github.com/rs/zerolog v1.26.1 MIT
- github.com/sirupsen/logrus v1.7.0 MIT
- github.com/spf13/cast v1.5.0 MIT
- github.com/spf13/jwalterweatherman v1.1.0 MIT
- github.com/spf13/viper v1.12.0 MIT
- github.com/stretchr/objx v0.1.1 MIT
- github.com/stretchr/testify v1.7.1 MIT
- github.com/subosito/gotenv v1.3.0 MIT
- github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802 MIT
- github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 MIT
- go.etcd.io/bbolt v1.3.6 MIT
- go.uber.org/atomic v1.7.0 MIT
- go.uber.org/multierr v1.8.0 MIT
- go.uber.org/zap v1.17.0 MIT
- gopkg.in/natefinch/lumberjack.v2 v2.0.0 MIT
-
-========================================================================
-MIT and Apache-2.0 licenses
-========================================================================
-
- github.com/pelletier/go-toml v1.9.5 MIT and Apache-2.0
- gopkg.in/yaml.v3 v3.0.1 MIT and Apache-2.0
-
-========================================================================
-MIT and BSD-3-Clause licenses
-========================================================================
-
- sigs.k8s.io/yaml v1.2.0 MIT and BSD-3-Clause
-
-========================================================================
-MPL-2.0 licenses
-========================================================================
-
- github.com/hashicorp/golang-lru v0.5.4 MPL-2.0
- github.com/hashicorp/hcl v1.0.0 MPL-2.0
-
-========================================================================
-UI related licenses
-========================================================================
-
-The following components are used in UI.See project link for details.
-The text of each license is also included at licenses/ui-licenses/LICENSE-[project].txt.
-
-
-========================================================================
-0BSD licenses
-========================================================================
-
- tslib 2.3.0 0BSD
-
-========================================================================
-Apache-2.0 licenses
-========================================================================
-
- echarts 5.3.3 Apache-2.0
-
-========================================================================
-BSD-3-Clause licenses
-========================================================================
-
- normalize-wheel 1.0.1 BSD-3-Clause
- zrender 5.3.2 BSD-3-Clause
-
-========================================================================
-MIT licenses
-========================================================================
-
- async-validator MIT
- babel-helper-vue-jsx-merge-props 2.0.3 MIT
- babel-runtime 6.26.0 MIT
- babel-runtime/node_modules/core-js 2.6.12 MIT
- babel-runtime/node_modules/regenerator-runtime 0.11.1 MIT
- core-js 3.22.8 MIT
- deepmerge 1.5.2 MIT
- element-ui 2.15.9 MIT
- resize-observer-polyfill 1.5.1 MIT
- throttle-debounce 1.1.0 MIT
- vue 2.6.14 MIT
- vue-router 3.5.4 MIT
- vuex 3.6.2 MIT
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
\ No newline at end of file
diff --git a/dist/LICENSE b/dist/licenses/license-github.com-blugelabs-ice-v2.txt
similarity index 53%
copy from dist/LICENSE
copy to dist/licenses/license-github.com-blugelabs-ice-v2.txt
index 7848d86..7a4a3ea 100644
--- a/dist/LICENSE
+++ b/dist/licenses/license-github.com-blugelabs-ice-v2.txt
@@ -1,3 +1,4 @@
+
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
@@ -173,204 +174,29 @@
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
-========================================================================
-Apache-2.0 licenses
-========================================================================
-
- github.com/SkyAPM/badger/v3 v3.0.0-20220817114744-b3711444d876 Apache-2.0
- github.com/coreos/go-semver v0.3.0 Apache-2.0
- github.com/coreos/go-systemd/v22 v22.3.2 Apache-2.0
- github.com/dgraph-io/ristretto v0.1.0 Apache-2.0
- github.com/envoyproxy/protoc-gen-validate v0.1.0 Apache-2.0
- github.com/golang/glog v1.0.0 Apache-2.0
- github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da Apache-2.0
- github.com/golang/mock v1.6.0 Apache-2.0
- github.com/google/btree v1.0.1 Apache-2.0
- github.com/google/flatbuffers v1.12.1 Apache-2.0
- github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 Apache-2.0
- github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 Apache-2.0
- github.com/inconshreveable/mousetrap v1.0.0 Apache-2.0
- github.com/jonboulle/clockwork v0.2.2 Apache-2.0
- github.com/matttproud/golang_protobuf_extensions v1.0.1 Apache-2.0
- github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd Apache-2.0
- github.com/modern-go/reflect2 v1.0.2 Apache-2.0
- github.com/mschoch/smat v0.2.0 Apache-2.0
- github.com/oklog/run v1.1.0 Apache-2.0
- github.com/prometheus/client_golang v1.12.2 Apache-2.0
- github.com/prometheus/client_model v0.2.0 Apache-2.0
- github.com/prometheus/common v0.32.1 Apache-2.0
- github.com/prometheus/procfs v0.7.3 Apache-2.0
- github.com/soheilhy/cmux v0.1.5 Apache-2.0
- github.com/spf13/afero v1.8.2 Apache-2.0
- github.com/spf13/cobra v1.4.0 Apache-2.0
- go.etcd.io/etcd/api/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/client/pkg/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/client/v2 v2.305.4 Apache-2.0
- go.etcd.io/etcd/client/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/pkg/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/raft/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/server/v3 v3.5.4 Apache-2.0
- go.opencensus.io v0.23.0 Apache-2.0
- go.opentelemetry.io/contrib v0.20.0 Apache-2.0
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0 Apache-2.0
- go.opentelemetry.io/otel v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/exporters/otlp v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/metric v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/sdk v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/sdk/export/metric v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/sdk/metric v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/trace v0.20.0 Apache-2.0
- go.opentelemetry.io/proto/otlp v0.7.0 Apache-2.0
- google.golang.org/genproto v0.0.0-20220615141314-f1464d18c36b Apache-2.0
- google.golang.org/grpc v1.47.0 Apache-2.0
- gopkg.in/ini.v1 v1.66.4 Apache-2.0
- gopkg.in/yaml.v2 v2.4.0 Apache-2.0
-
-========================================================================
-Apache-2.0 and BSD-3-Clause licenses
-========================================================================
-
- github.com/RoaringBitmap/roaring v0.9.1 Apache-2.0 and BSD-3-Clause
-
-========================================================================
-BSD-2-Clause licenses
-========================================================================
-
- github.com/gorilla/websocket v1.4.2 BSD-2-Clause
- github.com/magiconair/properties v1.8.6 BSD-2-Clause
- github.com/pkg/errors v0.9.1 BSD-2-Clause
-
-========================================================================
-BSD-3-Clause licenses
-========================================================================
-
- github.com/bits-and-blooms/bitset v1.2.0 BSD-3-Clause
- github.com/fsnotify/fsnotify v1.5.4 BSD-3-Clause
- github.com/gogo/protobuf v1.3.2 BSD-3-Clause
- github.com/golang/protobuf v1.5.2 BSD-3-Clause
- github.com/golang/snappy v0.0.3 BSD-3-Clause
- github.com/google/go-cmp v0.5.8 BSD-3-Clause
- github.com/google/uuid v1.3.0 BSD-3-Clause
- github.com/grpc-ecosystem/grpc-gateway v1.16.0 BSD-3-Clause
- github.com/grpc-ecosystem/grpc-gateway/v2 v2.10.3 BSD-3-Clause
- github.com/pmezard/go-difflib v1.0.0 BSD-3-Clause
- github.com/spf13/pflag v1.0.5 BSD-3-Clause
- golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 BSD-3-Clause
- golang.org/x/exp v0.0.0-20220602145555-4a0574d9293f BSD-3-Clause
- golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 BSD-3-Clause
- golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2 BSD-3-Clause
- golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a BSD-3-Clause
- golang.org/x/text v0.3.7 BSD-3-Clause
- golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba BSD-3-Clause
- golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df BSD-3-Clause
- google.golang.org/protobuf v1.28.0 BSD-3-Clause
-
-========================================================================
-BSD-3-Clause and Apache-2.0 and MIT licenses
-========================================================================
-
- github.com/klauspost/compress v1.15.6 BSD-3-Clause and Apache-2.0 and MIT
-
-========================================================================
-ISC licenses
-========================================================================
-
- github.com/davecgh/go-spew v1.1.1 ISC
-
-========================================================================
-MIT licenses
-========================================================================
-
- github.com/SkyAPM/clock v1.3.1-0.20220809233656-dc7607c94a97 MIT
- github.com/beorn7/perks v1.0.1 MIT
- github.com/cespare/xxhash v1.1.0 MIT
- github.com/cespare/xxhash/v2 v2.1.2 MIT
- github.com/dustin/go-humanize v1.0.0 MIT
- github.com/form3tech-oss/jwt-go v3.2.3+incompatible MIT
- github.com/go-chi/chi/v5 v5.0.7 MIT
- github.com/json-iterator/go v1.1.12 MIT
- github.com/mitchellh/mapstructure v1.5.0 MIT
- github.com/onsi/ginkgo/v2 v2.1.4 MIT
- github.com/onsi/gomega v1.20.0 MIT
- github.com/pelletier/go-toml/v2 v2.0.1 MIT
- github.com/rs/zerolog v1.26.1 MIT
- github.com/sirupsen/logrus v1.7.0 MIT
- github.com/spf13/cast v1.5.0 MIT
- github.com/spf13/jwalterweatherman v1.1.0 MIT
- github.com/spf13/viper v1.12.0 MIT
- github.com/stretchr/objx v0.1.1 MIT
- github.com/stretchr/testify v1.7.1 MIT
- github.com/subosito/gotenv v1.3.0 MIT
- github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802 MIT
- github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 MIT
- go.etcd.io/bbolt v1.3.6 MIT
- go.uber.org/atomic v1.7.0 MIT
- go.uber.org/multierr v1.8.0 MIT
- go.uber.org/zap v1.17.0 MIT
- gopkg.in/natefinch/lumberjack.v2 v2.0.0 MIT
-
-========================================================================
-MIT and Apache-2.0 licenses
-========================================================================
-
- github.com/pelletier/go-toml v1.9.5 MIT and Apache-2.0
- gopkg.in/yaml.v3 v3.0.1 MIT and Apache-2.0
-
-========================================================================
-MIT and BSD-3-Clause licenses
-========================================================================
-
- sigs.k8s.io/yaml v1.2.0 MIT and BSD-3-Clause
-
-========================================================================
-MPL-2.0 licenses
-========================================================================
-
- github.com/hashicorp/golang-lru v0.5.4 MPL-2.0
- github.com/hashicorp/hcl v1.0.0 MPL-2.0
-
-========================================================================
-UI related licenses
-========================================================================
-
-The following components are used in UI.See project link for details.
-The text of each license is also included at licenses/ui-licenses/LICENSE-[project].txt.
-
-
-========================================================================
-0BSD licenses
-========================================================================
-
- tslib 2.3.0 0BSD
-
-========================================================================
-Apache-2.0 licenses
-========================================================================
-
- echarts 5.3.3 Apache-2.0
-
-========================================================================
-BSD-3-Clause licenses
-========================================================================
-
- normalize-wheel 1.0.1 BSD-3-Clause
- zrender 5.3.2 BSD-3-Clause
-
-========================================================================
-MIT licenses
-========================================================================
-
- async-validator MIT
- babel-helper-vue-jsx-merge-props 2.0.3 MIT
- babel-runtime 6.26.0 MIT
- babel-runtime/node_modules/core-js 2.6.12 MIT
- babel-runtime/node_modules/regenerator-runtime 0.11.1 MIT
- core-js 3.22.8 MIT
- deepmerge 1.5.2 MIT
- element-ui 2.15.9 MIT
- resize-observer-polyfill 1.5.1 MIT
- throttle-debounce 1.1.0 MIT
- vue 2.6.14 MIT
- vue-router 3.5.4 MIT
- vuex 3.6.2 MIT
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
\ No newline at end of file
diff --git a/dist/LICENSE b/dist/licenses/license-github.com-blugelabs-ice.txt
similarity index 53%
copy from dist/LICENSE
copy to dist/licenses/license-github.com-blugelabs-ice.txt
index 7848d86..7a4a3ea 100644
--- a/dist/LICENSE
+++ b/dist/licenses/license-github.com-blugelabs-ice.txt
@@ -1,3 +1,4 @@
+
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
@@ -173,204 +174,29 @@
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
-========================================================================
-Apache-2.0 licenses
-========================================================================
-
- github.com/SkyAPM/badger/v3 v3.0.0-20220817114744-b3711444d876 Apache-2.0
- github.com/coreos/go-semver v0.3.0 Apache-2.0
- github.com/coreos/go-systemd/v22 v22.3.2 Apache-2.0
- github.com/dgraph-io/ristretto v0.1.0 Apache-2.0
- github.com/envoyproxy/protoc-gen-validate v0.1.0 Apache-2.0
- github.com/golang/glog v1.0.0 Apache-2.0
- github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da Apache-2.0
- github.com/golang/mock v1.6.0 Apache-2.0
- github.com/google/btree v1.0.1 Apache-2.0
- github.com/google/flatbuffers v1.12.1 Apache-2.0
- github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 Apache-2.0
- github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 Apache-2.0
- github.com/inconshreveable/mousetrap v1.0.0 Apache-2.0
- github.com/jonboulle/clockwork v0.2.2 Apache-2.0
- github.com/matttproud/golang_protobuf_extensions v1.0.1 Apache-2.0
- github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd Apache-2.0
- github.com/modern-go/reflect2 v1.0.2 Apache-2.0
- github.com/mschoch/smat v0.2.0 Apache-2.0
- github.com/oklog/run v1.1.0 Apache-2.0
- github.com/prometheus/client_golang v1.12.2 Apache-2.0
- github.com/prometheus/client_model v0.2.0 Apache-2.0
- github.com/prometheus/common v0.32.1 Apache-2.0
- github.com/prometheus/procfs v0.7.3 Apache-2.0
- github.com/soheilhy/cmux v0.1.5 Apache-2.0
- github.com/spf13/afero v1.8.2 Apache-2.0
- github.com/spf13/cobra v1.4.0 Apache-2.0
- go.etcd.io/etcd/api/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/client/pkg/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/client/v2 v2.305.4 Apache-2.0
- go.etcd.io/etcd/client/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/pkg/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/raft/v3 v3.5.4 Apache-2.0
- go.etcd.io/etcd/server/v3 v3.5.4 Apache-2.0
- go.opencensus.io v0.23.0 Apache-2.0
- go.opentelemetry.io/contrib v0.20.0 Apache-2.0
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0 Apache-2.0
- go.opentelemetry.io/otel v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/exporters/otlp v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/metric v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/sdk v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/sdk/export/metric v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/sdk/metric v0.20.0 Apache-2.0
- go.opentelemetry.io/otel/trace v0.20.0 Apache-2.0
- go.opentelemetry.io/proto/otlp v0.7.0 Apache-2.0
- google.golang.org/genproto v0.0.0-20220615141314-f1464d18c36b Apache-2.0
- google.golang.org/grpc v1.47.0 Apache-2.0
- gopkg.in/ini.v1 v1.66.4 Apache-2.0
- gopkg.in/yaml.v2 v2.4.0 Apache-2.0
-
-========================================================================
-Apache-2.0 and BSD-3-Clause licenses
-========================================================================
-
- github.com/RoaringBitmap/roaring v0.9.1 Apache-2.0 and BSD-3-Clause
-
-========================================================================
-BSD-2-Clause licenses
-========================================================================
-
- github.com/gorilla/websocket v1.4.2 BSD-2-Clause
- github.com/magiconair/properties v1.8.6 BSD-2-Clause
- github.com/pkg/errors v0.9.1 BSD-2-Clause
-
-========================================================================
-BSD-3-Clause licenses
-========================================================================
-
- github.com/bits-and-blooms/bitset v1.2.0 BSD-3-Clause
- github.com/fsnotify/fsnotify v1.5.4 BSD-3-Clause
- github.com/gogo/protobuf v1.3.2 BSD-3-Clause
- github.com/golang/protobuf v1.5.2 BSD-3-Clause
- github.com/golang/snappy v0.0.3 BSD-3-Clause
- github.com/google/go-cmp v0.5.8 BSD-3-Clause
- github.com/google/uuid v1.3.0 BSD-3-Clause
- github.com/grpc-ecosystem/grpc-gateway v1.16.0 BSD-3-Clause
- github.com/grpc-ecosystem/grpc-gateway/v2 v2.10.3 BSD-3-Clause
- github.com/pmezard/go-difflib v1.0.0 BSD-3-Clause
- github.com/spf13/pflag v1.0.5 BSD-3-Clause
- golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 BSD-3-Clause
- golang.org/x/exp v0.0.0-20220602145555-4a0574d9293f BSD-3-Clause
- golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 BSD-3-Clause
- golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2 BSD-3-Clause
- golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a BSD-3-Clause
- golang.org/x/text v0.3.7 BSD-3-Clause
- golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba BSD-3-Clause
- golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df BSD-3-Clause
- google.golang.org/protobuf v1.28.0 BSD-3-Clause
-
-========================================================================
-BSD-3-Clause and Apache-2.0 and MIT licenses
-========================================================================
-
- github.com/klauspost/compress v1.15.6 BSD-3-Clause and Apache-2.0 and MIT
-
-========================================================================
-ISC licenses
-========================================================================
-
- github.com/davecgh/go-spew v1.1.1 ISC
-
-========================================================================
-MIT licenses
-========================================================================
-
- github.com/SkyAPM/clock v1.3.1-0.20220809233656-dc7607c94a97 MIT
- github.com/beorn7/perks v1.0.1 MIT
- github.com/cespare/xxhash v1.1.0 MIT
- github.com/cespare/xxhash/v2 v2.1.2 MIT
- github.com/dustin/go-humanize v1.0.0 MIT
- github.com/form3tech-oss/jwt-go v3.2.3+incompatible MIT
- github.com/go-chi/chi/v5 v5.0.7 MIT
- github.com/json-iterator/go v1.1.12 MIT
- github.com/mitchellh/mapstructure v1.5.0 MIT
- github.com/onsi/ginkgo/v2 v2.1.4 MIT
- github.com/onsi/gomega v1.20.0 MIT
- github.com/pelletier/go-toml/v2 v2.0.1 MIT
- github.com/rs/zerolog v1.26.1 MIT
- github.com/sirupsen/logrus v1.7.0 MIT
- github.com/spf13/cast v1.5.0 MIT
- github.com/spf13/jwalterweatherman v1.1.0 MIT
- github.com/spf13/viper v1.12.0 MIT
- github.com/stretchr/objx v0.1.1 MIT
- github.com/stretchr/testify v1.7.1 MIT
- github.com/subosito/gotenv v1.3.0 MIT
- github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802 MIT
- github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 MIT
- go.etcd.io/bbolt v1.3.6 MIT
- go.uber.org/atomic v1.7.0 MIT
- go.uber.org/multierr v1.8.0 MIT
- go.uber.org/zap v1.17.0 MIT
- gopkg.in/natefinch/lumberjack.v2 v2.0.0 MIT
-
-========================================================================
-MIT and Apache-2.0 licenses
-========================================================================
-
- github.com/pelletier/go-toml v1.9.5 MIT and Apache-2.0
- gopkg.in/yaml.v3 v3.0.1 MIT and Apache-2.0
-
-========================================================================
-MIT and BSD-3-Clause licenses
-========================================================================
-
- sigs.k8s.io/yaml v1.2.0 MIT and BSD-3-Clause
-
-========================================================================
-MPL-2.0 licenses
-========================================================================
-
- github.com/hashicorp/golang-lru v0.5.4 MPL-2.0
- github.com/hashicorp/hcl v1.0.0 MPL-2.0
-
-========================================================================
-UI related licenses
-========================================================================
-
-The following components are used in UI.See project link for details.
-The text of each license is also included at licenses/ui-licenses/LICENSE-[project].txt.
-
-
-========================================================================
-0BSD licenses
-========================================================================
-
- tslib 2.3.0 0BSD
-
-========================================================================
-Apache-2.0 licenses
-========================================================================
-
- echarts 5.3.3 Apache-2.0
-
-========================================================================
-BSD-3-Clause licenses
-========================================================================
-
- normalize-wheel 1.0.1 BSD-3-Clause
- zrender 5.3.2 BSD-3-Clause
-
-========================================================================
-MIT licenses
-========================================================================
-
- async-validator MIT
- babel-helper-vue-jsx-merge-props 2.0.3 MIT
- babel-runtime 6.26.0 MIT
- babel-runtime/node_modules/core-js 2.6.12 MIT
- babel-runtime/node_modules/regenerator-runtime 0.11.1 MIT
- core-js 3.22.8 MIT
- deepmerge 1.5.2 MIT
- element-ui 2.15.9 MIT
- resize-observer-polyfill 1.5.1 MIT
- throttle-debounce 1.1.0 MIT
- vue 2.6.14 MIT
- vue-router 3.5.4 MIT
- vuex 3.6.2 MIT
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
\ No newline at end of file
diff --git a/dist/licenses/license-github.com-caio-go-tdigest.txt b/dist/licenses/license-github.com-caio-go-tdigest.txt
new file mode 100644
index 0000000..f5f0744
--- /dev/null
+++ b/dist/licenses/license-github.com-caio-go-tdigest.txt
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Caio Romão Costa Nascimento
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/dist/licenses/license-github.com-dgryski-go-metro.txt b/dist/licenses/license-github.com-dgryski-go-metro.txt
new file mode 100644
index 0000000..6243b61
--- /dev/null
+++ b/dist/licenses/license-github.com-dgryski-go-metro.txt
@@ -0,0 +1,24 @@
+This package is a mechanical translation of the reference C++ code for
+MetroHash, available at https://github.com/jandrewrogers/MetroHash
+
+The MIT License (MIT)
+
+Copyright (c) 2016 Damian Gryski
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/go.mod b/go.mod
index 9ea4d80..116eb9b 100644
--- a/go.mod
+++ b/go.mod
@@ -3,8 +3,9 @@ module github.com/apache/skywalking-banyandb
go 1.19
require (
- github.com/RoaringBitmap/roaring v0.9.1
+ github.com/RoaringBitmap/roaring v0.9.4
github.com/benbjohnson/clock v1.3.0
+ github.com/blugelabs/bluge v0.2.2
github.com/cespare/xxhash v1.1.0
github.com/dgraph-io/badger/v3 v3.2011.1
github.com/dgraph-io/ristretto v0.1.0
@@ -38,12 +39,23 @@ require (
)
require (
+ github.com/axiomhq/hyperloglog v0.0.0-20191112132149-a4c4c47bc57f // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/bits-and-blooms/bitset v1.2.0 // indirect
+ github.com/blevesearch/go-porterstemmer v1.0.3 // indirect
+ github.com/blevesearch/mmap-go v1.0.4 // indirect
+ github.com/blevesearch/segment v0.9.0 // indirect
+ github.com/blevesearch/snowballstem v0.9.0 // indirect
+ github.com/blevesearch/vellum v1.0.7 // indirect
+ github.com/blugelabs/bluge_segment_api v0.2.0 // indirect
+ github.com/blugelabs/ice v1.0.0 // indirect
+ github.com/blugelabs/ice/v2 v2.0.1 // indirect
+ github.com/caio/go-tdigest v3.1.0+incompatible // indirect
github.com/cespare/xxhash/v2 v2.1.2 // indirect
github.com/coreos/go-semver v0.3.0 // indirect
github.com/coreos/go-systemd/v22 v22.3.2 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
+ github.com/dgryski/go-metro v0.0.0-20180109044635-280f6062b5bc // indirect
github.com/dustin/go-humanize v1.0.0 // indirect
github.com/form3tech-oss/jwt-go v3.2.3+incompatible // indirect
github.com/fsnotify/fsnotify v1.5.4 // indirect
diff --git a/go.sum b/go.sum
index 7431b3a..b62e59b 100644
--- a/go.sum
+++ b/go.sum
@@ -46,12 +46,14 @@ github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
github.com/RoaringBitmap/gocroaring v0.4.0/go.mod h1:NieMwz7ZqwU2DD73/vvYwv7r4eWBKuPVSXZIpsaMwCI=
github.com/RoaringBitmap/real-roaring-datasets v0.0.0-20190726190000-eb7c87156f76/go.mod h1:oM0MHmQ3nDsq609SS36p+oYbRi16+oVvU2Bw4Ipv0SE=
-github.com/RoaringBitmap/roaring v0.9.1 h1:5PRizBmoN/PfV17nPNQou4dHQ7NcJi8FO/bihdYyCEM=
github.com/RoaringBitmap/roaring v0.9.1/go.mod h1:h1B7iIUOmnAeb5ytYMvnHJwxMc6LUrwBnzXWRuqTQUc=
+github.com/RoaringBitmap/roaring v0.9.4 h1:ckvZSX5gwCRaJYBNe7syNawCU5oruY9gQmjXlp4riwo=
+github.com/RoaringBitmap/roaring v0.9.4/go.mod h1:icnadbWcNyfEHlYdr+tDlOTih1Bf/h+rzPpv4sbomAA=
github.com/SkyAPM/badger/v3 v3.0.0-20220817114744-b3711444d876 h1:zH//2cmDpBla7rL9NzWr+vZ2UskMrvdnUvslz3KYTN0=
github.com/SkyAPM/badger/v3 v3.0.0-20220817114744-b3711444d876/go.mod h1:TQb+QXS839JUIX5jEySXoAvAIDROfU22HqVHcBr9bRA=
github.com/SkyAPM/clock v1.3.1-0.20220809233656-dc7607c94a97 h1:FKuhJ+6n/DHspGeLleeNbziWnKr9gHKYN4q7NcoCp4s=
github.com/SkyAPM/clock v1.3.1-0.20220809233656-dc7607c94a97/go.mod h1:2xGRl9H1pllhxTbEGO1W3gDkip8P9GQaHPni/wpdR44=
+github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
@@ -62,6 +64,8 @@ github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hC
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
+github.com/axiomhq/hyperloglog v0.0.0-20191112132149-a4c4c47bc57f h1:y06x6vGnFYfXUoVMbrcP1Uzpj4JG01eB5vRps9G8agM=
+github.com/axiomhq/hyperloglog v0.0.0-20191112132149-a4c4c47bc57f/go.mod h1:2stgcRjl6QmW+gU2h5E7BQXg4HU0gzxKWDuT5HviN9s=
github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
@@ -71,6 +75,29 @@ github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kB
github.com/bits-and-blooms/bitset v1.2.0 h1:Kn4yilvwNtMACtf1eYDlG8H77R07mZSPbMjLyS07ChA=
github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA=
github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
+github.com/blevesearch/go-porterstemmer v1.0.3 h1:GtmsqID0aZdCSNiY8SkuPJ12pD4jI+DdXTAn4YRcHCo=
+github.com/blevesearch/go-porterstemmer v1.0.3/go.mod h1:angGc5Ht+k2xhJdZi511LtmxuEf0OVpvUUNrwmM1P7M=
+github.com/blevesearch/mmap-go v1.0.2/go.mod h1:ol2qBqYaOUsGdm7aRMRrYGgPvnwLe6Y+7LMvAB5IbSA=
+github.com/blevesearch/mmap-go v1.0.3/go.mod h1:pYvKl/grLQrBxuaRYgoTssa4rVujYYeenDp++2E+yvs=
+github.com/blevesearch/mmap-go v1.0.4 h1:OVhDhT5B/M1HNPpYPBKIEJaD0F3Si+CrEKULGCDPWmc=
+github.com/blevesearch/mmap-go v1.0.4/go.mod h1:EWmEAOmdAS9z/pi/+Toxu99DnsbhG1TIxUoRmJw/pSs=
+github.com/blevesearch/segment v0.9.0 h1:5lG7yBCx98or7gK2cHMKPukPZ/31Kag7nONpoBt22Ac=
+github.com/blevesearch/segment v0.9.0/go.mod h1:9PfHYUdQCgHktBgvtUOF4x+pc4/l8rdH0u5spnW85UQ=
+github.com/blevesearch/snowballstem v0.9.0 h1:lMQ189YspGP6sXvZQ4WZ+MLawfV8wOmPoD/iWeNXm8s=
+github.com/blevesearch/snowballstem v0.9.0/go.mod h1:PivSj3JMc8WuaFkTSRDW2SlrulNWPl4ABg1tC/hlgLs=
+github.com/blevesearch/vellum v1.0.5/go.mod h1:atE0EH3fvk43zzS7t1YNdNC7DbmcC3uz+eMD5xZ2OyQ=
+github.com/blevesearch/vellum v1.0.7 h1:+vn8rfyCRHxKVRgDLeR0FAXej2+6mEb5Q15aQE/XESQ=
+github.com/blevesearch/vellum v1.0.7/go.mod h1:doBZpmRhwTsASB4QdUZANlJvqVAUdUyX0ZK7QJCTeBE=
+github.com/blugelabs/bluge v0.2.2 h1:gat8CqE6P6tOgeX30XGLOVNTC26cpM2RWVcreXWtYcM=
+github.com/blugelabs/bluge v0.2.2/go.mod h1:am1LU9jS8dZgWkRzkGLQN3757EgMs3upWrU2fdN9foE=
+github.com/blugelabs/bluge_segment_api v0.2.0 h1:cCX1Y2y8v0LZ7+EEJ6gH7dW6TtVTW4RhG0vp3R+N2Lo=
+github.com/blugelabs/bluge_segment_api v0.2.0/go.mod h1:95XA+ZXfRj/IXADm7gZ+iTcWOJPg5jQTY1EReIzl3LA=
+github.com/blugelabs/ice v1.0.0 h1:um7wf9e6jbkTVCrOyQq3tKK43fBMOvLUYxbj3Qtc4eo=
+github.com/blugelabs/ice v1.0.0/go.mod h1:gNfFPk5zM+yxJROhthxhVQYjpBO9amuxWXJQ2Lo+IbQ=
+github.com/blugelabs/ice/v2 v2.0.1 h1:mzHbntLjk2v7eDRgoXCgzOsPKN1Tenu9Svo6l9cTLS4=
+github.com/blugelabs/ice/v2 v2.0.1/go.mod h1:QxAWSPNwZwsIqS25c3lbIPFQrVvT1sphf5x5DfMLH5M=
+github.com/caio/go-tdigest v3.1.0+incompatible h1:uoVMJ3Q5lXmVLCCqaMGHLBWnbGoN6Lpu7OAUPR60cds=
+github.com/caio/go-tdigest v3.1.0+incompatible/go.mod h1:sHQM/ubZStBUmF1WbB8FAm8q9GjDajLC5T7ydxE3JHI=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA=
github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054 h1:uH66TXeswKn5PW5zdZ39xEwfS9an067BirqA+P4QaLI=
@@ -121,6 +148,8 @@ github.com/dgraph-io/ristretto v0.1.0/go.mod h1:fux0lOrBhrVCJd3lcTHsIJhq1T2rokOu
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2 h1:tdlZCpZ/P9DhczCTSixgIKmwPv6+wP5DGjqLYw5SUiA=
github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw=
+github.com/dgryski/go-metro v0.0.0-20180109044635-280f6062b5bc h1:8WFBn63wegobsYAX0YjD+8suexZDga5CctH4CCTx2+8=
+github.com/dgryski/go-metro v0.0.0-20180109044635-280f6062b5bc/go.mod h1:c9O8+fpSOX1DM8cPNSkX/qsBWdkD4yd2dpciOWQjpBw=
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
@@ -134,6 +163,7 @@ github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.
github.com/envoyproxy/protoc-gen-validate v0.1.0 h1:EQciDnbrYxy13PgWoY8AqoxGiPrpgBZ1R8UNe3ddc+A=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
+github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
github.com/form3tech-oss/jwt-go v3.2.3+incompatible h1:7ZaBxOI7TMoYBfyA3cQHErNNyAWIKUMIwqxEtgHOs5c=
github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k=
github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE=
@@ -161,6 +191,7 @@ github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zV
github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
+github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ=
github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4=
@@ -197,6 +228,7 @@ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaS
github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM=
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
+github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA=
github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
@@ -280,6 +312,7 @@ github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
+github.com/influxdata/influxdb v1.7.6/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY=
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ=
github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8=
@@ -294,11 +327,13 @@ github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/X
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
+github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
+github.com/klauspost/compress v1.15.2/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU=
github.com/klauspost/compress v1.15.6 h1:6D9PcO8QWu0JyaQ2zUMmu16T1T+zjjEpP91guRsvDfY=
github.com/klauspost/compress v1.15.6/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
@@ -311,6 +346,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
+github.com/leesper/go_rng v0.0.0-20190531154944-a612b043e353 h1:X/79QL0b4YJVO5+OsPH9rF2u428CIrGL/jLmPsoOQQ4=
+github.com/leesper/go_rng v0.0.0-20190531154944-a612b043e353/go.mod h1:N0SVk0uhy+E1PZ3C9ctsPRlvOPAFPkCNlcPBDkt0N3U=
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo=
@@ -536,7 +573,10 @@ golang.org/x/crypto v0.0.0-20211215165025-cf75a172585e/go.mod h1:P+XmwS30IXTQdn5
golang.org/x/crypto v0.0.0-20220131195533-30dcbda58838/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 h1:kUhD7nTDoI3fVd9G4ORWrbV5NY0liEs/Jg2pv5f+bBA=
golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
+golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=
@@ -548,6 +588,7 @@ golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EH
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
golang.org/x/exp v0.0.0-20220602145555-4a0574d9293f h1:KK6mxegmt5hGJRcAnEDjSNLxIRhZxDcgwMbcO/lMCRM=
golang.org/x/exp v0.0.0-20220602145555-4a0574d9293f/go.mod h1:yh0Ynu2b5ZUe3MQfp2nM0ecK7wsgouWTDN0FNeJuIys=
+golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -649,6 +690,7 @@ golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5h
golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20181221143128-b4a75ba826a6/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -658,6 +700,7 @@ golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -716,9 +759,11 @@ golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxb
golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba h1:O8mE0/t419eoIwhTFpKVkHiTs/Igowgfkj25AcZrtiE=
golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
@@ -779,6 +824,11 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df h1:5Pf6pFKu98ODmgnpvkJ3kFUOQGGLIzLIkbzUHp47618=
golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
+gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
+gonum.org/v1/gonum v0.7.0 h1:Hdks0L0hgznZLG9nzXb8vZ0rRvqNvAcgAp84y7Mwkgw=
+gonum.org/v1/gonum v0.7.0/go.mod h1:L02bwd0sqlsvRv41G7wGWFCsVNZFv/k1xzGIxeANHGM=
+gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
+gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc=
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
@@ -918,6 +968,7 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
+rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
diff --git a/pkg/index/index.go b/pkg/index/index.go
index b3eb099..b9b332d 100644
--- a/pkg/index/index.go
+++ b/pkg/index/index.go
@@ -45,6 +45,10 @@ func (f FieldKey) Marshal() []byte {
}, nil)
}
+func (f FieldKey) MarshalToStr() string {
+ return string(f.Marshal())
+}
+
func (f *FieldKey) Unmarshal(raw []byte) error {
f.SeriesID = common.SeriesID(convert.BytesToUint64(raw[0:8]))
f.IndexRuleID = convert.BytesToUint32(raw[8:])
@@ -118,13 +122,29 @@ type FieldIterator interface {
Close() error
}
+var EmptyFieldIterator = &emptyIterator{}
+
+type emptyIterator struct{}
+
+func (i *emptyIterator) Next() bool {
+ return false
+}
+
+func (i *emptyIterator) Val() *PostingValue {
+ return nil
+}
+
+func (i *emptyIterator) Close() error {
+ return nil
+}
+
type PostingValue struct {
Term []byte
Value posting.List
}
type Writer interface {
- Write(field Field, itemID common.ItemID) error
+ Write(fields []Field, itemID common.ItemID) error
}
type FieldIterable interface {
diff --git a/pkg/index/inverted/field_map.go b/pkg/index/inverted/field_map.go
deleted file mode 100644
index 0f354e7..0000000
--- a/pkg/index/inverted/field_map.go
+++ /dev/null
@@ -1,90 +0,0 @@
-// Licensed to Apache Software Foundation (ASF) under one or more contributor
-// license agreements. See the NOTICE file distributed with
-// this work for additional information regarding copyright
-// ownership. Apache Software Foundation (ASF) licenses this file to you under
-// the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-package inverted
-
-import (
- "sync"
-
- "github.com/apache/skywalking-banyandb/api/common"
- "github.com/apache/skywalking-banyandb/banyand/observability"
- "github.com/apache/skywalking-banyandb/pkg/convert"
- "github.com/apache/skywalking-banyandb/pkg/index"
-)
-
-type fieldHashID uint64
-
-type fieldMap struct {
- repo map[fieldHashID]*termContainer
- lst []fieldHashID
- mutex sync.RWMutex
-}
-
-func newFieldMap(initialSize int) *fieldMap {
- return &fieldMap{
- repo: make(map[fieldHashID]*termContainer, initialSize),
- lst: make([]fieldHashID, 0),
- }
-}
-
-func (fm *fieldMap) createKey(field index.Field) *termContainer {
- result := &termContainer{
- key: field.Key,
- value: newPostingMap(),
- }
- k := fieldHashID(convert.Hash(field.Key.Marshal()))
- fm.repo[k] = result
- fm.lst = append(fm.lst, k)
- return result
-}
-
-func (fm *fieldMap) get(key index.FieldKey) (*termContainer, bool) {
- fm.mutex.RLock()
- defer fm.mutex.RUnlock()
- return fm.getWithoutLock(key)
-}
-
-func (fm *fieldMap) getWithoutLock(key index.FieldKey) (*termContainer, bool) {
- v, ok := fm.repo[fieldHashID(convert.Hash(key.Marshal()))]
- return v, ok
-}
-
-func (fm *fieldMap) put(fv index.Field, id common.ItemID) error {
- fm.mutex.Lock()
- defer fm.mutex.Unlock()
- pm, ok := fm.getWithoutLock(fv.Key)
- if !ok {
- pm = fm.createKey(fv)
- }
- return pm.value.put(fv.Term, id)
-}
-
-func (fm *fieldMap) Stats() (s observability.Statistics) {
- fm.mutex.RLock()
- defer fm.mutex.RUnlock()
- for _, pv := range fm.repo {
- // 8 is the size of key
- s.MemBytes += 8
- s.MemBytes += pv.value.Stats().MemBytes
- }
- return s
-}
-
-type termContainer struct {
- key index.FieldKey
- value *termMap
-}
diff --git a/pkg/index/inverted/inverted.go b/pkg/index/inverted/inverted.go
index a9e6b40..d3c7e75 100644
--- a/pkg/index/inverted/inverted.go
+++ b/pkg/index/inverted/inverted.go
@@ -19,146 +19,124 @@ package inverted
import (
"bytes"
- "sync"
-
- "github.com/pkg/errors"
+ "context"
+ "errors"
+ "log"
+ "math"
+
+ "github.com/blugelabs/bluge"
+ "github.com/blugelabs/bluge/analysis/analyzer"
+ "github.com/blugelabs/bluge/search"
+ "github.com/dgraph-io/badger/v3/y"
"go.uber.org/multierr"
"github.com/apache/skywalking-banyandb/api/common"
modelv1 "github.com/apache/skywalking-banyandb/api/proto/banyandb/model/v1"
- "github.com/apache/skywalking-banyandb/banyand/kv"
"github.com/apache/skywalking-banyandb/banyand/observability"
+ "github.com/apache/skywalking-banyandb/pkg/convert"
"github.com/apache/skywalking-banyandb/pkg/index"
"github.com/apache/skywalking-banyandb/pkg/index/posting"
"github.com/apache/skywalking-banyandb/pkg/index/posting/roaring"
"github.com/apache/skywalking-banyandb/pkg/logger"
)
-var _ index.Store = (*store)(nil)
+const docID = "_id"
-type store struct {
- diskTable kv.IndexStore
- memTable *memTable
- immutableMemTable *memTable
- rwMutex sync.RWMutex
- closed bool
+var defaultAnalyzer = analyzer.NewKeywordAnalyzer()
- l *logger.Logger
-}
+var _ index.Store = (*store)(nil)
type StoreOpts struct {
Path string
Logger *logger.Logger
}
+type store struct {
+ writer *bluge.Writer
+}
+
func NewStore(opts StoreOpts) (index.Store, error) {
- diskTable, err := kv.OpenIndexStore(0, opts.Path+"/table", kv.IndexWithLogger(opts.Logger))
+ config := bluge.DefaultConfig(opts.Path)
+ config.DefaultSearchAnalyzer = defaultAnalyzer
+ config.Logger = log.New(opts.Logger, opts.Logger.Module(), 0)
+ w, err := bluge.OpenWriter(config)
if err != nil {
return nil, err
}
return &store{
- memTable: newMemTable(),
- diskTable: diskTable,
- l: opts.Logger,
+ writer: w,
}, nil
}
-func (s *store) Close() error {
- return s.flush(true)
+func (s *store) Stats() observability.Statistics {
+ return observability.Statistics{}
}
-func (s *store) Write(field index.Field, chunkID common.ItemID) error {
- s.rwMutex.Lock()
- defer s.rwMutex.Unlock()
- return s.memTable.Write(field, chunkID)
+func (s *store) Close() error {
+ return s.writer.Close()
}
-func (s *store) Flush() error {
- return s.flush(false)
+func (s *store) Write(fields []index.Field, itemID common.ItemID) error {
+ doc := bluge.NewDocument(string(convert.Uint64ToBytes(uint64(itemID))))
+ for _, f := range fields {
+ doc.AddField(bluge.NewKeywordFieldBytes(f.Key.MarshalToStr(), f.Term).StoreValue().Sortable())
+ }
+ return s.writer.Insert(doc)
}
-func (s *store) flush(toClose bool) error {
- s.rwMutex.Lock()
- defer func() {
- if toClose && !s.closed {
- _ = s.diskTable.Close()
- s.closed = true
- }
- s.rwMutex.Unlock()
- }()
- state := s.memTable.Stats()
- if state.MemBytes <= 0 {
- return nil
- }
- if s.immutableMemTable == nil {
- s.immutableMemTable = s.memTable
- s.memTable = newMemTable()
+func (s *store) Iterator(fieldKey index.FieldKey, termRange index.RangeOpts, order modelv1.Sort) (iter index.FieldIterator, err error) {
+ if termRange.Lower != nil &&
+ termRange.Upper != nil &&
+ bytes.Compare(termRange.Lower, termRange.Upper) > 0 {
+ return index.EmptyFieldIterator, nil
}
- err := s.diskTable.
- Handover(s.immutableMemTable.Iter())
+ reader, err := s.writer.Reader()
if err != nil {
- return err
+ return nil, err
}
- s.immutableMemTable = nil
- return nil
-}
-
-func (s *store) Stats() observability.Statistics {
- stat := s.mainStats()
- disk := s.diskTable.Stats()
- stat.MaxMemBytes = disk.MaxMemBytes
- return stat
-}
-
-func (s *store) mainStats() (stat observability.Statistics) {
- s.rwMutex.RLock()
- defer s.rwMutex.RUnlock()
- main := s.memTable.Stats()
- stat.MemBytes += main.MemBytes
- if s.immutableMemTable != nil {
- sub := s.immutableMemTable.Stats()
- stat.MemBytes += sub.MemBytes
+ fk := fieldKey.MarshalToStr()
+ query := bluge.NewTermRangeInclusiveQuery(
+ string(termRange.Lower),
+ string(termRange.Upper),
+ termRange.IncludesLower,
+ termRange.IncludesUpper,
+ ).
+ SetField(fk)
+ sortedKey := fk
+ if order == modelv1.Sort_SORT_DESC {
+ sortedKey = "-" + sortedKey
+ }
+ documentMatchIterator, err := reader.Search(context.Background(), bluge.NewTopNSearch(math.MaxInt64, query).SortBy([]string{sortedKey}))
+ if err != nil {
+ return nil, err
}
- return stat
+ result := newBlugeMatchIterator(documentMatchIterator, fk)
+ return &result, nil
}
-func (s *store) MatchField(fieldKey index.FieldKey) (posting.List, error) {
+func (s *store) MatchField(fieldKey index.FieldKey) (list posting.List, err error) {
return s.Range(fieldKey, index.RangeOpts{})
}
-func (s *store) MatchTerms(field index.Field) (posting.List, error) {
- f, err := field.Marshal()
+func (s *store) MatchTerms(field index.Field) (list posting.List, err error) {
+ reader, err := s.writer.Reader()
if err != nil {
return nil, err
}
- result := roaring.NewPostingList()
- result, errMem := s.searchInMemTables(result, func(table *memTable) (posting.List, error) {
- list, errInner := table.MatchTerms(field)
- if errInner != nil {
- return nil, errInner
- }
- return list, nil
- })
- if errMem != nil {
- return nil, errors.Wrap(errMem, "mem table of inverted index")
- }
- raw, errTable := s.diskTable.Get(f)
- switch {
- case errors.Is(errTable, kv.ErrKeyNotFound):
- return result, nil
- case errTable != nil:
- return nil, errors.Wrap(errTable, "disk table of inverted index")
- }
- list := roaring.NewPostingList()
- err = list.Unmarshall(raw)
+ fk := field.Key.MarshalToStr()
+ query := bluge.NewTermQuery(string(field.Term)).SetField(fk)
+ documentMatchIterator, err := reader.Search(context.Background(), bluge.NewAllMatches(query))
if err != nil {
return nil, err
}
- err = result.Union(list)
- if err != nil {
+ iter := newBlugeMatchIterator(documentMatchIterator, fk)
+ if !iter.Next() {
+ return roaring.EmptyPostingList, nil
+ }
+ if err = iter.Close(); err != nil {
return nil, err
}
- return result, nil
+ return iter.Val().Value, nil
}
func (s *store) Range(fieldKey index.FieldKey, opts index.RangeOpts) (list posting.List, err error) {
@@ -166,9 +144,6 @@ func (s *store) Range(fieldKey index.FieldKey, opts index.RangeOpts) (list posti
if err != nil {
return roaring.EmptyPostingList, err
}
- if iter == nil {
- return roaring.EmptyPostingList, nil
- }
list = roaring.NewPostingList()
for iter.Next() {
err = multierr.Append(err, list.Union(iter.Val().Value))
@@ -177,101 +152,101 @@ func (s *store) Range(fieldKey index.FieldKey, opts index.RangeOpts) (list posti
return
}
-func (s *store) Iterator(fieldKey index.FieldKey, termRange index.RangeOpts,
- order modelv1.Sort,
-) (index.FieldIterator, error) {
- s.rwMutex.RLock()
- defer s.rwMutex.RUnlock()
- tt := []*memTable{s.memTable, s.immutableMemTable}
- iters := make([]index.FieldIterator, 0, len(tt)+1)
- for _, table := range tt {
- if table == nil {
- continue
- }
- it, err := table.Iterator(fieldKey, termRange, order)
- if err != nil {
- return nil, err
- }
- if it == nil {
- continue
- }
- iters = append(iters, it)
- }
- it, err := index.NewFieldIteratorTemplate(s.l, fieldKey, termRange, order, s.diskTable,
- func(term, val []byte, delegated kv.Iterator) (*index.PostingValue, error) {
- list := roaring.NewPostingList()
- err := list.Unmarshall(val)
- if err != nil {
- return nil, err
- }
+// Flush flushed memory data to disk
+func (s *store) Flush() error {
+ return nil
+}
- pv := &index.PostingValue{
- Term: term,
- Value: list,
- }
+type blugeMatchIterator struct {
+ delegated search.DocumentMatchIterator
+ fieldKey string
- for ; delegated.Valid(); delegated.Next() {
- f := index.Field{
- Key: fieldKey,
- }
- err := f.Unmarshal(delegated.Key())
- if err != nil {
- return nil, err
- }
- if !bytes.Equal(f.Term, term) {
- break
- }
- l := roaring.NewPostingList()
- err = l.Unmarshall(delegated.Val())
- if err != nil {
- return nil, err
- }
- err = pv.Value.Union(l)
- if err != nil {
- return nil, err
- }
- }
- return pv, nil
- })
- if err != nil {
- return nil, err
+ current *index.PostingValue
+ agg *index.PostingValue
+
+ closed bool
+ err error
+}
+
+func newBlugeMatchIterator(delegated search.DocumentMatchIterator, fieldKey string) blugeMatchIterator {
+ return blugeMatchIterator{
+ delegated: delegated,
+ fieldKey: fieldKey,
}
- iters = append(iters, it)
- if len(iters) < 1 {
- return nil, nil
+}
+
+func (bmi *blugeMatchIterator) Next() bool {
+ if bmi.err != nil || bmi.closed {
+ return false
}
- var fn index.SwitchFn
- switch order {
- case modelv1.Sort_SORT_ASC, modelv1.Sort_SORT_UNSPECIFIED:
- fn = func(a, b []byte) bool {
- return bytes.Compare(a, b) > 0
- }
- case modelv1.Sort_SORT_DESC:
- fn = func(a, b []byte) bool {
- return bytes.Compare(a, b) < 0
- }
+ for bmi.nextTerm() {
}
- return index.NewMergedIterator(iters, fn), nil
+ if bmi.err != nil || bmi.closed {
+ return false
+ }
+ return true
}
-func (s *store) searchInMemTables(result posting.List, entityFunc entityFunc) (posting.List, error) {
- s.rwMutex.RLock()
- defer s.rwMutex.RUnlock()
- tt := []*memTable{s.memTable, s.immutableMemTable}
- for _, table := range tt {
- if table == nil {
- continue
+func (bmi *blugeMatchIterator) nextTerm() bool {
+ var match *search.DocumentMatch
+ match, bmi.err = bmi.delegated.Next()
+ if bmi.err != nil {
+ return false
+ }
+ if match == nil {
+ if bmi.agg == nil {
+ bmi.closed = true
+ } else {
+ bmi.current = bmi.agg
+ bmi.agg = nil
+ }
+ return false
+ }
+ i := 0
+ var itemID common.ItemID
+ var term []byte
+ bmi.err = match.VisitStoredFields(func(field string, value []byte) bool {
+ if field == docID {
+ id := convert.BytesToUint64(value)
+ itemID = common.ItemID(id)
}
- list, err := entityFunc(table)
- if err != nil {
- return result, err
+ if field == bmi.fieldKey {
+ term = y.Copy(value)
}
- err = result.Union(list)
- if err != nil {
- return result, err
+ i++
+ return i < 2
+ })
+ if i != 2 {
+ bmi.err = errors.New("less fields")
+ return false
+ }
+ if bmi.err != nil {
+ return false
+ }
+ if bmi.agg == nil {
+ bmi.agg = &index.PostingValue{
+ Term: term,
+ Value: roaring.NewPostingListWithInitialData(uint64(itemID)),
}
+ return true
+ }
+ if bytes.Equal(bmi.agg.Term, term) {
+ bmi.agg.Value.Insert(itemID)
+ return true
+ }
+ bmi.current = bmi.agg
+ bmi.agg = &index.PostingValue{
+ Term: term,
+ Value: roaring.NewPostingListWithInitialData(uint64(itemID)),
}
- return result, nil
+ return false
}
-type entityFunc func(table *memTable) (posting.List, error)
+func (bmi *blugeMatchIterator) Val() *index.PostingValue {
+ return bmi.current
+}
+
+func (bmi *blugeMatchIterator) Close() error {
+ bmi.closed = true
+ return bmi.err
+}
diff --git a/pkg/index/inverted/inverted_test.go b/pkg/index/inverted/inverted_test.go
index 387cd18..b329322 100644
--- a/pkg/index/inverted/inverted_test.go
+++ b/pkg/index/inverted/inverted_test.go
@@ -23,8 +23,6 @@ import (
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
- "github.com/apache/skywalking-banyandb/pkg/index/posting"
- "github.com/apache/skywalking-banyandb/pkg/index/posting/roaring"
"github.com/apache/skywalking-banyandb/pkg/index/testcases"
"github.com/apache/skywalking-banyandb/pkg/logger"
"github.com/apache/skywalking-banyandb/pkg/test"
@@ -46,23 +44,6 @@ func TestStore_MatchTerm(t *testing.T) {
testcases.RunServiceName(t, s)
}
-func TestStore_MatchTerm_AfterFlush(t *testing.T) {
- tester := assert.New(t)
- path, fn := setUp(require.New(t))
- s, err := NewStore(StoreOpts{
- Path: path,
- Logger: logger.GetLogger("test"),
- })
- defer func() {
- tester.NoError(s.Close())
- fn()
- }()
- tester.NoError(err)
- testcases.SetUp(tester, s)
- tester.NoError(s.(*store).Flush())
- testcases.RunServiceName(t, s)
-}
-
func TestStore_Iterator(t *testing.T) {
tester := assert.New(t)
path, fn := setUp(require.New(t))
@@ -79,60 +60,6 @@ func TestStore_Iterator(t *testing.T) {
testcases.RunDuration(t, data, s)
}
-func TestStore_Iterator_AfterFlush(t *testing.T) {
- tester := assert.New(t)
- path, fn := setUp(require.New(t))
- s, err := NewStore(StoreOpts{
- Path: path,
- Logger: logger.GetLogger("test"),
- })
- defer func() {
- tester.NoError(s.Close())
- fn()
- }()
- tester.NoError(err)
- data := testcases.SetUpDuration(tester, s)
- tester.NoError(s.(*store).Flush())
- testcases.RunDuration(t, data, s)
-}
-
-func TestStore_Iterator_Hybrid(t *testing.T) {
- tester := assert.New(t)
- path, fn := setUp(require.New(t))
- s, err := NewStore(StoreOpts{
- Path: path,
- Logger: logger.GetLogger("test"),
- })
- defer func() {
- tester.NoError(s.Close())
- fn()
- }()
- tester.NoError(err)
- r := map[int]posting.List{
- 50: roaring.NewPostingList(),
- 200: nil,
- 500: roaring.NewPostingList(),
- 1000: nil,
- 2000: roaring.NewPostingList(),
- }
- data1 := testcases.SetUpPartialDuration(tester, s, r)
- tester.NoError(s.(*store).Flush())
- r = map[int]posting.List{
- 50: nil,
- 200: roaring.NewPostingList(),
- 500: nil,
- 1000: roaring.NewPostingList(),
- 2000: nil,
- }
- data := testcases.SetUpPartialDuration(tester, s, r)
- for i, list := range data {
- if list == nil {
- data[i] = data1[i]
- }
- }
- testcases.RunDuration(t, data, s)
-}
-
func setUp(t *require.Assertions) (tempDir string, deferFunc func()) {
t.NoError(logger.Init(logger.Logging{
Env: "dev",
diff --git a/pkg/index/inverted/mem.go b/pkg/index/inverted/mem.go
deleted file mode 100644
index 041359d..0000000
--- a/pkg/index/inverted/mem.go
+++ /dev/null
@@ -1,245 +0,0 @@
-// Licensed to Apache Software Foundation (ASF) under one or more contributor
-// license agreements. See the NOTICE file distributed with
-// this work for additional information regarding copyright
-// ownership. Apache Software Foundation (ASF) licenses this file to you under
-// the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-package inverted
-
-import (
- "bytes"
- "sort"
-
- "go.uber.org/multierr"
-
- "github.com/apache/skywalking-banyandb/api/common"
- modelv1 "github.com/apache/skywalking-banyandb/api/proto/banyandb/model/v1"
- "github.com/apache/skywalking-banyandb/banyand/kv"
- "github.com/apache/skywalking-banyandb/banyand/observability"
- "github.com/apache/skywalking-banyandb/pkg/index"
- "github.com/apache/skywalking-banyandb/pkg/index/posting"
- "github.com/apache/skywalking-banyandb/pkg/index/posting/roaring"
-)
-
-var (
- _ index.Writer = (*memTable)(nil)
- _ index.FieldIterable = (*memTable)(nil)
-)
-
-type memTable struct {
- fields *fieldMap
-}
-
-func newMemTable() *memTable {
- return &memTable{
- fields: newFieldMap(1000),
- }
-}
-
-func (m *memTable) Write(field index.Field, itemID common.ItemID) error {
- return m.fields.put(field, itemID)
-}
-
-func (m *memTable) Stats() observability.Statistics {
- return m.fields.Stats()
-}
-
-var _ index.FieldIterator = (*fIterator)(nil)
-
-type fIterator struct {
- index int
- val *index.PostingValue
- keys [][]byte
- valueRepo *termMap
- closed bool
-}
-
-func (f *fIterator) Next() bool {
- if f.closed {
- return false
- }
- f.index++
- if f.index >= len(f.keys) {
- return false
- }
- f.val = f.valueRepo.getEntry(f.keys[f.index])
- if f.val == nil {
- return f.Next()
- }
- return true
-}
-
-func (f *fIterator) Val() *index.PostingValue {
- return f.val
-}
-
-func (f *fIterator) Close() error {
- f.closed = true
- return nil
-}
-
-func newFieldIterator(keys [][]byte, fValue *termMap) index.FieldIterator {
- return &fIterator{
- keys: keys,
- valueRepo: fValue,
- index: -1,
- }
-}
-
-func (m *memTable) Iterator(fieldKey index.FieldKey, rangeOpts index.RangeOpts,
- order modelv1.Sort,
-) (iter index.FieldIterator, err error) {
- fieldsValues, ok := m.fields.get(fieldKey)
- if !ok {
- return nil, nil
- }
- fValue := fieldsValues.value
- var terms [][]byte
- fValue.mutex.RLock()
- for _, value := range fValue.repo {
- if rangeOpts.Between(value.Term) == 0 {
- terms = append(terms, value.Term)
- }
- }
- fValue.mutex.RUnlock()
- if len(terms) < 1 {
- return nil, nil
- }
- switch order {
- case modelv1.Sort_SORT_ASC, modelv1.Sort_SORT_UNSPECIFIED:
- sort.SliceStable(terms, func(i, j int) bool {
- return bytes.Compare(terms[i], terms[j]) < 0
- })
- case modelv1.Sort_SORT_DESC:
- sort.SliceStable(terms, func(i, j int) bool {
- return bytes.Compare(terms[i], terms[j]) > 0
- })
- }
- return newFieldIterator(terms, fValue), nil
-}
-
-func (m *memTable) MatchTerms(field index.Field) (posting.List, error) {
- fieldsValues, ok := m.fields.get(field.Key)
- if !ok {
- return roaring.EmptyPostingList, nil
- }
- list := fieldsValues.value.get(field.Term)
- if list == nil {
- return roaring.EmptyPostingList, nil
- }
- return list, nil
-}
-
-var _ kv.Iterator = (*flushIterator)(nil)
-
-type flushIterator struct {
- fieldIdx int
- termIdx int
- key []byte
- value []byte
- fields *fieldMap
- valid bool
- err error
-}
-
-func (i *flushIterator) Next() {
- if i.fieldIdx >= len(i.fields.lst) {
- i.valid = false
- return
- }
- fieldID := i.fields.lst[i.fieldIdx]
- terms := i.fields.repo[fieldID]
- if i.termIdx < len(terms.value.lst) {
- i.termIdx++
- if !i.setCurr() {
- i.Next()
- }
- return
- }
- i.fieldIdx++
- i.termIdx = 0
- if !i.setCurr() {
- i.Next()
- }
-}
-
-func (i *flushIterator) Rewind() {
- i.fieldIdx = 0
- i.termIdx = 0
- i.valid = true
- if !i.setCurr() {
- i.valid = false
- }
-}
-
-func (i *flushIterator) Seek(_ []byte) {
- panic("unsupported")
-}
-
-func (i *flushIterator) Key() []byte {
- return i.key
-}
-
-func (i *flushIterator) Val() []byte {
- return i.value
-}
-
-func (i *flushIterator) Valid() bool {
- return i.valid
-}
-
-func (i *flushIterator) Close() error {
- return i.err
-}
-
-func (i *flushIterator) setCurr() bool {
- i.fields.mutex.RLock()
- if i.fieldIdx >= len(i.fields.lst) {
- i.fields.mutex.RUnlock()
- return false
- }
- fieldID := i.fields.lst[i.fieldIdx]
- term := i.fields.repo[fieldID]
- i.fields.mutex.RUnlock()
- term.value.mutex.RLock()
- if i.termIdx >= len(term.value.lst) {
- term.value.mutex.RUnlock()
- return false
- }
- valueID := term.value.lst[i.termIdx]
- value := term.value.repo[valueID]
- term.value.mutex.RUnlock()
- v, err := value.Value.Marshall()
- if err != nil {
- i.err = multierr.Append(i.err, err)
- return false
- }
- i.value = v
- f := index.Field{
- Key: term.key,
- Term: value.Term,
- }
- i.key, err = f.Marshal()
- if err != nil {
- i.err = multierr.Append(i.err, err)
- return false
- }
- return true
-}
-
-func (m *memTable) Iter() kv.Iterator {
- return &flushIterator{
- fields: m.fields,
- }
-}
diff --git a/pkg/index/inverted/mem_test.go b/pkg/index/inverted/mem_test.go
deleted file mode 100644
index 7d9a3e4..0000000
--- a/pkg/index/inverted/mem_test.go
+++ /dev/null
@@ -1,38 +0,0 @@
-// Licensed to Apache Software Foundation (ASF) under one or more contributor
-// license agreements. See the NOTICE file distributed with
-// this work for additional information regarding copyright
-// ownership. Apache Software Foundation (ASF) licenses this file to you under
-// the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-package inverted
-
-import (
- "testing"
-
- "github.com/stretchr/testify/assert"
-
- "github.com/apache/skywalking-banyandb/pkg/index/testcases"
-)
-
-func TestMemTable_MatchTerm(t *testing.T) {
- mt := newMemTable()
- testcases.SetUp(assert.New(t), mt)
- testcases.RunServiceName(t, mt)
-}
-
-func TestMemTable_Iterator(t *testing.T) {
- mt := newMemTable()
- data := testcases.SetUpDuration(assert.New(t), mt)
- testcases.RunDuration(t, data, mt)
-}
diff --git a/pkg/index/inverted/term_map.go b/pkg/index/inverted/term_map.go
deleted file mode 100644
index 42a10b7..0000000
--- a/pkg/index/inverted/term_map.go
+++ /dev/null
@@ -1,96 +0,0 @@
-// Licensed to Apache Software Foundation (ASF) under one or more contributor
-// license agreements. See the NOTICE file distributed with
-// this work for additional information regarding copyright
-// ownership. Apache Software Foundation (ASF) licenses this file to you under
-// the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-package inverted
-
-import (
- "sync"
-
- "github.com/apache/skywalking-banyandb/api/common"
- "github.com/apache/skywalking-banyandb/banyand/observability"
- "github.com/apache/skywalking-banyandb/pkg/convert"
- "github.com/apache/skywalking-banyandb/pkg/index"
- "github.com/apache/skywalking-banyandb/pkg/index/posting"
- "github.com/apache/skywalking-banyandb/pkg/index/posting/roaring"
-)
-
-type termHashID uint64
-
-type termMap struct {
- repo map[termHashID]*index.PostingValue
- lst []termHashID
- mutex sync.RWMutex
-}
-
-func newPostingMap() *termMap {
- return &termMap{
- repo: make(map[termHashID]*index.PostingValue),
- }
-}
-
-func (p *termMap) put(key []byte, id common.ItemID) error {
- list := p.getOrCreate(key)
- list.Insert(id)
- return nil
-}
-
-func (p *termMap) getOrCreate(key []byte) posting.List {
- list := p.get(key)
- if list != nil {
- return list
- }
- p.mutex.Lock()
- defer p.mutex.Unlock()
- hashedKey := termHashID(convert.Hash(key))
- v := &index.PostingValue{
- Term: key,
- Value: roaring.NewPostingList(),
- }
- p.repo[hashedKey] = v
- p.lst = append(p.lst, hashedKey)
- return v.Value
-}
-
-func (p *termMap) get(key []byte) posting.List {
- e := p.getEntry(key)
- if e == nil {
- return nil
- }
- return e.Value
-}
-
-func (p *termMap) getEntry(key []byte) *index.PostingValue {
- p.mutex.RLock()
- defer p.mutex.RUnlock()
- hashedKey := termHashID(convert.Hash(key))
- v, ok := p.repo[hashedKey]
- if !ok {
- return nil
- }
- return v
-}
-
-func (p *termMap) Stats() (s observability.Statistics) {
- p.mutex.RLock()
- defer p.mutex.RUnlock()
- for _, pv := range p.repo {
- // 8 is the size of key
- s.MemBytes += 8
- s.MemBytes += pv.Value.SizeInBytes()
- }
- return s
-}
diff --git a/pkg/index/lsm/lsm.go b/pkg/index/lsm/lsm.go
index e903098..7af6cd2 100644
--- a/pkg/index/lsm/lsm.go
+++ b/pkg/index/lsm/lsm.go
@@ -24,6 +24,7 @@ import (
"github.com/apache/skywalking-banyandb/pkg/convert"
"github.com/apache/skywalking-banyandb/pkg/index"
"github.com/apache/skywalking-banyandb/pkg/logger"
+ "go.uber.org/multierr"
)
var _ index.Store = (*store)(nil)
@@ -45,13 +46,17 @@ func (s *store) Close() error {
return s.lsm.Close()
}
-func (s *store) Write(field index.Field, itemID common.ItemID) error {
- f, err := field.Marshal()
- if err != nil {
- return err
+func (s *store) Write(fields []index.Field, itemID common.ItemID) (err error) {
+ for _, field := range fields {
+ f, errInternal := field.Marshal()
+ if errInternal != nil {
+ err = multierr.Append(err, errInternal)
+ continue
+ }
+ itemIDInt := uint64(itemID)
+ err = multierr.Append(err, s.lsm.PutWithVersion(f, convert.Uint64ToBytes(itemIDInt), itemIDInt))
}
- itemIDInt := uint64(itemID)
- return s.lsm.PutWithVersion(f, convert.Uint64ToBytes(itemIDInt), itemIDInt)
+ return err
}
type StoreOpts struct {
diff --git a/pkg/index/testcases/duration.go b/pkg/index/testcases/duration.go
index 85f9355..c065d96 100644
--- a/pkg/index/testcases/duration.go
+++ b/pkg/index/testcases/duration.go
@@ -332,10 +332,10 @@ func SetUpPartialDuration(t *assert.Assertions, store index.Writer, r map[int]po
if i%len(idx) != i2 || r[term] == nil {
continue
}
- t.NoError(store.Write(index.Field{
+ t.NoError(store.Write([]index.Field{{
Key: duration,
Term: convert.Int64ToBytes(int64(term)),
- }, id))
+ }}, id))
r[term].Insert(id)
}
}
diff --git a/pkg/index/testcases/service_name.go b/pkg/index/testcases/service_name.go
index df5e067..5c711f7 100644
--- a/pkg/index/testcases/service_name.go
+++ b/pkg/index/testcases/service_name.go
@@ -88,15 +88,15 @@ func RunServiceName(t *testing.T, store SimpleStore) {
func SetUp(t *assert.Assertions, store SimpleStore) {
for i := 0; i < 100; i++ {
if i < 100/2 {
- t.NoError(store.Write(index.Field{
+ t.NoError(store.Write([]index.Field{{
Key: serviceName,
Term: []byte("gateway"),
- }, common.ItemID(i)))
+ }}, common.ItemID(i)))
} else {
- t.NoError(store.Write(index.Field{
+ t.NoError(store.Write([]index.Field{{
Key: serviceName,
Term: []byte("webpage"),
- }, common.ItemID(i)))
+ }}, common.ItemID(i)))
}
}
}
diff --git a/pkg/logger/logger.go b/pkg/logger/logger.go
index f28d5c0..4fce4de 100644
--- a/pkg/logger/logger.go
+++ b/pkg/logger/logger.go
@@ -44,6 +44,10 @@ type Logger struct {
*zerolog.Logger
}
+func (l Logger) Module() string {
+ return l.module
+}
+
func (l *Logger) Named(name string) *Logger {
module := strings.Join([]string{l.module, name}, ".")
subLogger := root.l.With().Str("module", module).Logger()