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/04/03 02:23:06 UTC

[skywalking-banyandb] branch patch-ob created (now 339c428)

This is an automated email from the ASF dual-hosted git repository.

hanahmily pushed a change to branch patch-ob
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb.git.


      at 339c428  Fix NPE of stating badger kv

This branch includes the following new commits:

     new 339c428  Fix NPE of stating badger kv

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[skywalking-banyandb] 01/01: Fix NPE of stating badger kv

Posted by ha...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

hanahmily pushed a commit to branch patch-ob
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb.git

commit 339c4287c0504b5e0dc72dd18aab4c13134dbf6c
Author: Gao Hongtao <ha...@gmail.com>
AuthorDate: Sun Apr 3 02:21:58 2022 +0000

    Fix NPE of stating badger kv
    
    Signed-off-by: Gao Hongtao <ha...@gmail.com>
---
 banyand/tsdb/block.go  | 26 +++++++++++++++++---------
 banyand/tsdb/metric.go | 31 ++++++++++++++++++-------------
 go.mod                 |  2 +-
 go.sum                 |  4 ++--
 4 files changed, 38 insertions(+), 25 deletions(-)

diff --git a/banyand/tsdb/block.go b/banyand/tsdb/block.go
index cafe15c..3296b26 100644
--- a/banyand/tsdb/block.go
+++ b/banyand/tsdb/block.go
@@ -20,6 +20,7 @@ package tsdb
 import (
 	"context"
 	"io"
+	"path"
 	"strconv"
 	"sync"
 	"time"
@@ -39,6 +40,13 @@ import (
 	"github.com/apache/skywalking-banyandb/pkg/timestamp"
 )
 
+const (
+	componentMain              = "main"
+	componentPrimaryIdx        = "primary"
+	componentSecondInvertedIdx = "inverted"
+	componentSecondLSMIdx      = "lsm"
+)
+
 type block struct {
 	path     string
 	l        *logger.Logger
@@ -108,28 +116,28 @@ func (b *block) open() (err error) {
 	b.ref = z.NewCloser(1)
 	if b.store, err = kv.OpenTimeSeriesStore(
 		0,
-		b.path+"/store",
+		path.Join(b.path, componentMain),
 		kv.TSSWithEncoding(b.encodingMethod.EncoderPool, b.encodingMethod.DecoderPool),
-		kv.TSSWithLogger(b.l.Named("main-store")),
+		kv.TSSWithLogger(b.l.Named(componentMain)),
 	); err != nil {
 		return err
 	}
 	if b.primaryIndex, err = lsm.NewStore(lsm.StoreOpts{
-		Path:   b.path + "/primary",
-		Logger: b.l.Named("primary-lsm"),
+		Path:   path.Join(b.path, componentPrimaryIdx),
+		Logger: b.l.Named(componentPrimaryIdx),
 	}); err != nil {
 		return err
 	}
 	b.closableLst = append(b.closableLst, b.store, b.primaryIndex)
 	if b.invertedIndex, err = inverted.NewStore(inverted.StoreOpts{
-		Path:   b.path + "/inverted",
-		Logger: b.l.Named("secondary-inverted"),
+		Path:   path.Join(b.path, componentSecondInvertedIdx),
+		Logger: b.l.Named(componentSecondInvertedIdx),
 	}); err != nil {
 		return err
 	}
 	if b.lsmIndex, err = lsm.NewStore(lsm.StoreOpts{
-		Path:   b.path + "/lsm",
-		Logger: b.l.Named("secondary-lsm"),
+		Path:   path.Join(b.path, componentSecondLSMIdx),
+		Logger: b.l.Named(componentSecondLSMIdx),
 	}); err != nil {
 		return err
 	}
@@ -179,7 +187,7 @@ func (b *block) String() string {
 }
 
 func (b *block) stats() (names []string, stats []observability.Statistics) {
-	names = append(names, "main", "p-idx", "si-idx", "sl-idx")
+	names = append(names, componentMain, componentPrimaryIdx, componentSecondInvertedIdx, componentSecondLSMIdx)
 	stats = append(stats, b.store.Stats(), b.primaryIndex.Stats(), b.invertedIndex.Stats(), b.lsmIndex.Stats())
 	return names, stats
 }
diff --git a/banyand/tsdb/metric.go b/banyand/tsdb/metric.go
index 9c4005b..3638bb4 100644
--- a/banyand/tsdb/metric.go
+++ b/banyand/tsdb/metric.go
@@ -71,8 +71,7 @@ func (s *shard) stat() {
 	s.curry(mtBytes).WithLabelValues("series").Set(float64(seriesStat.MemBytes))
 	s.curry(maxMtBytes).WithLabelValues("series").Set(float64(seriesStat.MaxMemBytes))
 	segStats := observability.Statistics{}
-	blockStats := observability.Statistics{}
-	localIndexStats := observability.Statistics{}
+	blockStats := newBlockStat()
 	for _, seg := range s.segmentController.segments() {
 		segStat := seg.Stats()
 		segStats.MaxMemBytes += segStat.MaxMemBytes
@@ -83,23 +82,20 @@ func (s *shard) stat() {
 			}
 			names, bss := b.stats()
 			for i, bs := range bss {
-				if names[i] == "main" {
-					blockStats.MaxMemBytes += bs.MaxMemBytes
-					blockStats.MemBytes += bs.MemBytes
-					continue
+				bsc, ok := blockStats[names[i]]
+				if ok {
+					bsc.MaxMemBytes += bs.MaxMemBytes
+					bsc.MemBytes += bs.MemBytes
 				}
-				localIndexStats.MaxMemBytes += bs.MaxMemBytes
-				localIndexStats.MemBytes += bs.MemBytes
 			}
-
 		}
 	}
 	s.curry(mtBytes).WithLabelValues("global-index").Set(float64(segStats.MemBytes))
 	s.curry(maxMtBytes).WithLabelValues("global-index").Set(float64(segStats.MaxMemBytes))
-	s.curry(mtBytes).WithLabelValues("block").Set(float64(blockStats.MemBytes))
-	s.curry(maxMtBytes).WithLabelValues("block").Set(float64(blockStats.MaxMemBytes))
-	s.curry(mtBytes).WithLabelValues("local-index").Set(float64(localIndexStats.MemBytes))
-	s.curry(maxMtBytes).WithLabelValues("local-index").Set(float64(localIndexStats.MaxMemBytes))
+	for name, bs := range blockStats {
+		s.curry(mtBytes).WithLabelValues(name).Set(float64(bs.MemBytes))
+		s.curry(maxMtBytes).WithLabelValues(name).Set(float64(bs.MaxMemBytes))
+	}
 }
 
 func (s *shard) curry(gv *prometheus.GaugeVec) *prometheus.GaugeVec {
@@ -109,3 +105,12 @@ func (s *shard) curry(gv *prometheus.GaugeVec) *prometheus.GaugeVec {
 		"shard":    s.position.Shard,
 	})
 }
+
+func newBlockStat() map[string]observability.Statistics {
+	return map[string]observability.Statistics{
+		componentMain:              {},
+		componentPrimaryIdx:        {},
+		componentSecondInvertedIdx: {},
+		componentSecondLSMIdx:      {},
+	}
+}
diff --git a/go.mod b/go.mod
index e8db453..4f5498c 100644
--- a/go.mod
+++ b/go.mod
@@ -107,4 +107,4 @@ require (
 	sigs.k8s.io/yaml v1.2.0 // indirect
 )
 
-replace github.com/dgraph-io/badger/v3 v3.2011.1 => github.com/SkyAPM/badger/v3 v3.0.0-20220331082938-b907904d6089
+replace github.com/dgraph-io/badger/v3 v3.2011.1 => github.com/SkyAPM/badger/v3 v3.0.0-20220403004319-fea65bd5e9e4
diff --git a/go.sum b/go.sum
index 4189cd5..5057b2a 100644
--- a/go.sum
+++ b/go.sum
@@ -47,8 +47,8 @@ github.com/RoaringBitmap/gocroaring v0.4.0/go.mod h1:NieMwz7ZqwU2DD73/vvYwv7r4eW
 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/SkyAPM/badger/v3 v3.0.0-20220331082938-b907904d6089 h1:MEqSQssrKviX+uU4xfAcIvvpFeTamsT3cPc9k4Ol4Ks=
-github.com/SkyAPM/badger/v3 v3.0.0-20220331082938-b907904d6089/go.mod h1:Q0luV7nB94o3Bl4hYqAPy03+QTtLxs9pWdUEQb0i0K0=
+github.com/SkyAPM/badger/v3 v3.0.0-20220403004319-fea65bd5e9e4 h1:iLwRXI6WHBMb2VkWrlYKIFngPKwgs2OnjliXdMB5DY0=
+github.com/SkyAPM/badger/v3 v3.0.0-20220403004319-fea65bd5e9e4/go.mod h1:Q0luV7nB94o3Bl4hYqAPy03+QTtLxs9pWdUEQb0i0K0=
 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=