hanahmily commented on a change in pull request #30:
URL: https://github.com/apache/skywalking-banyandb/pull/30#discussion_r686606169



##########
File path: banyand/liaison/grpc/grpc.go
##########
@@ -19,64 +19,146 @@ package grpc
 
 import (
        "context"
+       "fmt"
+       "io"
+       "log"
        "net"
+       "path/filepath"
+       "runtime"
+       "strings"
+       "sync"
+       "time"
 
-       "google.golang.org/grpc"
+       "github.com/pkg/errors"
+       grpclib "google.golang.org/grpc"
+       "google.golang.org/grpc/credentials"
 
+       "github.com/apache/skywalking-banyandb/api/common"
+       "github.com/apache/skywalking-banyandb/api/data"
        "github.com/apache/skywalking-banyandb/api/event"
        v1 "github.com/apache/skywalking-banyandb/api/proto/banyandb/v1"
+       apischema "github.com/apache/skywalking-banyandb/api/schema"
        "github.com/apache/skywalking-banyandb/banyand/discovery"
        "github.com/apache/skywalking-banyandb/banyand/queue"
        "github.com/apache/skywalking-banyandb/pkg/bus"
+       "github.com/apache/skywalking-banyandb/pkg/convert"
        "github.com/apache/skywalking-banyandb/pkg/logger"
+       "github.com/apache/skywalking-banyandb/pkg/partition"
+       "github.com/apache/skywalking-banyandb/pkg/query/logical"
        "github.com/apache/skywalking-banyandb/pkg/run"
 )
 
+var (
+       ErrSeriesEvents       = errors.New("no seriesEvent")
+       ErrShardEvents        = errors.New("no shardEvent")
+       ErrInvalidSeriesID    = errors.New("invalid seriesID")
+       ErrServerCert         = errors.New("invalid server cert file")
+       ErrServerKey          = errors.New("invalid server key file")
+       ErrServerHostOverride = errors.New("invalid serverHostOverride")
+       ErrNoAddr             = errors.New("no address")
+)
+
 type Server struct {
-       addr       string
-       log        *logger.Logger
-       ser        *grpc.Server
-       pipeline   queue.Queue
-       repo       discovery.ServiceRepo
-       shardInfo  *shardInfo
-       seriesInfo *seriesInfo
+       addr               string
+       maxRecvMsgSize     int
+       TLSVal             bool
+       ServerHostOverride string
+       CertFile           string
+       keyFile            string
+       log                *logger.Logger
+       ser                *grpclib.Server
+       pipeline           queue.Queue
+       repo               discovery.ServiceRepo
+       shardInfo          *shardInfo
+       seriesInfo         *seriesInfo
+       v1.UnimplementedTraceServiceServer
 }
 
 type shardInfo struct {
-       log *logger.Logger
+       log        *logger.Logger
+       shardEvent *shardEvent
+       sync.RWMutex
 }
 
 func (s *shardInfo) Rev(message bus.Message) (resp bus.Message) {
-       shardEvent, ok := message.Data().(*v1.ShardEvent)
+       event, ok := message.Data().(*v1.ShardEvent)
        if !ok {
                s.log.Warn().Msg("invalid event data type")
                return
        }
+       s.shardEvent.setShardEvents(event)
        s.log.Info().
-               Str("action", v1.Action_name[int32(shardEvent.Action)]).
-               Uint64("shardID", shardEvent.Shard.Id).
+               Str("action", v1.Action_name[int32(event.Action)]).
+               Uint64("shardID", event.Shard.Id).
                Msg("received a shard event")
        return
 }
 
+func (s *shardInfo) getShardEvent(idx string) *v1.ShardEvent {
+       s.RWMutex.RLock()

Review comment:
       Move `getShardEvent` into `shardEvent` and remove `shardInfo.RWMutex`, 
that could help us use a single lock to protect shardEventsMap. 

##########
File path: banyand/liaison/grpc/grpc.go
##########
@@ -49,26 +49,35 @@ import (
 )
 
 var (
-       ErrSeriesEvents    = errors.New("no seriesEvent")
-       ErrShardEvents     = errors.New("no shardEvent")
-       ErrInvalidSeriesID = errors.New("invalid seriesID")
+       ErrSeriesEvents       = errors.New("no seriesEvent")
+       ErrShardEvents        = errors.New("no shardEvent")
+       ErrInvalidSeriesID    = errors.New("invalid seriesID")
+       ErrServerCert         = errors.New("invalid server cert file")
+       ErrServerKey          = errors.New("invalid server key file")
+       ErrServerHostOverride = errors.New("invalid serverHostOverride")
+       ErrNoAddr             = errors.New("no address")
 )
 
 type Server struct {
-       addr       string
-       log        *logger.Logger
-       ser        *grpclib.Server
-       pipeline   queue.Queue
-       repo       discovery.ServiceRepo
-       shardInfo  *shardInfo
-       seriesInfo *seriesInfo
+       addr               string
+       maxRecvMsgSize     int
+       TLSVal             bool
+       ServerHostOverride string
+       CertFile           string

Review comment:
       You could follow the below piece to set those flags instead of exporting 
them:
   
   ```go
   tcp.FlagSet().Parse([]string{"--tls=" + xxx})
   ```




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to