From 34edd312d694eb361c799b8e74e867bd73b84449 Mon Sep 17 00:00:00 2001 From: kpango Date: Tue, 11 Apr 2023 01:13:04 +0900 Subject: [PATCH] add new agents helm template base. fix configmap for each agents Signed-off-by: kpango --- .../detect-docker-image-tags/action.yaml | 3 + .../actions/wait-for-docker-image/action.yaml | 2 + .github/workflows/dockers-agent-qbg-image.yml | 153 + .github/workflows/dockers-image-scan.yml | 33 + .gitignore | 1 + Makefile | 150 +- Makefile.d/build.mk | 5 + Makefile.d/functions.mk | 14 + Makefile.d/k3d.mk | 15 +- apis/grpc/v1/agent/core/agent_vtproto.pb.go | 6 +- .../v1/discoverer/discoverer_vtproto.pb.go | 8 +- .../filter/egress/egress_filter_vtproto.pb.go | 8 +- .../ingress/ingress_filter_vtproto.pb.go | 8 +- .../manager/index/index_manager_vtproto.pb.go | 2 +- apis/grpc/v1/payload/payload.pb.go | 721 +- apis/grpc/v1/payload/payload_vtproto.pb.go | 7074 ++++++++++++----- apis/grpc/v1/vald/filter_vtproto.pb.go | 40 +- apis/grpc/v1/vald/insert_vtproto.pb.go | 10 +- apis/grpc/v1/vald/object_vtproto.pb.go | 10 +- apis/grpc/v1/vald/remove_vtproto.pb.go | 10 +- apis/grpc/v1/vald/search_vtproto.pb.go | 40 +- apis/grpc/v1/vald/update_vtproto.pb.go | 10 +- apis/grpc/v1/vald/upsert_vtproto.pb.go | 10 +- apis/proto/v1/payload/payload.proto | 91 +- .../vald-helm-operator/crds/valdrelease.yaml | 34 +- charts/vald/README.md | 10 +- charts/vald/templates/agent/daemonset.yaml | 201 - charts/vald/templates/agent/deployment.yaml | 205 - .../vald/templates/agent/faiss/configmap.yaml | 45 + .../templates/agent/{ => ngt}/configmap.yaml | 2 +- .../vald/templates/agent/qbg/configmap.yaml | 45 + .../configmap.yaml} | 0 .../{sidecar-svc.yaml => sidecar/svc.yaml} | 0 charts/vald/templates/agent/statefulset.yaml | 2 + charts/vald/values.schema.json | 47 +- charts/vald/values.yaml | 22 +- charts/vald/values/dev.yaml | 2 + cmd/agent/core/ngt/sample-cow.yaml | 2 +- cmd/agent/core/ngt/sample.yaml | 2 +- cmd/discoverer/k8s/sample.yaml | 2 +- cmd/gateway/filter/sample.yaml | 2 +- cmd/gateway/lb/sample.yaml | 2 +- cmd/manager/index/sample.yaml | 2 +- docs/user-guides/backup-configuration.md | 2 +- .../observability-configuration.md | 2 +- example/client/go.mod | 4 + example/client/go.sum | 5 + go.mod | 47 +- go.sum | 54 +- hack/go.mod.default | 22 +- .../client/v1/client/agent/core/client.go | 6 +- internal/config/server.go | 8 + internal/errgroup/group_test.go | 6 +- internal/info/info.go | 13 +- internal/info/info_test.go | 294 +- internal/net/dialer.go | 2 +- internal/net/grpc/admin/admin.go | 24 + internal/net/grpc/errdetails/errdetails.go | 2 +- .../interceptor/server/logging/accesslog.go | 8 +- .../grpc/interceptor/server/metric/metric.go | 4 +- internal/observability/exporter/otlp/otlp.go | 5 +- .../metrics/agent/core/ngt/ngt.go | 219 +- .../metrics/agent/sidecar/sidecar.go | 99 +- .../observability/metrics/backoff/backoff.go | 44 +- .../metrics/circuitbreaker/circuitbreaker.go | 41 +- internal/observability/metrics/grpc/grpc.go | 47 +- internal/observability/metrics/info/info.go | 41 +- .../metrics/manager/index/index.go | 90 +- .../observability/metrics/mem/index/index.go | 371 +- internal/observability/metrics/metrics.go | 81 +- .../observability/metrics/runtime/cgo/cgo.go | 40 +- .../metrics/runtime/goroutine/goroutine.go | 43 +- .../observability/metrics/version/version.go | 42 +- internal/observability/trace/status.go | 2 +- k8s/agent/faiss/configmap.yaml | 198 + k8s/agent/{ => ngt}/configmap.yaml | 7 +- k8s/agent/pdb.yaml | 4 +- k8s/agent/priorityclass.yaml | 2 +- k8s/agent/qbg/configmap.yaml | 198 + k8s/agent/sidecar-configmap.yaml | 1 - k8s/agent/sidecar-svc.yaml | 1 - .../configmap.yaml} | 0 .../{deployment.yaml => sidecar/svc.yaml} | 0 k8s/agent/statefulset.yaml | 24 +- k8s/agent/svc.yaml | 2 +- k8s/discoverer/configmap.yaml | 5 +- k8s/discoverer/deployment.yaml | 4 + k8s/gateway/lb/configmap.yaml | 7 +- k8s/gateway/lb/deployment.yaml | 6 +- k8s/gateway/lb/ing.yaml | 46 + k8s/manager/index/configmap.yaml | 7 +- k8s/manager/index/deployment.yaml | 6 +- .../grafana/dashboards/01-vald-agent.yaml | 4 +- k8s/operator/helm/crds/valdrelease.yaml | 34 +- pkg/gateway/lb/handler/grpc/handler.go | 20 +- 95 files changed, 7644 insertions(+), 3651 deletions(-) create mode 100644 .github/workflows/dockers-agent-qbg-image.yml delete mode 100644 charts/vald/templates/agent/daemonset.yaml delete mode 100644 charts/vald/templates/agent/deployment.yaml create mode 100644 charts/vald/templates/agent/faiss/configmap.yaml rename charts/vald/templates/agent/{ => ngt}/configmap.yaml (96%) create mode 100644 charts/vald/templates/agent/qbg/configmap.yaml rename charts/vald/templates/agent/{sidecar-configmap.yaml => sidecar/configmap.yaml} (100%) rename charts/vald/templates/agent/{sidecar-svc.yaml => sidecar/svc.yaml} (100%) create mode 100644 internal/net/grpc/admin/admin.go create mode 100644 k8s/agent/faiss/configmap.yaml rename k8s/agent/{ => ngt}/configmap.yaml (98%) create mode 100644 k8s/agent/qbg/configmap.yaml delete mode 100644 k8s/agent/sidecar-configmap.yaml delete mode 100644 k8s/agent/sidecar-svc.yaml rename k8s/agent/{daemonset.yaml => sidecar/configmap.yaml} (100%) rename k8s/agent/{deployment.yaml => sidecar/svc.yaml} (100%) diff --git a/.github/actions/detect-docker-image-tags/action.yaml b/.github/actions/detect-docker-image-tags/action.yaml index 75e278d2c72..6144df238a9 100644 --- a/.github/actions/detect-docker-image-tags/action.yaml +++ b/.github/actions/detect-docker-image-tags/action.yaml @@ -24,6 +24,8 @@ inputs: description: "image names" required: false default: "vdaas/vald-agent-ngt \ + vdaas/vald-agent-qbg \ + vdaas/vald-agent-sidecar \ vdaas/vald-discoverer-k8s \ vdaas/vald-lb-gateway \ vdaas/vald-manager-index" @@ -43,6 +45,7 @@ runs: run: | declare -A m=( ["vdaas/vald-agent-ngt"]="agent.image.tag" + ["vdaas/vald-agent-qbg"]="agent.image.tag" ["vdaas/vald-agent-sidecar"]="agent.sidecar.image.tag" ["vdaas/vald-discoverer-k8s"]="discoverer.image.tag" ["vdaas/vald-lb-gateway"]="gateway.lb.image.tag" diff --git a/.github/actions/wait-for-docker-image/action.yaml b/.github/actions/wait-for-docker-image/action.yaml index 375e03caaeb..9322b0eb4e1 100644 --- a/.github/actions/wait-for-docker-image/action.yaml +++ b/.github/actions/wait-for-docker-image/action.yaml @@ -20,6 +20,8 @@ inputs: description: "image names" required: false default: "vdaas/vald-agent-ngt \ + vdaas/vald-agent-qbg \ + vdaas/vald-agent-sidecar \ vdaas/vald-discoverer-k8s \ vdaas/vald-lb-gateway \ vdaas/vald-manager-index" diff --git a/.github/workflows/dockers-agent-qbg-image.yml b/.github/workflows/dockers-agent-qbg-image.yml new file mode 100644 index 00000000000..e3ad805b021 --- /dev/null +++ b/.github/workflows/dockers-agent-qbg-image.yml @@ -0,0 +1,153 @@ +# +# Copyright (C) 2019-2023 vdaas.org vald team +# +# 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 +# +# https://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. +# +name: "Build docker image: agent-qbg" +on: + push: + branches: + - main + tags: + - "*.*.*" + - "v*.*.*" + - "*.*.*-*" + - "v*.*.*-*" + paths: + - ".github/actions/docker-build/actions.yaml" + - ".github/workflows/dockers-agent-qbg-image.yml" + - "go.mod" + - "go.sum" + - "internal/**" + - "!internal/**/*_test.go" + - "!internal/db/**" + - "!internal/k8s/**" + - "apis/grpc/**" + - "pkg/agent/core/qbg/**" + - "cmd/agent/core/qbg/**" + - "dockers/agent/core/qbg/Dockerfile" + - "versions/GO_VERSION" + - "versions/NGT_VERSION" + pull_request: + paths: + - ".github/actions/docker-build/actions.yaml" + - ".github/workflows/dockers-agent-qbg-image.yml" + - "go.mod" + - "go.sum" + - "internal/**" + - "!internal/**/*_test.go" + - "!internal/db/**" + - "!internal/k8s/**" + - "apis/grpc/**" + - "pkg/agent/core/qbg/**" + - "cmd/agent/core/qbg/**" + - "dockers/agent/core/qbg/Dockerfile" + - "versions/GO_VERSION" + - "versions/NGT_VERSION" + pull_request_target: + paths: + - ".github/actions/docker-build/actions.yaml" + - ".github/workflows/dockers-agent-qbg-image.yml" + - "go.mod" + - "go.sum" + - "internal/**" + - "!internal/**/*_test.go" + - "!internal/db/**" + - "!internal/k8s/**" + - "apis/grpc/**" + - "pkg/agent/core/qbg/**" + - "cmd/agent/core/qbg/**" + - "dockers/agent/core/qbg/Dockerfile" + - "versions/GO_VERSION" + - "versions/NGT_VERSION" + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}-${{ github.event_name }} + cancel-in-progress: true + +jobs: + build: + strategy: + max-parallel: 4 + runs-on: ubuntu-latest + if: ${{ (github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == false) || (github.event.pull_request.head.repo.fork == true && github.event_name == 'pull_request_target' && contains(github.event.pull_request.labels.*.name, 'ci/approved')) }} + steps: + - uses: actions/checkout@v3 + - name: set git config + run: | + git config --global --add safe.directory ${GITHUB_WORKSPACE} + - name: Setup QEMU + uses: docker/setup-qemu-action@v2 + with: + platforms: all + - name: Setup Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v2 + with: + buildkitd-flags: "--debug" + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USER }} + password: ${{ secrets.DOCKERHUB_PASS }} + - name: Login to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ secrets.PACKAGE_USER }} + password: ${{ secrets.PACKAGE_TOKEN }} + - name: Build and Publish + id: build_and_publish + uses: ./.github/actions/docker-build + with: + target: agent-qbg + builder: ${{ steps.buildx.outputs.name }} + - name: Initialize CodeQL + if: startsWith( github.ref, 'refs/tags/') + uses: github/codeql-action/init@v2 + - name: Run vulnerability scanner (table) + if: startsWith( github.ref, 'refs/tags/') + uses: aquasecurity/trivy-action@master + with: + image-ref: "${{ steps.build_and_publish.outputs.IMAGE_NAME }}:${{ steps.build_and_publish.outputs.PRIMARY_TAG }}" + format: "table" + - name: Run vulnerability scanner (sarif) + if: startsWith( github.ref, 'refs/tags/') + uses: aquasecurity/trivy-action@master + with: + image-ref: "${{ steps.build_and_publish.outputs.IMAGE_NAME }}:${{ steps.build_and_publish.outputs.PRIMARY_TAG }}" + format: "template" + template: "@/contrib/sarif.tpl" + output: "trivy-results.sarif" + - name: Upload Trivy scan results to Security tab + if: startsWith( github.ref, 'refs/tags/') + uses: github/codeql-action/upload-sarif@v2 + with: + sarif_file: "trivy-results.sarif" + slack: + name: Slack notification + needs: build + runs-on: ubuntu-latest + if: github.ref == 'refs/heads/main' || startsWith( github.ref, 'refs/tags/') + steps: + - uses: technote-space/workflow-conclusion-action@v2 + with: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - uses: 8398a7/action-slack@v3 + with: + author_name: agent-qbg image build + status: ${{ env.WORKFLOW_CONCLUSION }} + only_mention_fail: channel + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_NOTIFY_WEBHOOK_URL }} diff --git a/.github/workflows/dockers-image-scan.yml b/.github/workflows/dockers-image-scan.yml index f6dd2c15810..65d8ed7218d 100644 --- a/.github/workflows/dockers-image-scan.yml +++ b/.github/workflows/dockers-image-scan.yml @@ -84,6 +84,39 @@ jobs: uses: github/codeql-action/upload-sarif@v2 with: sarif_file: "trivy-results.sarif" + agent-qbg: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: set git config + run: | + git config --global --add safe.directory ${GITHUB_WORKSPACE} + - name: Build the Docker image + id: build_image + run: | + make docker/build/agent-qbg + imagename=`make docker/name/agent-qbg` + docker tag ${imagename} ${imagename}:${{ github.sha }} + echo "IMAGE_NAME=${imagename}" >> $GITHUB_OUTPUT + env: + DOCKER_BUILDKIT: 1 + - name: Run vulnerability scanner + uses: aquasecurity/trivy-action@master + with: + image-ref: "${{ steps.build_image.outputs.IMAGE_NAME }}:${{ github.sha }}" + format: "table" + - name: Run vulnerability scanner + uses: aquasecurity/trivy-action@master + with: + image-ref: "${{ steps.build_image.outputs.IMAGE_NAME }}:${{ github.sha }}" + format: "template" + template: "@/contrib/sarif.tpl" + output: "trivy-results.sarif" + severity: "HIGH,CRITICAL" + - name: Upload Trivy scan results to Security tab + uses: github/codeql-action/upload-sarif@v2 + with: + sarif_file: "trivy-results.sarif" agent-sidecar: runs-on: ubuntu-latest steps: diff --git a/.gitignore b/.gitignore index 78d95d3c117..10f4ee87ab0 100755 --- a/.gitignore +++ b/.gitignore @@ -47,6 +47,7 @@ hack/go.mod.default3 # for mac .DS_Store +.nvimlog # for nvim .nvimlog diff --git a/Makefile b/Makefile index 381b283bacd..7a07e11a2c3 100644 --- a/Makefile +++ b/Makefile @@ -181,29 +181,31 @@ PROTO_PATHS = \ # - internal/test/comparator # - internal/test/mock GO_SOURCES = $(eval GO_SOURCES := $(shell find \ - ./cmd \ - ./hack \ - ./internal \ - ./pkg \ - -not -path './cmd/cli/*' \ - -not -path './internal/core/algorithm/ngt/*' \ - -not -path './internal/compress/gob/*' \ - -not -path './internal/compress/gzip/*' \ - -not -path './internal/compress/lz4/*' \ - -not -path './internal/compress/zstd/*' \ - -not -path './internal/db/storage/blob/s3/sdk/s3/*' \ - -not -path './internal/db/rdb/mysql/dbr/*' \ - -not -path './internal/test/comparator/*' \ - -not -path './internal/test/mock/*' \ - -not -path './hack/benchmark/internal/client/ngtd/*' \ - -not -path './hack/benchmark/internal/starter/agent/*' \ - -not -path './hack/benchmark/internal/starter/external/*' \ - -not -path './hack/benchmark/internal/starter/gateway/*' \ - -not -path './hack/gorules/*' \ - -not -path './hack/license/*' \ - -not -path './hack/swagger/*' \ - -not -path './hack/tools/*' \ - -not -path './tests/*' \ + $(ROOTDIR)/cmd \ + $(ROOTDIR)/hack \ + $(ROOTDIR)/internal \ + $(ROOTDIR)/pkg \ + -not -path '$(ROOTDIR)/cmd/cli/*' \ + -not -path '$(ROOTDIR)/internal/core/algorithm/ngt/*' \ + -not -path '$(ROOTDIR)/internal/core/algorithm/qbg/*' \ + -not -path '$(ROOTDIR)/internal/core/algorithm/faiss/*' \ + -not -path '$(ROOTDIR)/internal/compress/gob/*' \ + -not -path '$(ROOTDIR)/internal/compress/gzip/*' \ + -not -path '$(ROOTDIR)/internal/compress/lz4/*' \ + -not -path '$(ROOTDIR)/internal/compress/zstd/*' \ + -not -path '$(ROOTDIR)/internal/db/storage/blob/s3/sdk/s3/*' \ + -not -path '$(ROOTDIR)/internal/db/rdb/mysql/dbr/*' \ + -not -path '$(ROOTDIR)/internal/test/comparator/*' \ + -not -path '$(ROOTDIR)/internal/test/mock/*' \ + -not -path '$(ROOTDIR)/hack/benchmark/internal/client/ngtd/*' \ + -not -path '$(ROOTDIR)/hack/benchmark/internal/starter/agent/*' \ + -not -path '$(ROOTDIR)/hack/benchmark/internal/starter/external/*' \ + -not -path '$(ROOTDIR)/hack/benchmark/internal/starter/gateway/*' \ + -not -path '$(ROOTDIR)/hack/gorules/*' \ + -not -path '$(ROOTDIR)/hack/license/*' \ + -not -path '$(ROOTDIR)/hack/swagger/*' \ + -not -path '$(ROOTDIR)/hack/tools/*' \ + -not -path '$(ROOTDIR)/tests/*' \ -type f \ -name '*.go' \ -not -regex '.*options?\.go' \ @@ -211,29 +213,31 @@ GO_SOURCES = $(eval GO_SOURCES := $(shell find \ -not -name '*_mock.go' \ -not -name 'doc.go'))$(GO_SOURCES) GO_OPTION_SOURCES = $(eval GO_OPTION_SOURCES := $(shell find \ - ./cmd \ - ./hack \ - ./internal \ - ./pkg \ - -not -path './cmd/cli/*' \ - -not -path './internal/core/algorithm/ngt/*' \ - -not -path './internal/compress/gob/*' \ - -not -path './internal/compress/gzip/*' \ - -not -path './internal/compress/lz4/*' \ - -not -path './internal/compress/zstd/*' \ - -not -path './internal/db/storage/blob/s3/sdk/s3/*' \ - -not -path './internal/db/rdb/mysql/dbr/*' \ - -not -path './internal/test/comparator/*' \ - -not -path './internal/test/mock/*' \ - -not -path './hack/benchmark/internal/client/ngtd/*' \ - -not -path './hack/benchmark/internal/starter/agent/*' \ - -not -path './hack/benchmark/internal/starter/external/*' \ - -not -path './hack/benchmark/internal/starter/gateway/*' \ - -not -path './hack/gorules/*' \ - -not -path './hack/license/*' \ - -not -path './hack/swagger/*' \ - -not -path './hack/tools/*' \ - -not -path './tests/*' \ + $(ROOTDIR)/cmd \ + $(ROOTDIR)/hack \ + $(ROOTDIR)/internal \ + $(ROOTDIR)/pkg \ + -not -path '$(ROOTDIR)/cmd/cli/*' \ + -not -path '$(ROOTDIR)/internal/core/algorithm/ngt/*' \ + -not -path '$(ROOTDIR)/internal/core/algorithm/qbg/*' \ + -not -path '$(ROOTDIR)/internal/core/algorithm/faiss/*' \ + -not -path '$(ROOTDIR)/internal/compress/gob/*' \ + -not -path '$(ROOTDIR)/internal/compress/gzip/*' \ + -not -path '$(ROOTDIR)/internal/compress/lz4/*' \ + -not -path '$(ROOTDIR)/internal/compress/zstd/*' \ + -not -path '$(ROOTDIR)/internal/db/storage/blob/s3/sdk/s3/*' \ + -not -path '$(ROOTDIR)/internal/db/rdb/mysql/dbr/*' \ + -not -path '$(ROOTDIR)/internal/test/comparator/*' \ + -not -path '$(ROOTDIR)/internal/test/mock/*' \ + -not -path '$(ROOTDIR)/hack/benchmark/internal/client/ngtd/*' \ + -not -path '$(ROOTDIR)/hack/benchmark/internal/starter/agent/*' \ + -not -path '$(ROOTDIR)/hack/benchmark/internal/starter/external/*' \ + -not -path '$(ROOTDIR)/hack/benchmark/internal/starter/gateway/*' \ + -not -path '$(ROOTDIR)/hack/gorules/*' \ + -not -path '$(ROOTDIR)/hack/license/*' \ + -not -path '$(ROOTDIR)/hack/swagger/*' \ + -not -path '$(ROOTDIR)/hack/tools/*' \ + -not -path '$(ROOTDIR)/tests/*' \ -type f \ -regex '.*options?\.go' \ -not -name '*_test.go' \ @@ -241,7 +245,7 @@ GO_OPTION_SOURCES = $(eval GO_OPTION_SOURCES := $(shell find \ -not -name 'doc.go'))$(GO_OPTION_SOURCES) GO_SOURCES_INTERNAL = $(eval GO_SOURCES_INTERNAL := $(shell find \ - ./internal \ + $(ROOTDIR)/internal \ -type f \ -name '*.go' \ -not -name '*_test.go' \ @@ -321,36 +325,36 @@ all: clean deps clean: rm -rf vendor go clean -cache -modcache -testcache -i -r - mv ./apis/grpc/v1/vald/vald.go $(TEMP_DIR)/vald.go - mv ./apis/grpc/v1/agent/core/agent.go $(TEMP_DIR)/agent.go - mv ./apis/grpc/v1/payload/interface.go $(TEMP_DIR)/interface.go + mv $(ROOTDIR)/apis/grpc/v1/vald/vald.go $(TEMP_DIR)/vald.go + mv $(ROOTDIR)/apis/grpc/v1/agent/core/agent.go $(TEMP_DIR)/agent.go + mv $(ROOTDIR)/apis/grpc/v1/payload/interface.go $(TEMP_DIR)/interface.go rm -rf \ /go/pkg \ - ./*.log \ - ./*.svg \ - ./apis/docs \ - ./apis/swagger \ - ./apis/grpc \ - ./bench \ - ./pprof \ - ./libs \ + $(ROOTDIR)/*.log \ + $(ROOTDIR)/*.svg \ + $(ROOTDIR)/apis/docs \ + $(ROOTDIR)/apis/swagger \ + $(ROOTDIR)/apis/grpc \ + $(ROOTDIR)/bench \ + $(ROOTDIR)/pprof \ + $(ROOTDIR)/libs \ $(GOCACHE) \ - ./go.sum \ - ./go.mod - mkdir -p ./apis/grpc/v1/vald - mv $(TEMP_DIR)/vald.go ./apis/grpc/v1/vald/vald.go - mkdir -p ./apis/grpc/v1/agent/core - mv $(TEMP_DIR)/agent.go ./apis/grpc/v1/agent/core/agent.go - mkdir -p ./apis/grpc/v1/payload - mv $(TEMP_DIR)/interface.go ./apis/grpc/v1/payload/interface.go - cp ./hack/go.mod.default ./go.mod + $(ROOTDIR)/go.sum \ + $(ROOTDIR)/go.mod + mkdir -p $(ROOTDIR)/apis/grpc/v1/vald + mv $(TEMP_DIR)/vald.go $(ROOTDIR)/apis/grpc/v1/vald/vald.go + mkdir -p $(ROOTDIR)/apis/grpc/v1/agent/core + mv $(TEMP_DIR)/agent.go $(ROOTDIR)/apis/grpc/v1/agent/core/agent.go + mkdir -p $(ROOTDIR)/apis/grpc/v1/payload + mv $(TEMP_DIR)/interface.go $(ROOTDIR)/apis/grpc/v1/payload/interface.go + cp $(ROOTDIR)/hack/go.mod.default $(ROOTDIR)/go.mod .PHONY: license ## add license to files license: GOPRIVATE=$(GOPRIVATE) \ MAINTAINER=$(MAINTAINER) \ - go run -mod=readonly hack/license/gen/main.go ./ + go run -mod=readonly hack/license/gen/main.go $(ROOTDIR)/ .PHONY: init ## initialize development environment @@ -395,10 +399,10 @@ format/go: \ gofumpt/install \ strictgoimports/install \ goimports/install - find ./ -type d -name .git -prune -o -type f -regex '.*[^\.pb]\.go' -print | xargs $(GOPATH)/bin/golines -w -m $(GOLINES_MAX_WIDTH) - find ./ -type d -name .git -prune -o -type f -regex '.*[^\.pb]\.go' -print | xargs $(GOPATH)/bin/gofumpt -w - find ./ -type d -name .git -prune -o -type f -regex '.*[^\.pb]\.go' -print | xargs $(GOPATH)/bin/strictgoimports -w - find ./ -type d -name .git -prune -o -type f -regex '.*\.go' -print | xargs $(GOPATH)/bin/goimports -w + find $(ROOTDIR)/ -type d -name .git -prune -o -type f -regex '.*[^\.pb]\.go' -print | xargs $(GOPATH)/bin/golines -w -m $(GOLINES_MAX_WIDTH) + find $(ROOTDIR)/ -type d -name .git -prune -o -type f -regex '.*[^\.pb]\.go' -print | xargs $(GOPATH)/bin/gofumpt -w + find $(ROOTDIR)/ -type d -name .git -prune -o -type f -regex '.*[^\.pb]\.go' -print | xargs $(GOPATH)/bin/strictgoimports -w + find $(ROOTDIR)/ -type d -name .git -prune -o -type f -regex '.*\.go' -print | xargs $(GOPATH)/bin/goimports -w .PHONY: format/go/test ## run golines, gofumpt, goimports for go test files @@ -428,7 +432,7 @@ format/md: \ "charts/**/*.md" \ "apis/**/*.md" \ "tests/**/*.md" \ - "./*.md" + "$(ROOTDIR)/*.md" .PHONY: format/json format/json: \ diff --git a/Makefile.d/build.mk b/Makefile.d/build.mk index 7c46a488a77..78c8020d1fe 100644 --- a/Makefile.d/build.mk +++ b/Makefile.d/build.mk @@ -48,8 +48,13 @@ cmd/agent/core/ngt/ngt: \ -X '$(GOPKG)/internal/info.GoVersion=$(GO_VERSION)' \ -X '$(GOPKG)/internal/info.GoOS=$(GOOS)' \ -X '$(GOPKG)/internal/info.GoArch=$(GOARCH)' \ +<<<<<<< HEAD -X '$(GOPKG)/internal/info.CGOEnabled=$(CGO_ENABLED)' \ -X '$(GOPKG)/internal/info.NGTVersion=$(NGT_VERSION)' \ +======= + -X '$(GOPKG)/internal/info.CGOEnabled=$${CGO_ENABLED}' \ + -X '$(GOPKG)/internal/info.AlgorithmInfo=NGT-$(NGT_VERSION)' \ +>>>>>>> feature/agent/new-agents-helm-template-base -X '$(GOPKG)/internal/info.BuildCPUInfoFlags=$(CPU_INFO_FLAGS)' \ -buildid=" \ -mod=readonly \ diff --git a/Makefile.d/functions.mk b/Makefile.d/functions.mk index 8fb8199b8f2..4d6da7456c3 100644 --- a/Makefile.d/functions.mk +++ b/Makefile.d/functions.mk @@ -33,9 +33,23 @@ define proto-code-gen $(PROTO_PATHS:%=-I %) \ --go_out=$(GOPATH)/src --plugin protoc-gen-go="$(GOPATH)/bin/protoc-gen-go" \ --go-vtproto_out=$(GOPATH)/src --plugin protoc-gen-go-vtproto="$(GOPATH)/bin/protoc-gen-go-vtproto" \ +<<<<<<< HEAD --go-vtproto_opt=features=grpc+marshal+unmarshal+size+pool \ --go-vtproto_opt=pool=$(ROOTDIR)/apis/proto/v1/payload.Search.Request \ --go-vtproto_opt=pool=$(ROOTDIR)/apis/proto/v1/payload.Object.Vector \ +======= + --go-vtproto_opt=pool=$(GOPKG)/apis/proto/v1/payload.Insert.MultiRequest \ + --go-vtproto_opt=pool=$(GOPKG)/apis/proto/v1/payload.Insert.Request \ + --go-vtproto_opt=pool=$(GOPKG)/apis/proto/v1/payload.Object.Vector \ + --go-vtproto_opt=pool=$(GOPKG)/apis/proto/v1/payload.Object.Vectors \ + --go-vtproto_opt=pool=$(GOPKG)/apis/proto/v1/payload.Search.ObjectRequest \ + --go-vtproto_opt=pool=$(GOPKG)/apis/proto/v1/payload.Search.Request \ + --go-vtproto_opt=pool=$(GOPKG)/apis/proto/v1/payload.Update.MultiRequest \ + --go-vtproto_opt=pool=$(GOPKG)/apis/proto/v1/payload.Update.Request \ + --go-vtproto_opt=pool=$(GOPKG)/apis/proto/v1/payload.Upsert.MultiRequest \ + --go-vtproto_opt=pool=$(GOPKG)/apis/proto/v1/payload.Upsert.Request \ + --go-vtproto_opt=features=pool+grpc+marshal+unmarshal+size+equal \ +>>>>>>> feature/agent/new-agents-helm-template-base $1 endef diff --git a/Makefile.d/k3d.mk b/Makefile.d/k3d.mk index e2254699762..3e91bddaac1 100644 --- a/Makefile.d/k3d.mk +++ b/Makefile.d/k3d.mk @@ -30,10 +30,19 @@ $(BINDIR)/k3d: .PHONY: k3d/start ## start k3d (kubernetes in docker) cluster k3d/start: - $(K3D_COMMAND) cluster create $(K3D_CLUSTER_NAME) --agents $(K3D_NODES) --image docker.io/rancher/k3s:latest -v "/lib/modules:/lib/modules" - # $(K3D_COMMAND) cluster create $(K3D_CLUSTER_NAME) --agents $(K3D_NODES) -v "/lib/modules:/lib/modules" --host-pid-mode=true + $(K3D_COMMAND) cluster create $(K3D_CLUSTER_NAME) \ + --agents $(K3D_NODES) \ + --image docker.io/rancher/k3s:latest \ + --host-pid-mode=true \ + --port 8081:80@loadbalancer \ + --k3s-arg "--disable=traefik@server:*" \ + -v "/lib/modules:/lib/modules" + # $(K3D_COMMAND) cluster create $(K3D_CLUSTER_NAME) --agents $(K3D_NODES) -v "/lib/modules:/lib/modules" # $(K3D_COMMAND) cluster create $(K3D_CLUSTER_NAME) -p "8081:80@loadbalancer" --agents $(K3D_NODES) --k3s-arg '--disable=traefik@all' - export KUBECONFIG="$(shell sudo $(K3D_COMMAND) kubeconfig merge -o $(TEMP_DIR)/k3d_$(K3D_CLUSTER_NAME)_kubeconfig.yaml $(K3D_CLUSTER_NAME))" + # K3D_KUBECONFIG_PATH="$(TEMP_DIR)/k3d_$(K3D_CLUSTER_NAME)_kubeconfig.yaml" + # $(K3D_COMMAND) kubeconfig merge -o $(K3D_KUBECONFIG_PATH) $(K3D_CLUSTER_NAME) + # export KUBECONFIG="$(K3D_KUBECONFIG_PATH)" + kubectl wait -n kube-system --for=condition=ready pod -l k8s-app=metrics-server --timeout=600s kubectl apply -f https://projectcontour.io/quickstart/operator.yaml kubectl apply -f https://projectcontour.io/quickstart/contour-custom-resource.yaml diff --git a/apis/grpc/v1/agent/core/agent_vtproto.pb.go b/apis/grpc/v1/agent/core/agent_vtproto.pb.go index fbeea7d23eb..409c9c5e330 100644 --- a/apis/grpc/v1/agent/core/agent_vtproto.pb.go +++ b/apis/grpc/v1/agent/core/agent_vtproto.pb.go @@ -88,7 +88,7 @@ func (c *agentClient) CreateAndSaveIndex(ctx context.Context, in *payload.Contro } func (c *agentClient) IndexInfo(ctx context.Context, in *payload.Empty, opts ...grpc.CallOption) (*payload.Info_Index_Count, error) { - out := new(payload.Info_Index_Count) + out := payload.Info_Index_CountFromVTPool() err := c.cc.Invoke(ctx, "/core.v1.Agent/IndexInfo", in, out, opts...) if err != nil { return nil, err @@ -141,7 +141,7 @@ func RegisterAgentServer(s grpc.ServiceRegistrar, srv AgentServer) { } func _Agent_CreateIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Control_CreateIndexRequest) + in := payload.Control_CreateIndexRequestFromVTPool() if err := dec(in); err != nil { return nil, err } @@ -177,7 +177,7 @@ func _Agent_SaveIndex_Handler(srv interface{}, ctx context.Context, dec func(int } func _Agent_CreateAndSaveIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Control_CreateIndexRequest) + in := payload.Control_CreateIndexRequestFromVTPool() if err := dec(in); err != nil { return nil, err } diff --git a/apis/grpc/v1/discoverer/discoverer_vtproto.pb.go b/apis/grpc/v1/discoverer/discoverer_vtproto.pb.go index d532d067b12..26f3c782f28 100644 --- a/apis/grpc/v1/discoverer/discoverer_vtproto.pb.go +++ b/apis/grpc/v1/discoverer/discoverer_vtproto.pb.go @@ -57,7 +57,7 @@ func NewDiscovererClient(cc grpc.ClientConnInterface) DiscovererClient { } func (c *discovererClient) Pods(ctx context.Context, in *payload.Discoverer_Request, opts ...grpc.CallOption) (*payload.Info_Pods, error) { - out := new(payload.Info_Pods) + out := payload.Info_PodsFromVTPool() err := c.cc.Invoke(ctx, "/discoverer.v1.Discoverer/Pods", in, out, opts...) if err != nil { return nil, err @@ -66,7 +66,7 @@ func (c *discovererClient) Pods(ctx context.Context, in *payload.Discoverer_Requ } func (c *discovererClient) Nodes(ctx context.Context, in *payload.Discoverer_Request, opts ...grpc.CallOption) (*payload.Info_Nodes, error) { - out := new(payload.Info_Nodes) + out := payload.Info_NodesFromVTPool() err := c.cc.Invoke(ctx, "/discoverer.v1.Discoverer/Nodes", in, out, opts...) if err != nil { return nil, err @@ -109,7 +109,7 @@ func RegisterDiscovererServer(s grpc.ServiceRegistrar, srv DiscovererServer) { } func _Discoverer_Pods_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Discoverer_Request) + in := payload.Discoverer_RequestFromVTPool() if err := dec(in); err != nil { return nil, err } @@ -127,7 +127,7 @@ func _Discoverer_Pods_Handler(srv interface{}, ctx context.Context, dec func(int } func _Discoverer_Nodes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Discoverer_Request) + in := payload.Discoverer_RequestFromVTPool() if err := dec(in); err != nil { return nil, err } diff --git a/apis/grpc/v1/filter/egress/egress_filter_vtproto.pb.go b/apis/grpc/v1/filter/egress/egress_filter_vtproto.pb.go index f97bc49247c..6349605050d 100644 --- a/apis/grpc/v1/filter/egress/egress_filter_vtproto.pb.go +++ b/apis/grpc/v1/filter/egress/egress_filter_vtproto.pb.go @@ -57,7 +57,7 @@ func NewFilterClient(cc grpc.ClientConnInterface) FilterClient { } func (c *filterClient) FilterDistance(ctx context.Context, in *payload.Object_Distance, opts ...grpc.CallOption) (*payload.Object_Distance, error) { - out := new(payload.Object_Distance) + out := payload.Object_DistanceFromVTPool() err := c.cc.Invoke(ctx, "/filter.egress.v1.Filter/FilterDistance", in, out, opts...) if err != nil { return nil, err @@ -66,7 +66,7 @@ func (c *filterClient) FilterDistance(ctx context.Context, in *payload.Object_Di } func (c *filterClient) FilterVector(ctx context.Context, in *payload.Object_Vector, opts ...grpc.CallOption) (*payload.Object_Vector, error) { - out := new(payload.Object_Vector) + out := payload.Object_VectorFromVTPool() err := c.cc.Invoke(ctx, "/filter.egress.v1.Filter/FilterVector", in, out, opts...) if err != nil { return nil, err @@ -109,7 +109,7 @@ func RegisterFilterServer(s grpc.ServiceRegistrar, srv FilterServer) { } func _Filter_FilterDistance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Object_Distance) + in := payload.Object_DistanceFromVTPool() if err := dec(in); err != nil { return nil, err } @@ -127,7 +127,7 @@ func _Filter_FilterDistance_Handler(srv interface{}, ctx context.Context, dec fu } func _Filter_FilterVector_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Object_Vector) + in := payload.Object_VectorFromVTPool() if err := dec(in); err != nil { return nil, err } diff --git a/apis/grpc/v1/filter/ingress/ingress_filter_vtproto.pb.go b/apis/grpc/v1/filter/ingress/ingress_filter_vtproto.pb.go index 0f249a20968..876770e0a51 100644 --- a/apis/grpc/v1/filter/ingress/ingress_filter_vtproto.pb.go +++ b/apis/grpc/v1/filter/ingress/ingress_filter_vtproto.pb.go @@ -57,7 +57,7 @@ func NewFilterClient(cc grpc.ClientConnInterface) FilterClient { } func (c *filterClient) GenVector(ctx context.Context, in *payload.Object_Blob, opts ...grpc.CallOption) (*payload.Object_Vector, error) { - out := new(payload.Object_Vector) + out := payload.Object_VectorFromVTPool() err := c.cc.Invoke(ctx, "/filter.ingress.v1.Filter/GenVector", in, out, opts...) if err != nil { return nil, err @@ -66,7 +66,7 @@ func (c *filterClient) GenVector(ctx context.Context, in *payload.Object_Blob, o } func (c *filterClient) FilterVector(ctx context.Context, in *payload.Object_Vector, opts ...grpc.CallOption) (*payload.Object_Vector, error) { - out := new(payload.Object_Vector) + out := payload.Object_VectorFromVTPool() err := c.cc.Invoke(ctx, "/filter.ingress.v1.Filter/FilterVector", in, out, opts...) if err != nil { return nil, err @@ -109,7 +109,7 @@ func RegisterFilterServer(s grpc.ServiceRegistrar, srv FilterServer) { } func _Filter_GenVector_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Object_Blob) + in := payload.Object_BlobFromVTPool() if err := dec(in); err != nil { return nil, err } @@ -127,7 +127,7 @@ func _Filter_GenVector_Handler(srv interface{}, ctx context.Context, dec func(in } func _Filter_FilterVector_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Object_Vector) + in := payload.Object_VectorFromVTPool() if err := dec(in); err != nil { return nil, err } diff --git a/apis/grpc/v1/manager/index/index_manager_vtproto.pb.go b/apis/grpc/v1/manager/index/index_manager_vtproto.pb.go index 219ea820f6b..38545c8d0b5 100644 --- a/apis/grpc/v1/manager/index/index_manager_vtproto.pb.go +++ b/apis/grpc/v1/manager/index/index_manager_vtproto.pb.go @@ -55,7 +55,7 @@ func NewIndexClient(cc grpc.ClientConnInterface) IndexClient { } func (c *indexClient) IndexInfo(ctx context.Context, in *payload.Empty, opts ...grpc.CallOption) (*payload.Info_Index_Count, error) { - out := new(payload.Info_Index_Count) + out := payload.Info_Index_CountFromVTPool() err := c.cc.Invoke(ctx, "/manager.index.v1.Index/IndexInfo", in, out, opts...) if err != nil { return nil, err diff --git a/apis/grpc/v1/payload/payload.pb.go b/apis/grpc/v1/payload/payload.pb.go index 3d008fb1466..30346666d2d 100644 --- a/apis/grpc/v1/payload/payload.pb.go +++ b/apis/grpc/v1/payload/payload.pb.go @@ -27,6 +27,7 @@ import ( sync "sync" _ "github.com/envoyproxy/protoc-gen-validate/validate" + _ "github.com/planetscale/vtprotobuf/vtproto" status "google.golang.org/genproto/googleapis/rpc/status" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" @@ -1023,6 +1024,7 @@ type Search_StreamResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // option (vtproto.mempool) = true; // Types that are assignable to Payload: // // *Search_StreamResponse_Response @@ -2383,6 +2385,7 @@ type Object_StreamDistance struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // option (vtproto.mempool) = true; // Types that are assignable to Payload: // // *Object_StreamDistance_Distance @@ -2669,6 +2672,7 @@ type Object_StreamVector struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // option (vtproto.mempool) = true; // Types that are assignable to Payload: // // *Object_StreamVector_Vector @@ -2869,6 +2873,7 @@ type Object_StreamBlob struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // option (vtproto.mempool) = true; // Types that are assignable to Payload: // // *Object_StreamBlob_Blob @@ -3020,6 +3025,7 @@ type Object_StreamLocation struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // option (vtproto.mempool) = true; // Types that are assignable to Payload: // // *Object_StreamLocation_Location @@ -4002,381 +4008,410 @@ var file_apis_proto_v1_payload_payload_proto_rawDesc = []byte{ 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, - 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa2, - 0x09, 0x0a, 0x06, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x1a, 0x5e, 0x0a, 0x07, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x02, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x02, 0x52, 0x06, - 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x31, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x46, 0x0a, 0x0c, 0x4d, 0x75, 0x6c, - 0x74, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x73, 0x1a, 0x4e, 0x0a, 0x09, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x31, + 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x5d, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x74, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2f, 0x76, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x74, 0x73, 0x63, 0x61, 0x6c, 0x65, + 0x2f, 0x76, 0x74, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x74, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2f, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xde, 0x09, + 0x0a, 0x06, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x1a, 0x64, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x02, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x02, 0x52, 0x06, 0x76, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x31, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0x4c, + 0x0a, 0x0c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, + 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0x54, 0x0a, 0x09, + 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0x04, 0xa8, 0xa6, + 0x1f, 0x01, 0x1a, 0x50, 0x0a, 0x0e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x49, 0x44, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x49, 0x44, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x3a, 0x04, + 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0x9b, 0x01, 0x0a, 0x0d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x1a, 0x4a, 0x0a, 0x0e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x1a, 0x95, 0x01, - 0x0a, 0x0d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x16, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x0a, 0x0a, 0x76, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x0a, 0x76, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x69, 0x7a, 0x65, 0x72, 0x1a, 0x52, 0x0a, 0x12, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, - 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x1a, 0xb6, 0x02, 0x0a, 0x06, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x2a, 0x02, 0x28, 0x01, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x12, 0x16, - 0x0a, 0x06, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, - 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x70, 0x73, 0x69, 0x6c, 0x6f, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x65, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, - 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x42, 0x0a, 0x0f, 0x69, 0x6e, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, - 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, - 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x40, - 0x0a, 0x0e, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x67, 0x12, 0x39, 0x0a, 0x0a, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, + 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x52, 0x0a, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x3a, 0x04, 0xa8, 0xa6, + 0x1f, 0x01, 0x1a, 0x58, 0x0a, 0x12, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x4f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0xbc, 0x02, 0x0a, + 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x03, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x2a, 0x02, 0x28, 0x01, 0x52, 0x03, 0x6e, 0x75, + 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x06, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x70, 0x73, + 0x69, 0x6c, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x65, 0x70, 0x73, 0x69, + 0x6c, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x42, 0x0a, + 0x0f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x0d, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, - 0x12, 0x20, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0d, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x2a, 0x02, 0x28, 0x00, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x4e, - 0x75, 0x6d, 0x1a, 0x60, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, - 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x35, 0x0a, - 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x46, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x73, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x1a, 0x84, 0x01, 0x0a, - 0x0e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x39, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, - 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x22, 0x79, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x30, 0x0a, - 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, - 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x1a, - 0x3d, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x22, 0xe5, - 0x04, 0x0a, 0x06, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x1a, 0x79, 0x0a, 0x07, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, - 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, - 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x02, 0x52, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x12, 0x31, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x49, - 0x6e, 0x73, 0x65, 0x72, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x46, 0x0a, 0x0c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x1a, 0xae, 0x01, 0x0a, - 0x0d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, - 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, + 0x67, 0x52, 0x0e, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x73, 0x12, 0x40, 0x0a, 0x0e, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x2a, 0x02, 0x28, 0x00, 0x52, 0x06, 0x6d, + 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0x66, 0x0a, 0x08, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x69, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x3a, 0x04, 0xa8, + 0xa6, 0x1f, 0x01, 0x1a, 0x4c, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, + 0x12, 0x39, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, + 0x01, 0x1a, 0x84, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x2c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x09, 0x0a, + 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x22, 0x8b, + 0x01, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x36, 0x0a, 0x06, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, + 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x33, 0x0a, 0x07, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, + 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x22, 0x89, 0x05, 0x0a, + 0x06, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x1a, 0x7f, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x08, 0xfa, + 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x02, 0x52, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x31, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x12, 0x39, 0x0a, 0x0a, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x52, 0x0a, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x1a, 0x52, 0x0a, + 0x69, 0x67, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0x4c, 0x0a, 0x0c, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x2e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, + 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0xb4, 0x01, 0x0a, 0x0d, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x42, 0x6c, 0x6f, + 0x62, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x2e, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x0a, 0x0a, + 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x0a, 0x76, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0x58, 0x0a, 0x12, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x73, 0x1a, 0x92, 0x01, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x35, 0x0a, 0x17, - 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x65, 0x78, 0x69, 0x73, - 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, - 0x6b, 0x69, 0x70, 0x53, 0x74, 0x72, 0x69, 0x63, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x12, 0x33, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, - 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x9d, 0x05, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x1a, 0x79, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x06, - 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, - 0x02, 0x52, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x31, 0x0a, 0x06, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x46, 0x0a, 0x0c, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x08, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x73, 0x1a, 0xae, 0x01, 0x0a, 0x0d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x52, - 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x0a, 0x0a, 0x76, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x0a, 0x76, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x69, 0x7a, 0x65, 0x72, 0x1a, 0x52, 0x0a, 0x12, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, - 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x1a, 0xca, 0x01, 0x0a, 0x06, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x35, 0x0a, 0x17, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x73, 0x74, 0x72, - 0x69, 0x63, 0x74, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x6b, 0x69, 0x70, 0x53, 0x74, 0x72, 0x69, 0x63, - 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x33, 0x0a, 0x07, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, + 0x73, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0x98, 0x01, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x35, 0x0a, 0x17, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x63, + 0x74, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x6b, 0x69, 0x70, 0x53, 0x74, 0x72, 0x69, 0x63, 0x74, 0x45, + 0x78, 0x69, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x33, 0x0a, 0x07, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1c, + 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x3a, 0x04, 0xa8, 0xa6, + 0x1f, 0x01, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x22, 0xc1, 0x05, 0x0a, 0x06, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x1a, 0x7f, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, + 0x0a, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, + 0x02, 0x08, 0x02, 0x52, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x31, 0x0a, 0x06, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0x04, + 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0x4c, 0x0a, 0x0c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x3a, 0x04, 0xa8, 0xa6, + 0x1f, 0x01, 0x1a, 0xb4, 0x01, 0x0a, 0x0d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, + 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x52, 0x06, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, + 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x0a, 0x0a, 0x76, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, - 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x36, - 0x0a, 0x17, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x64, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x64, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x9d, 0x05, 0x0a, 0x06, 0x55, 0x70, 0x73, 0x65, 0x72, - 0x74, 0x1a, 0x79, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x06, - 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, - 0x02, 0x52, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x31, 0x0a, 0x06, 0x63, 0x6f, 0x6e, + 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x0a, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, + 0x7a, 0x65, 0x72, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0x58, 0x0a, 0x12, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3c, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x3a, 0x04, 0xa8, + 0xa6, 0x1f, 0x01, 0x1a, 0xd0, 0x01, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x35, + 0x0a, 0x17, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x65, 0x78, + 0x69, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x14, 0x73, 0x6b, 0x69, 0x70, 0x53, 0x74, 0x72, 0x69, 0x63, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x33, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x36, 0x0a, 0x17, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x22, 0xc1, 0x05, 0x0a, + 0x06, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x1a, 0x7f, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x08, 0xfa, + 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x02, 0x52, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, + 0x31, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x73, + 0x65, 0x72, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0x4c, 0x0a, 0x0c, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x2e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, + 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0xb4, 0x01, 0x0a, 0x0d, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x42, 0x6c, 0x6f, + 0x62, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x2e, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x46, 0x0a, 0x0c, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x08, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x73, 0x65, - 0x72, 0x74, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x73, 0x1a, 0xae, 0x01, 0x0a, 0x0d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x52, - 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x0a, 0x0a, 0x76, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x0a, 0x76, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x69, 0x7a, 0x65, 0x72, 0x1a, 0x52, 0x0a, 0x12, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, - 0x74, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, - 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x1a, 0xca, 0x01, 0x0a, 0x06, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x35, 0x0a, 0x17, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x73, 0x74, 0x72, - 0x69, 0x63, 0x74, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x6b, 0x69, 0x70, 0x53, 0x74, 0x72, 0x69, 0x63, - 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x33, 0x0a, 0x07, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, - 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x36, - 0x0a, 0x17, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x64, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x64, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x94, 0x02, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x1a, 0x63, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x49, 0x44, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x46, 0x0a, 0x0c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x52, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x0a, 0x0a, + 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x0a, 0x76, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x72, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0x58, 0x0a, + 0x12, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, + 0x76, 0x31, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x73, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0xd0, 0x01, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x35, 0x0a, 0x17, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x63, + 0x74, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x6b, 0x69, 0x70, 0x53, 0x74, 0x72, 0x69, 0x63, 0x74, 0x45, + 0x78, 0x69, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x33, 0x0a, 0x07, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1c, + 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x36, 0x0a, 0x17, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x64, + 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, + 0x22, 0xac, 0x02, 0x0a, 0x06, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x1a, 0x69, 0x0a, 0x07, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x49, 0x44, 0x52, 0x02, 0x69, 0x64, 0x12, 0x31, 0x0a, + 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0x4c, 0x0a, 0x0c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x2e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x1a, 0x5d, - 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x35, 0x0a, 0x17, 0x73, 0x6b, 0x69, 0x70, - 0x5f, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x5f, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x6b, 0x69, 0x70, 0x53, - 0x74, 0x72, 0x69, 0x63, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, - 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xfc, 0x08, - 0x0a, 0x06, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x1a, 0x75, 0x0a, 0x0d, 0x56, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, - 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x49, 0x44, 0x42, 0x08, 0xfa, 0x42, - 0x05, 0x92, 0x01, 0x02, 0x08, 0x02, 0x52, 0x02, 0x69, 0x64, 0x12, 0x33, 0x0a, 0x07, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x1a, - 0x36, 0x0a, 0x08, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x1a, 0x84, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x64, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x2e, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x08, 0x64, 0x69, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, - 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x1a, 0x1d, - 0x0a, 0x02, 0x49, 0x44, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x1a, 0x17, 0x0a, - 0x03, 0x49, 0x44, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x03, 0x69, 0x64, 0x73, 0x1a, 0x43, 0x0a, 0x06, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x06, 0x76, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x02, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, - 0x02, 0x08, 0x02, 0x52, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0x3e, 0x0a, 0x07, 0x56, + 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x3a, 0x04, + 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0x63, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x35, + 0x0a, 0x17, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x65, 0x78, + 0x69, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x14, 0x73, 0x6b, 0x69, 0x70, 0x53, 0x74, 0x72, 0x69, 0x63, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x22, + 0xbe, 0x09, 0x0a, 0x06, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x1a, 0x7b, 0x0a, 0x0d, 0x56, 0x65, + 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x49, 0x44, 0x42, 0x08, + 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x02, 0x52, 0x02, 0x69, 0x64, 0x12, 0x33, 0x0a, 0x07, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x73, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0x3c, 0x0a, 0x08, 0x44, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x3a, + 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0x84, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x44, + 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x1a, 0x23, 0x0a, 0x02, + 0x49, 0x44, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, + 0x01, 0x1a, 0x1d, 0x0a, 0x03, 0x49, 0x44, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x69, 0x64, 0x73, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, + 0x1a, 0x49, 0x0a, 0x06, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x02, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x02, 0x52, 0x06, 0x76, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0x44, 0x0a, 0x07, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x33, 0x0a, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, - 0x6f, 0x72, 0x52, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x1a, 0x7c, 0x0a, 0x0c, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x33, 0x0a, 0x06, 0x76, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, - 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x6f, 0x72, 0x52, 0x07, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, + 0x01, 0x1a, 0x7c, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x56, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x12, 0x33, 0x0a, 0x06, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x06, + 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x2c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x1a, + 0x43, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x68, 0x61, 0x70, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x73, 0x68, 0x61, 0x70, 0x65, 0x3a, 0x04, + 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0x3d, 0x0a, 0x04, 0x42, 0x6c, 0x6f, 0x62, 0x12, 0x17, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x3a, 0x04, 0xa8, + 0xa6, 0x1f, 0x01, 0x1a, 0x74, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, + 0x62, 0x12, 0x2d, 0x0a, 0x04, 0x62, 0x6c, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x04, 0x62, 0x6c, 0x6f, 0x62, 0x12, 0x2c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x09, - 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x1a, 0x3d, 0x0a, 0x0d, 0x52, 0x65, 0x73, - 0x68, 0x61, 0x70, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x70, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x05, 0x73, 0x68, 0x61, 0x70, 0x65, 0x1a, 0x37, 0x0a, 0x04, 0x42, 0x6c, 0x6f, 0x62, - 0x12, 0x17, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x1a, 0x74, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x6c, 0x6f, 0x62, 0x12, - 0x2d, 0x0a, 0x04, 0x62, 0x6c, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x2e, 0x42, 0x6c, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x04, 0x62, 0x6c, 0x6f, 0x62, 0x12, 0x2c, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x09, 0x0a, 0x07, - 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x1a, 0x44, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x69, - 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x69, 0x70, 0x73, 0x1a, 0x84, 0x01, - 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x39, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, - 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, - 0x00, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, - 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x1a, 0x46, 0x0a, 0x09, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x39, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, - 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x45, 0x0a, 0x07, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x1a, 0x3a, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, - 0x09, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x2a, 0x02, 0x28, 0x00, 0x52, 0x08, 0x70, 0x6f, 0x6f, 0x6c, 0x53, - 0x69, 0x7a, 0x65, 0x22, 0x66, 0x0a, 0x0a, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, - 0x72, 0x1a, 0x58, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x04, + 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x1a, 0x4a, 0x0a, 0x08, 0x4c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, + 0x03, 0x69, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x69, 0x70, 0x73, 0x3a, + 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0x84, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x4c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x1a, 0x4c, 0x0a, 0x09, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x39, 0x0a, 0x09, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, + 0x22, 0x51, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x1a, 0x40, 0x0a, 0x12, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x24, 0x0a, 0x09, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x2a, 0x02, 0x28, 0x00, 0x52, 0x08, 0x70, + 0x6f, 0x6f, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x3a, 0x04, 0xa8, + 0xa6, 0x1f, 0x01, 0x22, 0x72, 0x0a, 0x0a, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x65, + 0x72, 0x1a, 0x5e, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x22, 0xe0, 0x07, 0x0a, 0x04, - 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0xca, 0x01, 0x0a, 0x05, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0x75, - 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x12, - 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, - 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, - 0x61, 0x76, 0x69, 0x6e, 0x67, 0x1a, 0x4a, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x1a, 0x1f, 0x0a, - 0x09, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x1a, 0x21, - 0x0a, 0x0b, 0x55, 0x6e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, - 0x64, 0x1a, 0xef, 0x01, 0x0a, 0x03, 0x50, 0x6f, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x78, 0x01, 0x52, 0x02, 0x69, 0x70, 0x12, - 0x26, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, - 0x50, 0x55, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x2f, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, - 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, - 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x29, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, - 0x6f, 0x64, 0x65, 0x1a, 0xe8, 0x01, 0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x41, 0x64, 0x64, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x78, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x12, 0x26, 0x0a, 0x03, 0x63, 0x70, - 0x75, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x50, 0x55, 0x52, 0x03, 0x63, - 0x70, 0x75, 0x12, 0x2f, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, - 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, 0x06, 0x6d, 0x65, 0x6d, - 0x6f, 0x72, 0x79, 0x12, 0x29, 0x0a, 0x04, 0x50, 0x6f, 0x64, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x49, - 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x6f, 0x64, 0x73, 0x52, 0x04, 0x50, 0x6f, 0x64, 0x73, 0x1a, 0x4b, - 0x0a, 0x03, 0x43, 0x50, 0x55, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x4e, 0x0a, 0x06, 0x4d, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, + 0x01, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x22, 0xa2, 0x08, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, + 0x1a, 0xdc, 0x01, 0x0a, 0x05, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0x7b, 0x0a, 0x05, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x75, + 0x6e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x08, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x61, 0x76, + 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x61, 0x76, 0x69, 0x6e, + 0x67, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0x50, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x1a, + 0x1f, 0x0a, 0x09, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, + 0x1a, 0x21, 0x0a, 0x0b, 0x55, 0x6e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, + 0x75, 0x69, 0x64, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x1a, + 0xf5, 0x01, 0x0a, 0x03, 0x50, 0x6f, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x78, 0x01, 0x52, 0x02, 0x69, 0x70, 0x12, 0x26, 0x0a, + 0x03, 0x63, 0x70, 0x75, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x50, 0x55, + 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x2f, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, + 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, 0x06, + 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x29, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, + 0x31, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x64, + 0x65, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0xee, 0x01, 0x0a, 0x04, 0x4e, 0x6f, 0x64, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x12, 0x26, + 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x50, + 0x55, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x2f, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x52, + 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x29, 0x0a, 0x04, 0x50, 0x6f, 0x64, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, + 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x6f, 0x64, 0x73, 0x52, 0x04, 0x50, 0x6f, + 0x64, 0x73, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0x51, 0x0a, 0x03, 0x43, 0x50, 0x55, 0x12, + 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, + 0x75, 0x73, 0x61, 0x67, 0x65, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0x54, 0x0a, 0x06, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x3a, 0x0a, 0x04, 0x50, - 0x6f, 0x64, 0x73, 0x12, 0x32, 0x0a, 0x04, 0x70, 0x6f, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x49, - 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x6f, 0x64, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, - 0x01, 0x52, 0x04, 0x70, 0x6f, 0x64, 0x73, 0x1a, 0x3e, 0x0a, 0x05, 0x4e, 0x6f, 0x64, 0x65, 0x73, - 0x12, 0x35, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x66, - 0x6f, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, - 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x1a, 0x15, 0x0a, 0x03, 0x49, 0x50, 0x73, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x22, 0x07, - 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x5a, 0x0a, 0x1d, 0x6f, 0x72, 0x67, 0x2e, 0x76, - 0x64, 0x61, 0x61, 0x73, 0x2e, 0x76, 0x61, 0x6c, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x0b, 0x56, 0x61, 0x6c, 0x64, 0x50, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x01, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x76, 0x64, 0x61, 0x61, 0x73, 0x2f, 0x76, 0x61, 0x6c, 0x64, 0x2f, 0x61, - 0x70, 0x69, 0x73, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, + 0x01, 0x1a, 0x40, 0x0a, 0x04, 0x50, 0x6f, 0x64, 0x73, 0x12, 0x32, 0x0a, 0x04, 0x70, 0x6f, 0x64, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x6f, 0x64, 0x42, 0x08, 0xfa, + 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x64, 0x73, 0x3a, 0x04, 0xa8, + 0xa6, 0x1f, 0x01, 0x1a, 0x44, 0x0a, 0x05, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x05, + 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4e, 0x6f, + 0x64, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x05, 0x6e, 0x6f, + 0x64, 0x65, 0x73, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x1a, 0x1b, 0x0a, 0x03, 0x49, 0x50, 0x73, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, + 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x3a, 0x04, 0xa8, 0xa6, 0x1f, 0x01, 0x22, 0x07, 0x0a, 0x05, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x5a, 0x0a, 0x1d, 0x6f, 0x72, 0x67, 0x2e, 0x76, 0x64, 0x61, + 0x61, 0x73, 0x2e, 0x76, 0x61, 0x6c, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x70, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x0b, 0x56, 0x61, 0x6c, 0x64, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x50, 0x01, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x76, 0x64, 0x61, 0x61, 0x73, 0x2f, 0x76, 0x61, 0x6c, 0x64, 0x2f, 0x61, 0x70, 0x69, + 0x73, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/apis/grpc/v1/payload/payload_vtproto.pb.go b/apis/grpc/v1/payload/payload_vtproto.pb.go index ebc4b17cee6..77d16c9fa95 100644 --- a/apis/grpc/v1/payload/payload_vtproto.pb.go +++ b/apis/grpc/v1/payload/payload_vtproto.pb.go @@ -21,6 +21,7 @@ import ( fmt "fmt" math "math" bits "math/bits" + sync "sync" io "github.com/vdaas/vald/internal/io" status "google.golang.org/genproto/googleapis/rpc/status" @@ -35,1087 +36,2098 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -func (m *Search_Request) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil +func (this *Search_Request) EqualVT(that *Search_Request) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err + if len(this.Vector) != len(that.Vector) { + return false } - return dAtA[:n], nil -} - -func (m *Search_Request) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) + for i, vx := range this.Vector { + vy := that.Vector[i] + if vx != vy { + return false + } + } + if !this.Config.EqualVT(that.Config) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Search_Request) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil +func (this *Search_Request) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Search_Request) + if !ok { + return false } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + return this.EqualVT(that) +} +func (this *Search_MultiRequest) EqualVT(that *Search_MultiRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - if m.Config != nil { - size, err := m.Config.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x12 + if len(this.Requests) != len(that.Requests) { + return false } - if len(m.Vector) > 0 { - for iNdEx := len(m.Vector) - 1; iNdEx >= 0; iNdEx-- { - f1 := math.Float32bits(float32(m.Vector[iNdEx])) - i -= 4 - binary.LittleEndian.PutUint32(dAtA[i:], uint32(f1)) + for i, vx := range this.Requests { + vy := that.Requests[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &Search_Request{} + } + if q == nil { + q = &Search_Request{} + } + if !p.EqualVT(q) { + return false + } } - i = encodeVarint(dAtA, i, uint64(len(m.Vector)*4)) - i-- - dAtA[i] = 0xa } - return len(dAtA) - i, nil + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Search_MultiRequest) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil +func (this *Search_MultiRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Search_MultiRequest) + if !ok { + return false } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err + return this.EqualVT(that) +} +func (this *Search_IDRequest) EqualVT(that *Search_IDRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - return dAtA[:n], nil + if this.Id != that.Id { + return false + } + if !this.Config.EqualVT(that.Config) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Search_MultiRequest) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) +func (this *Search_IDRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Search_IDRequest) + if !ok { + return false + } + return this.EqualVT(that) } - -func (m *Search_MultiRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil +func (this *Search_MultiIDRequest) EqualVT(that *Search_MultiIDRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + if len(this.Requests) != len(that.Requests) { + return false } - if len(m.Requests) > 0 { - for iNdEx := len(m.Requests) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Requests[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err + for i, vx := range this.Requests { + vy := that.Requests[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &Search_IDRequest{} + } + if q == nil { + q = &Search_IDRequest{} + } + if !p.EqualVT(q) { + return false } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa } } - return len(dAtA) - i, nil + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Search_IDRequest) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil +func (this *Search_MultiIDRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Search_MultiIDRequest) + if !ok { + return false } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err + return this.EqualVT(that) +} +func (this *Search_ObjectRequest) EqualVT(that *Search_ObjectRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - return dAtA[:n], nil + if string(this.Object) != string(that.Object) { + return false + } + if !this.Config.EqualVT(that.Config) { + return false + } + if !this.Vectorizer.EqualVT(that.Vectorizer) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Search_IDRequest) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) +func (this *Search_ObjectRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Search_ObjectRequest) + if !ok { + return false + } + return this.EqualVT(that) } - -func (m *Search_IDRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil +func (this *Search_MultiObjectRequest) EqualVT(that *Search_MultiObjectRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + if len(this.Requests) != len(that.Requests) { + return false } - if m.Config != nil { - size, err := m.Config.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err + for i, vx := range this.Requests { + vy := that.Requests[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &Search_ObjectRequest{} + } + if q == nil { + q = &Search_ObjectRequest{} + } + if !p.EqualVT(q) { + return false + } } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x12 - } - if len(m.Id) > 0 { - i -= len(m.Id) - copy(dAtA[i:], m.Id) - i = encodeVarint(dAtA, i, uint64(len(m.Id))) - i-- - dAtA[i] = 0xa } - return len(dAtA) - i, nil + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Search_MultiIDRequest) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil +func (this *Search_MultiObjectRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Search_MultiObjectRequest) + if !ok { + return false } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err + return this.EqualVT(that) +} +func (this *Search_Config) EqualVT(that *Search_Config) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - return dAtA[:n], nil + if this.RequestId != that.RequestId { + return false + } + if this.Num != that.Num { + return false + } + if this.Radius != that.Radius { + return false + } + if this.Epsilon != that.Epsilon { + return false + } + if this.Timeout != that.Timeout { + return false + } + if !this.IngressFilters.EqualVT(that.IngressFilters) { + return false + } + if !this.EgressFilters.EqualVT(that.EgressFilters) { + return false + } + if this.MinNum != that.MinNum { + return false + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Search_MultiIDRequest) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) +func (this *Search_Config) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Search_Config) + if !ok { + return false + } + return this.EqualVT(that) } - -func (m *Search_MultiIDRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil +func (this *Search_Response) EqualVT(that *Search_Response) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + if this.RequestId != that.RequestId { + return false } - if len(m.Requests) > 0 { - for iNdEx := len(m.Requests) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Requests[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err + if len(this.Results) != len(that.Results) { + return false + } + for i, vx := range this.Results { + vy := that.Results[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &Object_Distance{} + } + if q == nil { + q = &Object_Distance{} + } + if !p.EqualVT(q) { + return false } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa } } - return len(dAtA) - i, nil + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Search_ObjectRequest) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil +func (this *Search_Response) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Search_Response) + if !ok { + return false } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil + return this.EqualVT(that) } - -func (m *Search_ObjectRequest) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) +func (this *Search_Responses) EqualVT(that *Search_Responses) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.Responses) != len(that.Responses) { + return false + } + for i, vx := range this.Responses { + vy := that.Responses[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &Search_Response{} + } + if q == nil { + q = &Search_Response{} + } + if !p.EqualVT(q) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Search_ObjectRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil +func (this *Search_Responses) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Search_Responses) + if !ok { + return false } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + return this.EqualVT(that) +} +func (this *Search_StreamResponse) EqualVT(that *Search_StreamResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - if m.Vectorizer != nil { - size, err := m.Vectorizer.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err + if this.Payload == nil && that.Payload != nil { + return false + } else if this.Payload != nil { + if that.Payload == nil { + return false } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x1a - } - if m.Config != nil { - size, err := m.Config.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err + if !this.Payload.(interface { + EqualVT(isSearch_StreamResponse_Payload) bool + }).EqualVT(that.Payload) { + return false } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x12 - } - if len(m.Object) > 0 { - i -= len(m.Object) - copy(dAtA[i:], m.Object) - i = encodeVarint(dAtA, i, uint64(len(m.Object))) - i-- - dAtA[i] = 0xa } - return len(dAtA) - i, nil + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Search_MultiObjectRequest) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil +func (this *Search_StreamResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Search_StreamResponse) + if !ok { + return false } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err + return this.EqualVT(that) +} +func (this *Search_StreamResponse_Response) EqualVT(thatIface isSearch_StreamResponse_Payload) bool { + that, ok := thatIface.(*Search_StreamResponse_Response) + if !ok { + return false } - return dAtA[:n], nil + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Response, that.Response; p != q { + if p == nil { + p = &Search_Response{} + } + if q == nil { + q = &Search_Response{} + } + if !p.EqualVT(q) { + return false + } + } + return true } -func (m *Search_MultiObjectRequest) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) -} - -func (m *Search_MultiObjectRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil +func (this *Search_StreamResponse_Status) EqualVT(thatIface isSearch_StreamResponse_Payload) bool { + that, ok := thatIface.(*Search_StreamResponse_Status) + if !ok { + return false } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + if this == that { + return true } - if len(m.Requests) > 0 { - for iNdEx := len(m.Requests) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Requests[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Status, that.Status; p != q { + if p == nil { + p = &status.Status{} + } + if q == nil { + q = &status.Status{} + } + if equal, ok := interface{}(p).(interface{ EqualVT(*status.Status) bool }); ok { + if !equal.EqualVT(q) { + return false } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa + } else if !proto.Equal(p, q) { + return false } } - return len(dAtA) - i, nil + return true } -func (m *Search_Config) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil - } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err +func (this *Search) EqualVT(that *Search) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - return dAtA[:n], nil + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Search_Config) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) +func (this *Search) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Search) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Filter_Target) EqualVT(that *Filter_Target) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Host != that.Host { + return false + } + if this.Port != that.Port { + return false + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Search_Config) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil +func (this *Filter_Target) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Filter_Target) + if !ok { + return false } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + return this.EqualVT(that) +} +func (this *Filter_Config) EqualVT(that *Filter_Config) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - if m.MinNum != 0 { - i = encodeVarint(dAtA, i, uint64(m.MinNum)) - i-- - dAtA[i] = 0x40 + if len(this.Targets) != len(that.Targets) { + return false } - if m.EgressFilters != nil { - size, err := m.EgressFilters.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err + for i, vx := range this.Targets { + vy := that.Targets[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &Filter_Target{} + } + if q == nil { + q = &Filter_Target{} + } + if !p.EqualVT(q) { + return false + } } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x3a } - if m.IngressFilters != nil { - size, err := m.IngressFilters.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x32 + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Filter_Config) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Filter_Config) + if !ok { + return false } - if m.Timeout != 0 { - i = encodeVarint(dAtA, i, uint64(m.Timeout)) - i-- - dAtA[i] = 0x28 + return this.EqualVT(that) +} +func (this *Filter) EqualVT(that *Filter) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - if m.Epsilon != 0 { - i -= 4 - binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Epsilon)))) - i-- - dAtA[i] = 0x25 + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Filter) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Filter) + if !ok { + return false } - if m.Radius != 0 { - i -= 4 - binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Radius)))) - i-- - dAtA[i] = 0x1d + return this.EqualVT(that) +} +func (this *Insert_Request) EqualVT(that *Insert_Request) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - if m.Num != 0 { - i = encodeVarint(dAtA, i, uint64(m.Num)) - i-- - dAtA[i] = 0x10 + if !this.Vector.EqualVT(that.Vector) { + return false } - if len(m.RequestId) > 0 { - i -= len(m.RequestId) - copy(dAtA[i:], m.RequestId) - i = encodeVarint(dAtA, i, uint64(len(m.RequestId))) - i-- - dAtA[i] = 0xa + if !this.Config.EqualVT(that.Config) { + return false } - return len(dAtA) - i, nil + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Search_Response) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil +func (this *Insert_Request) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Insert_Request) + if !ok { + return false } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err + return this.EqualVT(that) +} +func (this *Insert_MultiRequest) EqualVT(that *Insert_MultiRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - return dAtA[:n], nil + if len(this.Requests) != len(that.Requests) { + return false + } + for i, vx := range this.Requests { + vy := that.Requests[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &Insert_Request{} + } + if q == nil { + q = &Insert_Request{} + } + if !p.EqualVT(q) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Search_Response) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) +func (this *Insert_MultiRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Insert_MultiRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Insert_ObjectRequest) EqualVT(that *Insert_ObjectRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.Object.EqualVT(that.Object) { + return false + } + if !this.Config.EqualVT(that.Config) { + return false + } + if !this.Vectorizer.EqualVT(that.Vectorizer) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Search_Response) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil +func (this *Insert_ObjectRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Insert_ObjectRequest) + if !ok { + return false } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + return this.EqualVT(that) +} +func (this *Insert_MultiObjectRequest) EqualVT(that *Insert_MultiObjectRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - if len(m.Results) > 0 { - for iNdEx := len(m.Results) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Results[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err + if len(this.Requests) != len(that.Requests) { + return false + } + for i, vx := range this.Requests { + vy := that.Requests[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &Insert_ObjectRequest{} + } + if q == nil { + q = &Insert_ObjectRequest{} + } + if !p.EqualVT(q) { + return false } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x12 } } - if len(m.RequestId) > 0 { - i -= len(m.RequestId) - copy(dAtA[i:], m.RequestId) - i = encodeVarint(dAtA, i, uint64(len(m.RequestId))) - i-- - dAtA[i] = 0xa + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Insert_MultiObjectRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Insert_MultiObjectRequest) + if !ok { + return false } - return len(dAtA) - i, nil + return this.EqualVT(that) +} +func (this *Insert_Config) EqualVT(that *Insert_Config) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.SkipStrictExistCheck != that.SkipStrictExistCheck { + return false + } + if !this.Filters.EqualVT(that.Filters) { + return false + } + if this.Timestamp != that.Timestamp { + return false + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Search_Responses) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil +func (this *Insert_Config) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Insert_Config) + if !ok { + return false } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err + return this.EqualVT(that) +} +func (this *Insert) EqualVT(that *Insert) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - return dAtA[:n], nil + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Search_Responses) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) +func (this *Insert) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Insert) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Update_Request) EqualVT(that *Update_Request) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.Vector.EqualVT(that.Vector) { + return false + } + if !this.Config.EqualVT(that.Config) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Search_Responses) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil +func (this *Update_Request) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Update_Request) + if !ok { + return false } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + return this.EqualVT(that) +} +func (this *Update_MultiRequest) EqualVT(that *Update_MultiRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - if len(m.Responses) > 0 { - for iNdEx := len(m.Responses) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Responses[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err + if len(this.Requests) != len(that.Requests) { + return false + } + for i, vx := range this.Requests { + vy := that.Requests[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &Update_Request{} + } + if q == nil { + q = &Update_Request{} + } + if !p.EqualVT(q) { + return false } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa } } - return len(dAtA) - i, nil + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Search_StreamResponse) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil +func (this *Update_MultiRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Update_MultiRequest) + if !ok { + return false } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err + return this.EqualVT(that) +} +func (this *Update_ObjectRequest) EqualVT(that *Update_ObjectRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - return dAtA[:n], nil + if !this.Object.EqualVT(that.Object) { + return false + } + if !this.Config.EqualVT(that.Config) { + return false + } + if !this.Vectorizer.EqualVT(that.Vectorizer) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Search_StreamResponse) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) +func (this *Update_ObjectRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Update_ObjectRequest) + if !ok { + return false + } + return this.EqualVT(that) } - -func (m *Search_StreamResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil +func (this *Update_MultiObjectRequest) EqualVT(that *Update_MultiObjectRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + if len(this.Requests) != len(that.Requests) { + return false } - if vtmsg, ok := m.Payload.(interface { - MarshalToSizedBufferVT([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err + for i, vx := range this.Requests { + vy := that.Requests[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &Update_ObjectRequest{} + } + if q == nil { + q = &Update_ObjectRequest{} + } + if !p.EqualVT(q) { + return false + } } - i -= size } - return len(dAtA) - i, nil + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Search_StreamResponse_Response) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) +func (this *Update_MultiObjectRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Update_MultiObjectRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Update_Config) EqualVT(that *Update_Config) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.SkipStrictExistCheck != that.SkipStrictExistCheck { + return false + } + if !this.Filters.EqualVT(that.Filters) { + return false + } + if this.Timestamp != that.Timestamp { + return false + } + if this.DisableBalancedUpdate != that.DisableBalancedUpdate { + return false + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Search_StreamResponse_Response) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Response != nil { - size, err := m.Response.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa +func (this *Update_Config) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Update_Config) + if !ok { + return false } - return len(dAtA) - i, nil + return this.EqualVT(that) } -func (m *Search_StreamResponse_Status) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) +func (this *Update) EqualVT(that *Update) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Search_StreamResponse_Status) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Status != nil { - if vtmsg, ok := interface{}(m.Status).(interface { - MarshalToSizedBufferVT([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - } else { - encoded, err := proto.Marshal(m.Status) - if err != nil { - return 0, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = encodeVarint(dAtA, i, uint64(len(encoded))) - } - i-- - dAtA[i] = 0x12 +func (this *Update) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Update) + if !ok { + return false } - return len(dAtA) - i, nil + return this.EqualVT(that) } -func (m *Search) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil +func (this *Upsert_Request) EqualVT(that *Upsert_Request) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err + if !this.Vector.EqualVT(that.Vector) { + return false } - return dAtA[:n], nil + if !this.Config.EqualVT(that.Config) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Search) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) +func (this *Upsert_Request) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Upsert_Request) + if !ok { + return false + } + return this.EqualVT(that) } - -func (m *Search) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil +func (this *Upsert_MultiRequest) EqualVT(that *Upsert_MultiRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + if len(this.Requests) != len(that.Requests) { + return false } - return len(dAtA) - i, nil + for i, vx := range this.Requests { + vy := that.Requests[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &Upsert_Request{} + } + if q == nil { + q = &Upsert_Request{} + } + if !p.EqualVT(q) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Filter_Target) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil +func (this *Upsert_MultiRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Upsert_MultiRequest) + if !ok { + return false } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err + return this.EqualVT(that) +} +func (this *Upsert_ObjectRequest) EqualVT(that *Upsert_ObjectRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - return dAtA[:n], nil + if !this.Object.EqualVT(that.Object) { + return false + } + if !this.Config.EqualVT(that.Config) { + return false + } + if !this.Vectorizer.EqualVT(that.Vectorizer) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Filter_Target) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) +func (this *Upsert_ObjectRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Upsert_ObjectRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Upsert_MultiObjectRequest) EqualVT(that *Upsert_MultiObjectRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.Requests) != len(that.Requests) { + return false + } + for i, vx := range this.Requests { + vy := that.Requests[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &Upsert_ObjectRequest{} + } + if q == nil { + q = &Upsert_ObjectRequest{} + } + if !p.EqualVT(q) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Filter_Target) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil +func (this *Upsert_MultiObjectRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Upsert_MultiObjectRequest) + if !ok { + return false } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + return this.EqualVT(that) +} +func (this *Upsert_Config) EqualVT(that *Upsert_Config) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - if m.Port != 0 { - i = encodeVarint(dAtA, i, uint64(m.Port)) - i-- - dAtA[i] = 0x10 + if this.SkipStrictExistCheck != that.SkipStrictExistCheck { + return false } - if len(m.Host) > 0 { - i -= len(m.Host) - copy(dAtA[i:], m.Host) - i = encodeVarint(dAtA, i, uint64(len(m.Host))) - i-- - dAtA[i] = 0xa + if !this.Filters.EqualVT(that.Filters) { + return false } - return len(dAtA) - i, nil + if this.Timestamp != that.Timestamp { + return false + } + if this.DisableBalancedUpdate != that.DisableBalancedUpdate { + return false + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Filter_Config) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil +func (this *Upsert_Config) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Upsert_Config) + if !ok { + return false } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err + return this.EqualVT(that) +} +func (this *Upsert) EqualVT(that *Upsert) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - return dAtA[:n], nil + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Filter_Config) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) +func (this *Upsert) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Upsert) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Remove_Request) EqualVT(that *Remove_Request) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.Id.EqualVT(that.Id) { + return false + } + if !this.Config.EqualVT(that.Config) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Filter_Config) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil +func (this *Remove_Request) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Remove_Request) + if !ok { + return false } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + return this.EqualVT(that) +} +func (this *Remove_MultiRequest) EqualVT(that *Remove_MultiRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - if len(m.Targets) > 0 { - for iNdEx := len(m.Targets) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Targets[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err + if len(this.Requests) != len(that.Requests) { + return false + } + for i, vx := range this.Requests { + vy := that.Requests[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &Remove_Request{} + } + if q == nil { + q = &Remove_Request{} + } + if !p.EqualVT(q) { + return false } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa } } - return len(dAtA) - i, nil + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Filter) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil - } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err +func (this *Remove_MultiRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Remove_MultiRequest) + if !ok { + return false } - return dAtA[:n], nil + return this.EqualVT(that) } - -func (m *Filter) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) +func (this *Remove_Config) EqualVT(that *Remove_Config) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.SkipStrictExistCheck != that.SkipStrictExistCheck { + return false + } + if this.Timestamp != that.Timestamp { + return false + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Filter) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil +func (this *Remove_Config) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Remove_Config) + if !ok { + return false } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + return this.EqualVT(that) +} +func (this *Remove) EqualVT(that *Remove) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - return len(dAtA) - i, nil + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Insert_Request) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil +func (this *Remove) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Remove) + if !ok { + return false } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err + return this.EqualVT(that) +} +func (this *Object_VectorRequest) EqualVT(that *Object_VectorRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - return dAtA[:n], nil + if !this.Id.EqualVT(that.Id) { + return false + } + if !this.Filters.EqualVT(that.Filters) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Insert_Request) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) +func (this *Object_VectorRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Object_VectorRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Object_Distance) EqualVT(that *Object_Distance) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Id != that.Id { + return false + } + if this.Distance != that.Distance { + return false + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Insert_Request) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil +func (this *Object_Distance) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Object_Distance) + if !ok { + return false } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + return this.EqualVT(that) +} +func (this *Object_StreamDistance) EqualVT(that *Object_StreamDistance) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - if m.Config != nil { - size, err := m.Config.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err + if this.Payload == nil && that.Payload != nil { + return false + } else if this.Payload != nil { + if that.Payload == nil { + return false } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x12 - } - if m.Vector != nil { - size, err := m.Vector.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err + if !this.Payload.(interface { + EqualVT(isObject_StreamDistance_Payload) bool + }).EqualVT(that.Payload) { + return false } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa } - return len(dAtA) - i, nil + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Insert_MultiRequest) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil +func (this *Object_StreamDistance) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Object_StreamDistance) + if !ok { + return false } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err + return this.EqualVT(that) +} +func (this *Object_StreamDistance_Distance) EqualVT(thatIface isObject_StreamDistance_Payload) bool { + that, ok := thatIface.(*Object_StreamDistance_Distance) + if !ok { + return false } - return dAtA[:n], nil -} - -func (m *Insert_MultiRequest) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Distance, that.Distance; p != q { + if p == nil { + p = &Object_Distance{} + } + if q == nil { + q = &Object_Distance{} + } + if !p.EqualVT(q) { + return false + } + } + return true } -func (m *Insert_MultiRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil +func (this *Object_StreamDistance_Status) EqualVT(thatIface isObject_StreamDistance_Payload) bool { + that, ok := thatIface.(*Object_StreamDistance_Status) + if !ok { + return false } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + if this == that { + return true } - if len(m.Requests) > 0 { - for iNdEx := len(m.Requests) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Requests[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Status, that.Status; p != q { + if p == nil { + p = &status.Status{} + } + if q == nil { + q = &status.Status{} + } + if equal, ok := interface{}(p).(interface{ EqualVT(*status.Status) bool }); ok { + if !equal.EqualVT(q) { + return false } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa + } else if !proto.Equal(p, q) { + return false } } - return len(dAtA) - i, nil + return true } -func (m *Insert_ObjectRequest) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil +func (this *Object_ID) EqualVT(that *Object_ID) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err + if this.Id != that.Id { + return false } - return dAtA[:n], nil -} - -func (m *Insert_ObjectRequest) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Insert_ObjectRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil - } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) +func (this *Object_ID) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Object_ID) + if !ok { + return false } - if m.Vectorizer != nil { - size, err := m.Vectorizer.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x1a + return this.EqualVT(that) +} +func (this *Object_IDs) EqualVT(that *Object_IDs) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - if m.Config != nil { - size, err := m.Config.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x12 + if len(this.Ids) != len(that.Ids) { + return false } - if m.Object != nil { - size, err := m.Object.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err + for i, vx := range this.Ids { + vy := that.Ids[i] + if vx != vy { + return false } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa } - return len(dAtA) - i, nil + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Insert_MultiObjectRequest) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil +func (this *Object_IDs) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Object_IDs) + if !ok { + return false } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err + return this.EqualVT(that) +} +func (this *Object_Vector) EqualVT(that *Object_Vector) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - return dAtA[:n], nil + if this.Id != that.Id { + return false + } + if len(this.Vector) != len(that.Vector) { + return false + } + for i, vx := range this.Vector { + vy := that.Vector[i] + if vx != vy { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Insert_MultiObjectRequest) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) +func (this *Object_Vector) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Object_Vector) + if !ok { + return false + } + return this.EqualVT(that) } - -func (m *Insert_MultiObjectRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil +func (this *Object_Vectors) EqualVT(that *Object_Vectors) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + if len(this.Vectors) != len(that.Vectors) { + return false } - if len(m.Requests) > 0 { - for iNdEx := len(m.Requests) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Requests[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err + for i, vx := range this.Vectors { + vy := that.Vectors[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &Object_Vector{} + } + if q == nil { + q = &Object_Vector{} + } + if !p.EqualVT(q) { + return false } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa } } - return len(dAtA) - i, nil + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Insert_Config) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil +func (this *Object_Vectors) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Object_Vectors) + if !ok { + return false } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err + return this.EqualVT(that) +} +func (this *Object_StreamVector) EqualVT(that *Object_StreamVector) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - return dAtA[:n], nil + if this.Payload == nil && that.Payload != nil { + return false + } else if this.Payload != nil { + if that.Payload == nil { + return false + } + if !this.Payload.(interface { + EqualVT(isObject_StreamVector_Payload) bool + }).EqualVT(that.Payload) { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Insert_Config) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) +func (this *Object_StreamVector) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Object_StreamVector) + if !ok { + return false + } + return this.EqualVT(that) } - -func (m *Insert_Config) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil +func (this *Object_StreamVector_Vector) EqualVT(thatIface isObject_StreamVector_Payload) bool { + that, ok := thatIface.(*Object_StreamVector_Vector) + if !ok { + return false } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + if this == that { + return true } - if m.Timestamp != 0 { - i = encodeVarint(dAtA, i, uint64(m.Timestamp)) - i-- - dAtA[i] = 0x18 + if this == nil && that != nil || this != nil && that == nil { + return false } - if m.Filters != nil { - size, err := m.Filters.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err + if p, q := this.Vector, that.Vector; p != q { + if p == nil { + p = &Object_Vector{} } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x12 - } - if m.SkipStrictExistCheck { - i-- - if m.SkipStrictExistCheck { - dAtA[i] = 1 - } else { - dAtA[i] = 0 + if q == nil { + q = &Object_Vector{} + } + if !p.EqualVT(q) { + return false } - i-- - dAtA[i] = 0x8 } - return len(dAtA) - i, nil + return true } -func (m *Insert) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil +func (this *Object_StreamVector_Status) EqualVT(thatIface isObject_StreamVector_Payload) bool { + that, ok := thatIface.(*Object_StreamVector_Status) + if !ok { + return false } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err + if this == that { + return true } - return dAtA[:n], nil + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Status, that.Status; p != q { + if p == nil { + p = &status.Status{} + } + if q == nil { + q = &status.Status{} + } + if equal, ok := interface{}(p).(interface{ EqualVT(*status.Status) bool }); ok { + if !equal.EqualVT(q) { + return false + } + } else if !proto.Equal(p, q) { + return false + } + } + return true } -func (m *Insert) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) +func (this *Object_ReshapeVector) EqualVT(that *Object_ReshapeVector) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if string(this.Object) != string(that.Object) { + return false + } + if len(this.Shape) != len(that.Shape) { + return false + } + for i, vx := range this.Shape { + vy := that.Shape[i] + if vx != vy { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Insert) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil +func (this *Object_ReshapeVector) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Object_ReshapeVector) + if !ok { + return false } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + return this.EqualVT(that) +} +func (this *Object_Blob) EqualVT(that *Object_Blob) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - return len(dAtA) - i, nil + if this.Id != that.Id { + return false + } + if string(this.Object) != string(that.Object) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Update_Request) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil +func (this *Object_Blob) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Object_Blob) + if !ok { + return false } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err + return this.EqualVT(that) +} +func (this *Object_StreamBlob) EqualVT(that *Object_StreamBlob) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false } - return dAtA[:n], nil + if this.Payload == nil && that.Payload != nil { + return false + } else if this.Payload != nil { + if that.Payload == nil { + return false + } + if !this.Payload.(interface { + EqualVT(isObject_StreamBlob_Payload) bool + }).EqualVT(that.Payload) { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) } -func (m *Update_Request) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) +func (this *Object_StreamBlob) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Object_StreamBlob) + if !ok { + return false + } + return this.EqualVT(that) } - -func (m *Update_Request) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil +func (this *Object_StreamBlob_Blob) EqualVT(thatIface isObject_StreamBlob_Payload) bool { + that, ok := thatIface.(*Object_StreamBlob_Blob) + if !ok { + return false } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + if this == that { + return true } - if m.Config != nil { - size, err := m.Config.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Blob, that.Blob; p != q { + if p == nil { + p = &Object_Blob{} + } + if q == nil { + q = &Object_Blob{} + } + if !p.EqualVT(q) { + return false } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x12 } - if m.Vector != nil { - size, err := m.Vector.MarshalToSizedBufferVT(dAtA[:i]) + return true +} + +func (this *Object_StreamBlob_Status) EqualVT(thatIface isObject_StreamBlob_Payload) bool { + that, ok := thatIface.(*Object_StreamBlob_Status) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Status, that.Status; p != q { + if p == nil { + p = &status.Status{} + } + if q == nil { + q = &status.Status{} + } + if equal, ok := interface{}(p).(interface{ EqualVT(*status.Status) bool }); ok { + if !equal.EqualVT(q) { + return false + } + } else if !proto.Equal(p, q) { + return false + } + } + return true +} + +func (this *Object_Location) EqualVT(that *Object_Location) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Name != that.Name { + return false + } + if this.Uuid != that.Uuid { + return false + } + if len(this.Ips) != len(that.Ips) { + return false + } + for i, vx := range this.Ips { + vy := that.Ips[i] + if vx != vy { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Object_Location) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Object_Location) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Object_StreamLocation) EqualVT(that *Object_StreamLocation) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Payload == nil && that.Payload != nil { + return false + } else if this.Payload != nil { + if that.Payload == nil { + return false + } + if !this.Payload.(interface { + EqualVT(isObject_StreamLocation_Payload) bool + }).EqualVT(that.Payload) { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Object_StreamLocation) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Object_StreamLocation) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Object_StreamLocation_Location) EqualVT(thatIface isObject_StreamLocation_Payload) bool { + that, ok := thatIface.(*Object_StreamLocation_Location) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Location, that.Location; p != q { + if p == nil { + p = &Object_Location{} + } + if q == nil { + q = &Object_Location{} + } + if !p.EqualVT(q) { + return false + } + } + return true +} + +func (this *Object_StreamLocation_Status) EqualVT(thatIface isObject_StreamLocation_Payload) bool { + that, ok := thatIface.(*Object_StreamLocation_Status) + if !ok { + return false + } + if this == that { + return true + } + if this == nil && that != nil || this != nil && that == nil { + return false + } + if p, q := this.Status, that.Status; p != q { + if p == nil { + p = &status.Status{} + } + if q == nil { + q = &status.Status{} + } + if equal, ok := interface{}(p).(interface{ EqualVT(*status.Status) bool }); ok { + if !equal.EqualVT(q) { + return false + } + } else if !proto.Equal(p, q) { + return false + } + } + return true +} + +func (this *Object_Locations) EqualVT(that *Object_Locations) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.Locations) != len(that.Locations) { + return false + } + for i, vx := range this.Locations { + vy := that.Locations[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &Object_Location{} + } + if q == nil { + q = &Object_Location{} + } + if !p.EqualVT(q) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Object_Locations) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Object_Locations) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Object) EqualVT(that *Object) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Object) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Object) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Control_CreateIndexRequest) EqualVT(that *Control_CreateIndexRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.PoolSize != that.PoolSize { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Control_CreateIndexRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Control_CreateIndexRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Control) EqualVT(that *Control) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Control) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Control) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Discoverer_Request) EqualVT(that *Discoverer_Request) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Name != that.Name { + return false + } + if this.Namespace != that.Namespace { + return false + } + if this.Node != that.Node { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Discoverer_Request) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Discoverer_Request) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Discoverer) EqualVT(that *Discoverer) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Discoverer) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Discoverer) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Info_Index_Count) EqualVT(that *Info_Index_Count) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Stored != that.Stored { + return false + } + if this.Uncommitted != that.Uncommitted { + return false + } + if this.Indexing != that.Indexing { + return false + } + if this.Saving != that.Saving { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Info_Index_Count) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Info_Index_Count) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Info_Index_UUID_Committed) EqualVT(that *Info_Index_UUID_Committed) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Uuid != that.Uuid { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Info_Index_UUID_Committed) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Info_Index_UUID_Committed) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Info_Index_UUID_Uncommitted) EqualVT(that *Info_Index_UUID_Uncommitted) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Uuid != that.Uuid { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Info_Index_UUID_Uncommitted) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Info_Index_UUID_Uncommitted) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Info_Index_UUID) EqualVT(that *Info_Index_UUID) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Info_Index_UUID) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Info_Index_UUID) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Info_Index) EqualVT(that *Info_Index) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Info_Index) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Info_Index) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Info_Pod) EqualVT(that *Info_Pod) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.AppName != that.AppName { + return false + } + if this.Name != that.Name { + return false + } + if this.Namespace != that.Namespace { + return false + } + if this.Ip != that.Ip { + return false + } + if !this.Cpu.EqualVT(that.Cpu) { + return false + } + if !this.Memory.EqualVT(that.Memory) { + return false + } + if !this.Node.EqualVT(that.Node) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Info_Pod) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Info_Pod) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Info_Node) EqualVT(that *Info_Node) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Name != that.Name { + return false + } + if this.InternalAddr != that.InternalAddr { + return false + } + if this.ExternalAddr != that.ExternalAddr { + return false + } + if !this.Cpu.EqualVT(that.Cpu) { + return false + } + if !this.Memory.EqualVT(that.Memory) { + return false + } + if !this.Pods.EqualVT(that.Pods) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Info_Node) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Info_Node) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Info_CPU) EqualVT(that *Info_CPU) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Limit != that.Limit { + return false + } + if this.Request != that.Request { + return false + } + if this.Usage != that.Usage { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Info_CPU) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Info_CPU) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Info_Memory) EqualVT(that *Info_Memory) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if this.Limit != that.Limit { + return false + } + if this.Request != that.Request { + return false + } + if this.Usage != that.Usage { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Info_Memory) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Info_Memory) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Info_Pods) EqualVT(that *Info_Pods) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.Pods) != len(that.Pods) { + return false + } + for i, vx := range this.Pods { + vy := that.Pods[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &Info_Pod{} + } + if q == nil { + q = &Info_Pod{} + } + if !p.EqualVT(q) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Info_Pods) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Info_Pods) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Info_Nodes) EqualVT(that *Info_Nodes) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.Nodes) != len(that.Nodes) { + return false + } + for i, vx := range this.Nodes { + vy := that.Nodes[i] + if p, q := vx, vy; p != q { + if p == nil { + p = &Info_Node{} + } + if q == nil { + q = &Info_Node{} + } + if !p.EqualVT(q) { + return false + } + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Info_Nodes) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Info_Nodes) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Info_IPs) EqualVT(that *Info_IPs) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if len(this.Ip) != len(that.Ip) { + return false + } + for i, vx := range this.Ip { + vy := that.Ip[i] + if vx != vy { + return false + } + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Info_IPs) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Info_IPs) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Info) EqualVT(that *Info) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Info) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Info) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *Empty) EqualVT(that *Empty) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *Empty) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*Empty) + if !ok { + return false + } + return this.EqualVT(that) +} +func (m *Search_Request) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Search_Request) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Search_Request) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Config != nil { + size, err := m.Config.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = encodeVarint(dAtA, i, uint64(size)) i-- + dAtA[i] = 0x12 + } + if len(m.Vector) > 0 { + for iNdEx := len(m.Vector) - 1; iNdEx >= 0; iNdEx-- { + f1 := math.Float32bits(float32(m.Vector[iNdEx])) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(f1)) + } + i = encodeVarint(dAtA, i, uint64(len(m.Vector)*4)) + i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *Update_MultiRequest) MarshalVT() (dAtA []byte, err error) { +func (m *Search_MultiRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -1128,12 +2140,12 @@ func (m *Update_MultiRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Update_MultiRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *Search_MultiRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Update_MultiRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Search_MultiRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -1160,7 +2172,7 @@ func (m *Update_MultiRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *Update_ObjectRequest) MarshalVT() (dAtA []byte, err error) { +func (m *Search_IDRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -1173,12 +2185,12 @@ func (m *Update_ObjectRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Update_ObjectRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *Search_IDRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Update_ObjectRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Search_IDRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -1190,16 +2202,6 @@ func (m *Update_ObjectRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Vectorizer != nil { - size, err := m.Vectorizer.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x1a - } if m.Config != nil { size, err := m.Config.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { @@ -1210,20 +2212,17 @@ func (m *Update_ObjectRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) i-- dAtA[i] = 0x12 } - if m.Object != nil { - size, err := m.Object.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) + if len(m.Id) > 0 { + i -= len(m.Id) + copy(dAtA[i:], m.Id) + i = encodeVarint(dAtA, i, uint64(len(m.Id))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *Update_MultiObjectRequest) MarshalVT() (dAtA []byte, err error) { +func (m *Search_MultiIDRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -1236,12 +2235,12 @@ func (m *Update_MultiObjectRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Update_MultiObjectRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *Search_MultiIDRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Update_MultiObjectRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Search_MultiIDRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -1268,7 +2267,7 @@ func (m *Update_MultiObjectRequest) MarshalToSizedBufferVT(dAtA []byte) (int, er return len(dAtA) - i, nil } -func (m *Update_Config) MarshalVT() (dAtA []byte, err error) { +func (m *Search_ObjectRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -1281,12 +2280,12 @@ func (m *Update_Config) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Update_Config) MarshalToVT(dAtA []byte) (int, error) { +func (m *Search_ObjectRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Update_Config) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Search_ObjectRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -1298,23 +2297,18 @@ func (m *Update_Config) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.DisableBalancedUpdate { - i-- - if m.DisableBalancedUpdate { - dAtA[i] = 1 - } else { - dAtA[i] = 0 + if m.Vectorizer != nil { + size, err := m.Vectorizer.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x20 - } - if m.Timestamp != 0 { - i = encodeVarint(dAtA, i, uint64(m.Timestamp)) - i-- - dAtA[i] = 0x18 + dAtA[i] = 0x1a } - if m.Filters != nil { - size, err := m.Filters.MarshalToSizedBufferVT(dAtA[:i]) + if m.Config != nil { + size, err := m.Config.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -1323,20 +2317,17 @@ func (m *Update_Config) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i-- dAtA[i] = 0x12 } - if m.SkipStrictExistCheck { - i-- - if m.SkipStrictExistCheck { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } + if len(m.Object) > 0 { + i -= len(m.Object) + copy(dAtA[i:], m.Object) + i = encodeVarint(dAtA, i, uint64(len(m.Object))) i-- - dAtA[i] = 0x8 + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *Update) MarshalVT() (dAtA []byte, err error) { +func (m *Search_MultiObjectRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -1349,12 +2340,12 @@ func (m *Update) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Update) MarshalToVT(dAtA []byte) (int, error) { +func (m *Search_MultiObjectRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Update) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Search_MultiObjectRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -1366,10 +2357,22 @@ func (m *Update) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if len(m.Requests) > 0 { + for iNdEx := len(m.Requests) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Requests[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } return len(dAtA) - i, nil } -func (m *Upsert_Request) MarshalVT() (dAtA []byte, err error) { +func (m *Search_Config) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -1382,12 +2385,12 @@ func (m *Upsert_Request) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Upsert_Request) MarshalToVT(dAtA []byte) (int, error) { +func (m *Search_Config) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Upsert_Request) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Search_Config) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -1399,30 +2402,64 @@ func (m *Upsert_Request) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Config != nil { - size, err := m.Config.MarshalToSizedBufferVT(dAtA[:i]) + if m.MinNum != 0 { + i = encodeVarint(dAtA, i, uint64(m.MinNum)) + i-- + dAtA[i] = 0x40 + } + if m.EgressFilters != nil { + size, err := m.EgressFilters.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = encodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x12 + dAtA[i] = 0x3a } - if m.Vector != nil { - size, err := m.Vector.MarshalToSizedBufferVT(dAtA[:i]) + if m.IngressFilters != nil { + size, err := m.IngressFilters.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = encodeVarint(dAtA, i, uint64(size)) i-- + dAtA[i] = 0x32 + } + if m.Timeout != 0 { + i = encodeVarint(dAtA, i, uint64(m.Timeout)) + i-- + dAtA[i] = 0x28 + } + if m.Epsilon != 0 { + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Epsilon)))) + i-- + dAtA[i] = 0x25 + } + if m.Radius != 0 { + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Radius)))) + i-- + dAtA[i] = 0x1d + } + if m.Num != 0 { + i = encodeVarint(dAtA, i, uint64(m.Num)) + i-- + dAtA[i] = 0x10 + } + if len(m.RequestId) > 0 { + i -= len(m.RequestId) + copy(dAtA[i:], m.RequestId) + i = encodeVarint(dAtA, i, uint64(len(m.RequestId))) + i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *Upsert_MultiRequest) MarshalVT() (dAtA []byte, err error) { +func (m *Search_Response) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -1435,12 +2472,12 @@ func (m *Upsert_MultiRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Upsert_MultiRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *Search_Response) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Upsert_MultiRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Search_Response) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -1452,85 +2489,29 @@ func (m *Upsert_MultiRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Requests) > 0 { - for iNdEx := len(m.Requests) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Requests[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if len(m.Results) > 0 { + for iNdEx := len(m.Results) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Results[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = encodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *Upsert_ObjectRequest) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil - } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Upsert_ObjectRequest) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) -} - -func (m *Upsert_ObjectRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil - } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) - } - if m.Vectorizer != nil { - size, err := m.Vectorizer.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x1a - } - if m.Config != nil { - size, err := m.Config.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err + dAtA[i] = 0x12 } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x12 } - if m.Object != nil { - size, err := m.Object.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) + if len(m.RequestId) > 0 { + i -= len(m.RequestId) + copy(dAtA[i:], m.RequestId) + i = encodeVarint(dAtA, i, uint64(len(m.RequestId))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *Upsert_MultiObjectRequest) MarshalVT() (dAtA []byte, err error) { +func (m *Search_Responses) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -1543,12 +2524,12 @@ func (m *Upsert_MultiObjectRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Upsert_MultiObjectRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *Search_Responses) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Upsert_MultiObjectRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Search_Responses) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -1560,9 +2541,9 @@ func (m *Upsert_MultiObjectRequest) MarshalToSizedBufferVT(dAtA []byte) (int, er i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Requests) > 0 { - for iNdEx := len(m.Requests) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Requests[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if len(m.Responses) > 0 { + for iNdEx := len(m.Responses) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Responses[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -1575,7 +2556,7 @@ func (m *Upsert_MultiObjectRequest) MarshalToSizedBufferVT(dAtA []byte) (int, er return len(dAtA) - i, nil } -func (m *Upsert_Config) MarshalVT() (dAtA []byte, err error) { +func (m *Search_StreamResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -1588,12 +2569,12 @@ func (m *Upsert_Config) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Upsert_Config) MarshalToVT(dAtA []byte) (int, error) { +func (m *Search_StreamResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Upsert_Config) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Search_StreamResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -1605,45 +2586,69 @@ func (m *Upsert_Config) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.DisableBalancedUpdate { - i-- - if m.DisableBalancedUpdate { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x20 - } - if m.Timestamp != 0 { - i = encodeVarint(dAtA, i, uint64(m.Timestamp)) - i-- - dAtA[i] = 0x18 - } - if m.Filters != nil { - size, err := m.Filters.MarshalToSizedBufferVT(dAtA[:i]) + if vtmsg, ok := m.Payload.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x12 } - if m.SkipStrictExistCheck { + return len(dAtA) - i, nil +} + +func (m *Search_StreamResponse_Response) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Search_StreamResponse_Response) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Response != nil { + size, err := m.Response.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) i-- - if m.SkipStrictExistCheck { - dAtA[i] = 1 + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *Search_StreamResponse_Status) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Search_StreamResponse_Status) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Status != nil { + if vtmsg, ok := interface{}(m.Status).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) } else { - dAtA[i] = 0 + encoded, err := proto.Marshal(m.Status) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = encodeVarint(dAtA, i, uint64(len(encoded))) } i-- - dAtA[i] = 0x8 + dAtA[i] = 0x12 } return len(dAtA) - i, nil } - -func (m *Upsert) MarshalVT() (dAtA []byte, err error) { +func (m *Search) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -1656,12 +2661,12 @@ func (m *Upsert) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Upsert) MarshalToVT(dAtA []byte) (int, error) { +func (m *Search) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Upsert) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Search) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -1676,7 +2681,7 @@ func (m *Upsert) MarshalToSizedBufferVT(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *Remove_Request) MarshalVT() (dAtA []byte, err error) { +func (m *Filter_Target) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -1689,12 +2694,12 @@ func (m *Remove_Request) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Remove_Request) MarshalToVT(dAtA []byte) (int, error) { +func (m *Filter_Target) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Remove_Request) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Filter_Target) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -1706,30 +2711,22 @@ func (m *Remove_Request) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Config != nil { - size, err := m.Config.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) + if m.Port != 0 { + i = encodeVarint(dAtA, i, uint64(m.Port)) i-- - dAtA[i] = 0x12 + dAtA[i] = 0x10 } - if m.Id != nil { - size, err := m.Id.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) + if len(m.Host) > 0 { + i -= len(m.Host) + copy(dAtA[i:], m.Host) + i = encodeVarint(dAtA, i, uint64(len(m.Host))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *Remove_MultiRequest) MarshalVT() (dAtA []byte, err error) { +func (m *Filter_Config) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -1742,12 +2739,12 @@ func (m *Remove_MultiRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Remove_MultiRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *Filter_Config) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Remove_MultiRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Filter_Config) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -1759,9 +2756,9 @@ func (m *Remove_MultiRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Requests) > 0 { - for iNdEx := len(m.Requests) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Requests[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if len(m.Targets) > 0 { + for iNdEx := len(m.Targets) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Targets[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -1774,7 +2771,7 @@ func (m *Remove_MultiRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *Remove_Config) MarshalVT() (dAtA []byte, err error) { +func (m *Filter) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -1787,12 +2784,12 @@ func (m *Remove_Config) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Remove_Config) MarshalToVT(dAtA []byte) (int, error) { +func (m *Filter) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Remove_Config) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Filter) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -1804,25 +2801,63 @@ func (m *Remove_Config) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Timestamp != 0 { - i = encodeVarint(dAtA, i, uint64(m.Timestamp)) - i-- - dAtA[i] = 0x18 + return len(dAtA) - i, nil +} + +func (m *Insert_Request) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil } - if m.SkipStrictExistCheck { + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Insert_Request) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Insert_Request) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Config != nil { + size, err := m.Config.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) i-- - if m.SkipStrictExistCheck { - dAtA[i] = 1 - } else { - dAtA[i] = 0 + dAtA[i] = 0x12 + } + if m.Vector != nil { + size, err := m.Vector.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x8 + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *Remove) MarshalVT() (dAtA []byte, err error) { +func (m *Insert_MultiRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -1835,12 +2870,12 @@ func (m *Remove) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Remove) MarshalToVT(dAtA []byte) (int, error) { +func (m *Insert_MultiRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Remove) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Insert_MultiRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -1852,10 +2887,22 @@ func (m *Remove) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if len(m.Requests) > 0 { + for iNdEx := len(m.Requests) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Requests[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } return len(dAtA) - i, nil } -func (m *Object_VectorRequest) MarshalVT() (dAtA []byte, err error) { +func (m *Insert_ObjectRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -1868,12 +2915,12 @@ func (m *Object_VectorRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Object_VectorRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *Insert_ObjectRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Object_VectorRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Insert_ObjectRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -1885,8 +2932,18 @@ func (m *Object_VectorRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Filters != nil { - size, err := m.Filters.MarshalToSizedBufferVT(dAtA[:i]) + if m.Vectorizer != nil { + size, err := m.Vectorizer.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + if m.Config != nil { + size, err := m.Config.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -1895,8 +2952,8 @@ func (m *Object_VectorRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) i-- dAtA[i] = 0x12 } - if m.Id != nil { - size, err := m.Id.MarshalToSizedBufferVT(dAtA[:i]) + if m.Object != nil { + size, err := m.Object.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -1908,7 +2965,7 @@ func (m *Object_VectorRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) return len(dAtA) - i, nil } -func (m *Object_Distance) MarshalVT() (dAtA []byte, err error) { +func (m *Insert_MultiObjectRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -1921,12 +2978,12 @@ func (m *Object_Distance) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Object_Distance) MarshalToVT(dAtA []byte) (int, error) { +func (m *Insert_MultiObjectRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Object_Distance) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Insert_MultiObjectRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -1938,23 +2995,22 @@ func (m *Object_Distance) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Distance != 0 { - i -= 4 - binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Distance)))) - i-- - dAtA[i] = 0x15 - } - if len(m.Id) > 0 { - i -= len(m.Id) - copy(dAtA[i:], m.Id) - i = encodeVarint(dAtA, i, uint64(len(m.Id))) - i-- - dAtA[i] = 0xa + if len(m.Requests) > 0 { + for iNdEx := len(m.Requests) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Requests[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } } return len(dAtA) - i, nil } -func (m *Object_StreamDistance) MarshalVT() (dAtA []byte, err error) { +func (m *Insert_Config) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -1967,12 +3023,12 @@ func (m *Object_StreamDistance) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Object_StreamDistance) MarshalToVT(dAtA []byte) (int, error) { +func (m *Insert_Config) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Object_StreamDistance) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Insert_Config) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -1984,69 +3040,68 @@ func (m *Object_StreamDistance) MarshalToSizedBufferVT(dAtA []byte) (int, error) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if vtmsg, ok := m.Payload.(interface { - MarshalToSizedBufferVT([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if m.Timestamp != 0 { + i = encodeVarint(dAtA, i, uint64(m.Timestamp)) + i-- + dAtA[i] = 0x18 + } + if m.Filters != nil { + size, err := m.Filters.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 } - return len(dAtA) - i, nil -} - -func (m *Object_StreamDistance_Distance) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) -} - -func (m *Object_StreamDistance_Distance) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Distance != nil { - size, err := m.Distance.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err + if m.SkipStrictExistCheck { + i-- + if m.SkipStrictExistCheck { + dAtA[i] = 1 + } else { + dAtA[i] = 0 } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0xa + dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func (m *Object_StreamDistance_Status) MarshalToVT(dAtA []byte) (int, error) { + +func (m *Insert) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Insert) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Object_StreamDistance_Status) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Insert) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } i := len(dAtA) - if m.Status != nil { - if vtmsg, ok := interface{}(m.Status).(interface { - MarshalToSizedBufferVT([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - } else { - encoded, err := proto.Marshal(m.Status) - if err != nil { - return 0, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = encodeVarint(dAtA, i, uint64(len(encoded))) - } - i-- - dAtA[i] = 0x12 + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) } return len(dAtA) - i, nil } -func (m *Object_ID) MarshalVT() (dAtA []byte, err error) { + +func (m *Update_Request) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2059,12 +3114,12 @@ func (m *Object_ID) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Object_ID) MarshalToVT(dAtA []byte) (int, error) { +func (m *Update_Request) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Object_ID) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Update_Request) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2076,17 +3131,30 @@ func (m *Object_ID) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Id) > 0 { - i -= len(m.Id) - copy(dAtA[i:], m.Id) - i = encodeVarint(dAtA, i, uint64(len(m.Id))) + if m.Config != nil { + size, err := m.Config.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if m.Vector != nil { + size, err := m.Vector.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *Object_IDs) MarshalVT() (dAtA []byte, err error) { +func (m *Update_MultiRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2099,12 +3167,12 @@ func (m *Object_IDs) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Object_IDs) MarshalToVT(dAtA []byte) (int, error) { +func (m *Update_MultiRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Object_IDs) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Update_MultiRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2116,11 +3184,14 @@ func (m *Object_IDs) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Ids) > 0 { - for iNdEx := len(m.Ids) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Ids[iNdEx]) - copy(dAtA[i:], m.Ids[iNdEx]) - i = encodeVarint(dAtA, i, uint64(len(m.Ids[iNdEx]))) + if len(m.Requests) > 0 { + for iNdEx := len(m.Requests) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Requests[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) i-- dAtA[i] = 0xa } @@ -2128,7 +3199,7 @@ func (m *Object_IDs) MarshalToSizedBufferVT(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *Object_Vector) MarshalVT() (dAtA []byte, err error) { +func (m *Update_ObjectRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2141,12 +3212,12 @@ func (m *Object_Vector) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Object_Vector) MarshalToVT(dAtA []byte) (int, error) { +func (m *Update_ObjectRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Object_Vector) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Update_ObjectRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2158,27 +3229,40 @@ func (m *Object_Vector) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Vector) > 0 { - for iNdEx := len(m.Vector) - 1; iNdEx >= 0; iNdEx-- { - f1 := math.Float32bits(float32(m.Vector[iNdEx])) - i -= 4 - binary.LittleEndian.PutUint32(dAtA[i:], uint32(f1)) + if m.Vectorizer != nil { + size, err := m.Vectorizer.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err } - i = encodeVarint(dAtA, i, uint64(len(m.Vector)*4)) + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + if m.Config != nil { + size, err := m.Config.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) i-- dAtA[i] = 0x12 } - if len(m.Id) > 0 { - i -= len(m.Id) - copy(dAtA[i:], m.Id) - i = encodeVarint(dAtA, i, uint64(len(m.Id))) + if m.Object != nil { + size, err := m.Object.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *Object_Vectors) MarshalVT() (dAtA []byte, err error) { +func (m *Update_MultiObjectRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2191,12 +3275,12 @@ func (m *Object_Vectors) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Object_Vectors) MarshalToVT(dAtA []byte) (int, error) { +func (m *Update_MultiObjectRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Object_Vectors) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Update_MultiObjectRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2208,9 +3292,9 @@ func (m *Object_Vectors) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Vectors) > 0 { - for iNdEx := len(m.Vectors) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Vectors[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if len(m.Requests) > 0 { + for iNdEx := len(m.Requests) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Requests[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -2223,7 +3307,7 @@ func (m *Object_Vectors) MarshalToSizedBufferVT(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *Object_StreamVector) MarshalVT() (dAtA []byte, err error) { +func (m *Update_Config) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2236,12 +3320,12 @@ func (m *Object_StreamVector) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Object_StreamVector) MarshalToVT(dAtA []byte) (int, error) { +func (m *Update_Config) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Object_StreamVector) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Update_Config) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2253,69 +3337,45 @@ func (m *Object_StreamVector) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if vtmsg, ok := m.Payload.(interface { - MarshalToSizedBufferVT([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err + if m.DisableBalancedUpdate { + i-- + if m.DisableBalancedUpdate { + dAtA[i] = 1 + } else { + dAtA[i] = 0 } - i -= size + i-- + dAtA[i] = 0x20 } - return len(dAtA) - i, nil -} - -func (m *Object_StreamVector_Vector) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) -} - -func (m *Object_StreamVector_Vector) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Vector != nil { - size, err := m.Vector.MarshalToSizedBufferVT(dAtA[:i]) + if m.Timestamp != 0 { + i = encodeVarint(dAtA, i, uint64(m.Timestamp)) + i-- + dAtA[i] = 0x18 + } + if m.Filters != nil { + size, err := m.Filters.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = encodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0xa + dAtA[i] = 0x12 } - return len(dAtA) - i, nil -} -func (m *Object_StreamVector_Status) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) -} - -func (m *Object_StreamVector_Status) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Status != nil { - if vtmsg, ok := interface{}(m.Status).(interface { - MarshalToSizedBufferVT([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) + if m.SkipStrictExistCheck { + i-- + if m.SkipStrictExistCheck { + dAtA[i] = 1 } else { - encoded, err := proto.Marshal(m.Status) - if err != nil { - return 0, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = encodeVarint(dAtA, i, uint64(len(encoded))) + dAtA[i] = 0 } i-- - dAtA[i] = 0x12 + dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func (m *Object_ReshapeVector) MarshalVT() (dAtA []byte, err error) { + +func (m *Update) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2328,12 +3388,12 @@ func (m *Object_ReshapeVector) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Object_ReshapeVector) MarshalToVT(dAtA []byte) (int, error) { +func (m *Update) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Object_ReshapeVector) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Update) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2345,85 +3405,10 @@ func (m *Object_ReshapeVector) MarshalToSizedBufferVT(dAtA []byte) (int, error) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Shape) > 0 { - var pksize2 int - for _, num := range m.Shape { - pksize2 += sov(uint64(num)) - } - i -= pksize2 - j1 := i - for _, num1 := range m.Shape { - num := uint64(num1) - for num >= 1<<7 { - dAtA[j1] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j1++ - } - dAtA[j1] = uint8(num) - j1++ - } - i = encodeVarint(dAtA, i, uint64(pksize2)) - i-- - dAtA[i] = 0x12 - } - if len(m.Object) > 0 { - i -= len(m.Object) - copy(dAtA[i:], m.Object) - i = encodeVarint(dAtA, i, uint64(len(m.Object))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *Object_Blob) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil - } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Object_Blob) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) -} - -func (m *Object_Blob) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil - } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) - } - if len(m.Object) > 0 { - i -= len(m.Object) - copy(dAtA[i:], m.Object) - i = encodeVarint(dAtA, i, uint64(len(m.Object))) - i-- - dAtA[i] = 0x12 - } - if len(m.Id) > 0 { - i -= len(m.Id) - copy(dAtA[i:], m.Id) - i = encodeVarint(dAtA, i, uint64(len(m.Id))) - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } -func (m *Object_StreamBlob) MarshalVT() (dAtA []byte, err error) { +func (m *Upsert_Request) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2436,12 +3421,12 @@ func (m *Object_StreamBlob) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Object_StreamBlob) MarshalToVT(dAtA []byte) (int, error) { +func (m *Upsert_Request) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Object_StreamBlob) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Upsert_Request) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2453,27 +3438,18 @@ func (m *Object_StreamBlob) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if vtmsg, ok := m.Payload.(interface { - MarshalToSizedBufferVT([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if m.Config != nil { + size, err := m.Config.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 } - return len(dAtA) - i, nil -} - -func (m *Object_StreamBlob_Blob) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) -} - -func (m *Object_StreamBlob_Blob) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Blob != nil { - size, err := m.Blob.MarshalToSizedBufferVT(dAtA[:i]) + if m.Vector != nil { + size, err := m.Vector.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -2484,38 +3460,8 @@ func (m *Object_StreamBlob_Blob) MarshalToSizedBufferVT(dAtA []byte) (int, error } return len(dAtA) - i, nil } -func (m *Object_StreamBlob_Status) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) -} -func (m *Object_StreamBlob_Status) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Status != nil { - if vtmsg, ok := interface{}(m.Status).(interface { - MarshalToSizedBufferVT([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - } else { - encoded, err := proto.Marshal(m.Status) - if err != nil { - return 0, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = encodeVarint(dAtA, i, uint64(len(encoded))) - } - i-- - dAtA[i] = 0x12 - } - return len(dAtA) - i, nil -} -func (m *Object_Location) MarshalVT() (dAtA []byte, err error) { +func (m *Upsert_MultiRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2528,12 +3474,12 @@ func (m *Object_Location) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Object_Location) MarshalToVT(dAtA []byte) (int, error) { +func (m *Upsert_MultiRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Object_Location) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Upsert_MultiRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2545,33 +3491,22 @@ func (m *Object_Location) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Ips) > 0 { - for iNdEx := len(m.Ips) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Ips[iNdEx]) - copy(dAtA[i:], m.Ips[iNdEx]) - i = encodeVarint(dAtA, i, uint64(len(m.Ips[iNdEx]))) + if len(m.Requests) > 0 { + for iNdEx := len(m.Requests) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Requests[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x1a + dAtA[i] = 0xa } } - if len(m.Uuid) > 0 { - i -= len(m.Uuid) - copy(dAtA[i:], m.Uuid) - i = encodeVarint(dAtA, i, uint64(len(m.Uuid))) - i-- - dAtA[i] = 0x12 - } - if len(m.Name) > 0 { - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarint(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } -func (m *Object_StreamLocation) MarshalVT() (dAtA []byte, err error) { +func (m *Upsert_ObjectRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2584,12 +3519,12 @@ func (m *Object_StreamLocation) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Object_StreamLocation) MarshalToVT(dAtA []byte) (int, error) { +func (m *Upsert_ObjectRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Object_StreamLocation) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Upsert_ObjectRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2601,69 +3536,40 @@ func (m *Object_StreamLocation) MarshalToSizedBufferVT(dAtA []byte) (int, error) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if vtmsg, ok := m.Payload.(interface { - MarshalToSizedBufferVT([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if m.Vectorizer != nil { + size, err := m.Vectorizer.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a } - return len(dAtA) - i, nil -} - -func (m *Object_StreamLocation_Location) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) -} - -func (m *Object_StreamLocation_Location) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Location != nil { - size, err := m.Location.MarshalToSizedBufferVT(dAtA[:i]) + if m.Config != nil { + size, err := m.Config.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = encodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0xa + dAtA[i] = 0x12 } - return len(dAtA) - i, nil -} -func (m *Object_StreamLocation_Status) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) -} - -func (m *Object_StreamLocation_Status) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Status != nil { - if vtmsg, ok := interface{}(m.Status).(interface { - MarshalToSizedBufferVT([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - } else { - encoded, err := proto.Marshal(m.Status) - if err != nil { - return 0, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = encodeVarint(dAtA, i, uint64(len(encoded))) + if m.Object != nil { + size, err := m.Object.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x12 + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *Object_Locations) MarshalVT() (dAtA []byte, err error) { + +func (m *Upsert_MultiObjectRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2676,12 +3582,12 @@ func (m *Object_Locations) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Object_Locations) MarshalToVT(dAtA []byte) (int, error) { +func (m *Upsert_MultiObjectRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Object_Locations) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Upsert_MultiObjectRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2693,9 +3599,9 @@ func (m *Object_Locations) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Locations) > 0 { - for iNdEx := len(m.Locations) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Locations[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if len(m.Requests) > 0 { + for iNdEx := len(m.Requests) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Requests[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -2708,7 +3614,7 @@ func (m *Object_Locations) MarshalToSizedBufferVT(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *Object) MarshalVT() (dAtA []byte, err error) { +func (m *Upsert_Config) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2721,12 +3627,12 @@ func (m *Object) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Object) MarshalToVT(dAtA []byte) (int, error) { +func (m *Upsert_Config) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Object) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Upsert_Config) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2738,48 +3644,45 @@ func (m *Object) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - return len(dAtA) - i, nil -} - -func (m *Control_CreateIndexRequest) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil - } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err + if m.DisableBalancedUpdate { + i-- + if m.DisableBalancedUpdate { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 } - return dAtA[:n], nil -} - -func (m *Control_CreateIndexRequest) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) -} - -func (m *Control_CreateIndexRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil + if m.Timestamp != 0 { + i = encodeVarint(dAtA, i, uint64(m.Timestamp)) + i-- + dAtA[i] = 0x18 } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + if m.Filters != nil { + size, err := m.Filters.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 } - if m.PoolSize != 0 { - i = encodeVarint(dAtA, i, uint64(m.PoolSize)) + if m.SkipStrictExistCheck { + i-- + if m.SkipStrictExistCheck { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } i-- dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func (m *Control) MarshalVT() (dAtA []byte, err error) { +func (m *Upsert) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2792,12 +3695,12 @@ func (m *Control) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Control) MarshalToVT(dAtA []byte) (int, error) { +func (m *Upsert) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Control) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Upsert) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2812,7 +3715,7 @@ func (m *Control) MarshalToSizedBufferVT(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *Discoverer_Request) MarshalVT() (dAtA []byte, err error) { +func (m *Remove_Request) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2825,12 +3728,12 @@ func (m *Discoverer_Request) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Discoverer_Request) MarshalToVT(dAtA []byte) (int, error) { +func (m *Remove_Request) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Discoverer_Request) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Remove_Request) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2842,31 +3745,30 @@ func (m *Discoverer_Request) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Node) > 0 { - i -= len(m.Node) - copy(dAtA[i:], m.Node) - i = encodeVarint(dAtA, i, uint64(len(m.Node))) - i-- - dAtA[i] = 0x1a - } - if len(m.Namespace) > 0 { - i -= len(m.Namespace) - copy(dAtA[i:], m.Namespace) - i = encodeVarint(dAtA, i, uint64(len(m.Namespace))) + if m.Config != nil { + size, err := m.Config.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) i-- dAtA[i] = 0x12 } - if len(m.Name) > 0 { - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarint(dAtA, i, uint64(len(m.Name))) + if m.Id != nil { + size, err := m.Id.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *Discoverer) MarshalVT() (dAtA []byte, err error) { +func (m *Remove_MultiRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2879,12 +3781,12 @@ func (m *Discoverer) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Discoverer) MarshalToVT(dAtA []byte) (int, error) { +func (m *Remove_MultiRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Discoverer) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Remove_MultiRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2896,10 +3798,22 @@ func (m *Discoverer) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if len(m.Requests) > 0 { + for iNdEx := len(m.Requests) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Requests[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } return len(dAtA) - i, nil } -func (m *Info_Index_Count) MarshalVT() (dAtA []byte, err error) { +func (m *Remove_Config) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2912,12 +3826,12 @@ func (m *Info_Index_Count) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Info_Index_Count) MarshalToVT(dAtA []byte) (int, error) { +func (m *Remove_Config) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Info_Index_Count) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Remove_Config) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2929,40 +3843,25 @@ func (m *Info_Index_Count) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Saving { - i-- - if m.Saving { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } + if m.Timestamp != 0 { + i = encodeVarint(dAtA, i, uint64(m.Timestamp)) i-- - dAtA[i] = 0x20 + dAtA[i] = 0x18 } - if m.Indexing { + if m.SkipStrictExistCheck { i-- - if m.Indexing { + if m.SkipStrictExistCheck { dAtA[i] = 1 } else { dAtA[i] = 0 } i-- - dAtA[i] = 0x18 - } - if m.Uncommitted != 0 { - i = encodeVarint(dAtA, i, uint64(m.Uncommitted)) - i-- - dAtA[i] = 0x10 - } - if m.Stored != 0 { - i = encodeVarint(dAtA, i, uint64(m.Stored)) - i-- dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func (m *Info_Index_UUID_Committed) MarshalVT() (dAtA []byte, err error) { +func (m *Remove) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2975,12 +3874,12 @@ func (m *Info_Index_UUID_Committed) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Info_Index_UUID_Committed) MarshalToVT(dAtA []byte) (int, error) { +func (m *Remove) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Info_Index_UUID_Committed) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Remove) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2992,17 +3891,10 @@ func (m *Info_Index_UUID_Committed) MarshalToSizedBufferVT(dAtA []byte) (int, er i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Uuid) > 0 { - i -= len(m.Uuid) - copy(dAtA[i:], m.Uuid) - i = encodeVarint(dAtA, i, uint64(len(m.Uuid))) - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } -func (m *Info_Index_UUID_Uncommitted) MarshalVT() (dAtA []byte, err error) { +func (m *Object_VectorRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3015,12 +3907,12 @@ func (m *Info_Index_UUID_Uncommitted) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Info_Index_UUID_Uncommitted) MarshalToVT(dAtA []byte) (int, error) { +func (m *Object_VectorRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Info_Index_UUID_Uncommitted) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Object_VectorRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3032,17 +3924,30 @@ func (m *Info_Index_UUID_Uncommitted) MarshalToSizedBufferVT(dAtA []byte) (int, i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Uuid) > 0 { - i -= len(m.Uuid) - copy(dAtA[i:], m.Uuid) - i = encodeVarint(dAtA, i, uint64(len(m.Uuid))) + if m.Filters != nil { + size, err := m.Filters.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if m.Id != nil { + size, err := m.Id.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *Info_Index_UUID) MarshalVT() (dAtA []byte, err error) { +func (m *Object_Distance) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3055,12 +3960,12 @@ func (m *Info_Index_UUID) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Info_Index_UUID) MarshalToVT(dAtA []byte) (int, error) { +func (m *Object_Distance) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Info_Index_UUID) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Object_Distance) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3072,10 +3977,23 @@ func (m *Info_Index_UUID) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.Distance != 0 { + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.Distance)))) + i-- + dAtA[i] = 0x15 + } + if len(m.Id) > 0 { + i -= len(m.Id) + copy(dAtA[i:], m.Id) + i = encodeVarint(dAtA, i, uint64(len(m.Id))) + i-- + dAtA[i] = 0xa + } return len(dAtA) - i, nil } -func (m *Info_Index) MarshalVT() (dAtA []byte, err error) { +func (m *Object_StreamDistance) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3088,12 +4006,12 @@ func (m *Info_Index) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Info_Index) MarshalToVT(dAtA []byte) (int, error) { +func (m *Object_StreamDistance) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Info_Index) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Object_StreamDistance) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3105,101 +4023,69 @@ func (m *Info_Index) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - return len(dAtA) - i, nil -} - -func (m *Info_Pod) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil - } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err + if vtmsg, ok := m.Payload.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size } - return dAtA[:n], nil + return len(dAtA) - i, nil } -func (m *Info_Pod) MarshalToVT(dAtA []byte) (int, error) { +func (m *Object_StreamDistance_Distance) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Info_Pod) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil - } +func (m *Object_StreamDistance_Distance) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) - } - if m.Node != nil { - size, err := m.Node.MarshalToSizedBufferVT(dAtA[:i]) + if m.Distance != nil { + size, err := m.Distance.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = encodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x3a + dAtA[i] = 0xa } - if m.Memory != nil { - size, err := m.Memory.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x32 - } - if m.Cpu != nil { - size, err := m.Cpu.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err + return len(dAtA) - i, nil +} +func (m *Object_StreamDistance_Status) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Object_StreamDistance_Status) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Status != nil { + if vtmsg, ok := interface{}(m.Status).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Status) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = encodeVarint(dAtA, i, uint64(len(encoded))) } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x2a - } - if len(m.Ip) > 0 { - i -= len(m.Ip) - copy(dAtA[i:], m.Ip) - i = encodeVarint(dAtA, i, uint64(len(m.Ip))) - i-- - dAtA[i] = 0x22 - } - if len(m.Namespace) > 0 { - i -= len(m.Namespace) - copy(dAtA[i:], m.Namespace) - i = encodeVarint(dAtA, i, uint64(len(m.Namespace))) - i-- - dAtA[i] = 0x1a - } - if len(m.Name) > 0 { - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarint(dAtA, i, uint64(len(m.Name))) i-- dAtA[i] = 0x12 } - if len(m.AppName) > 0 { - i -= len(m.AppName) - copy(dAtA[i:], m.AppName) - i = encodeVarint(dAtA, i, uint64(len(m.AppName))) - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } - -func (m *Info_Node) MarshalVT() (dAtA []byte, err error) { +func (m *Object_ID) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3212,12 +4098,12 @@ func (m *Info_Node) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Info_Node) MarshalToVT(dAtA []byte) (int, error) { +func (m *Object_ID) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Info_Node) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Object_ID) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3229,61 +4115,17 @@ func (m *Info_Node) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Pods != nil { - size, err := m.Pods.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x32 - } - if m.Memory != nil { - size, err := m.Memory.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x2a - } - if m.Cpu != nil { - size, err := m.Cpu.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x22 - } - if len(m.ExternalAddr) > 0 { - i -= len(m.ExternalAddr) - copy(dAtA[i:], m.ExternalAddr) - i = encodeVarint(dAtA, i, uint64(len(m.ExternalAddr))) - i-- - dAtA[i] = 0x1a - } - if len(m.InternalAddr) > 0 { - i -= len(m.InternalAddr) - copy(dAtA[i:], m.InternalAddr) - i = encodeVarint(dAtA, i, uint64(len(m.InternalAddr))) - i-- - dAtA[i] = 0x12 - } - if len(m.Name) > 0 { - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarint(dAtA, i, uint64(len(m.Name))) + if len(m.Id) > 0 { + i -= len(m.Id) + copy(dAtA[i:], m.Id) + i = encodeVarint(dAtA, i, uint64(len(m.Id))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *Info_CPU) MarshalVT() (dAtA []byte, err error) { +func (m *Object_IDs) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3296,12 +4138,12 @@ func (m *Info_CPU) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Info_CPU) MarshalToVT(dAtA []byte) (int, error) { +func (m *Object_IDs) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Info_CPU) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Object_IDs) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3313,28 +4155,19 @@ func (m *Info_CPU) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Usage != 0 { - i -= 8 - binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Usage)))) - i-- - dAtA[i] = 0x19 - } - if m.Request != 0 { - i -= 8 - binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Request)))) - i-- - dAtA[i] = 0x11 - } - if m.Limit != 0 { - i -= 8 - binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Limit)))) - i-- - dAtA[i] = 0x9 + if len(m.Ids) > 0 { + for iNdEx := len(m.Ids) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Ids[iNdEx]) + copy(dAtA[i:], m.Ids[iNdEx]) + i = encodeVarint(dAtA, i, uint64(len(m.Ids[iNdEx]))) + i-- + dAtA[i] = 0xa + } } return len(dAtA) - i, nil } -func (m *Info_Memory) MarshalVT() (dAtA []byte, err error) { +func (m *Object_Vector) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3347,12 +4180,12 @@ func (m *Info_Memory) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Info_Memory) MarshalToVT(dAtA []byte) (int, error) { +func (m *Object_Vector) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Info_Memory) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Object_Vector) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3364,28 +4197,27 @@ func (m *Info_Memory) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Usage != 0 { - i -= 8 - binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Usage)))) - i-- - dAtA[i] = 0x19 - } - if m.Request != 0 { - i -= 8 - binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Request)))) + if len(m.Vector) > 0 { + for iNdEx := len(m.Vector) - 1; iNdEx >= 0; iNdEx-- { + f1 := math.Float32bits(float32(m.Vector[iNdEx])) + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(f1)) + } + i = encodeVarint(dAtA, i, uint64(len(m.Vector)*4)) i-- - dAtA[i] = 0x11 + dAtA[i] = 0x12 } - if m.Limit != 0 { - i -= 8 - binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Limit)))) + if len(m.Id) > 0 { + i -= len(m.Id) + copy(dAtA[i:], m.Id) + i = encodeVarint(dAtA, i, uint64(len(m.Id))) i-- - dAtA[i] = 0x9 + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *Info_Pods) MarshalVT() (dAtA []byte, err error) { +func (m *Object_Vectors) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3398,12 +4230,12 @@ func (m *Info_Pods) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Info_Pods) MarshalToVT(dAtA []byte) (int, error) { +func (m *Object_Vectors) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *Info_Pods) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *Object_Vectors) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3415,9 +4247,9 @@ func (m *Info_Pods) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Pods) > 0 { - for iNdEx := len(m.Pods) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Pods[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if len(m.Vectors) > 0 { + for iNdEx := len(m.Vectors) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Vectors[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -3427,172 +4259,2641 @@ func (m *Info_Pods) MarshalToSizedBufferVT(dAtA []byte) (int, error) { dAtA[i] = 0xa } } - return len(dAtA) - i, nil + return len(dAtA) - i, nil +} + +func (m *Object_StreamVector) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Object_StreamVector) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Object_StreamVector) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.Payload.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + return len(dAtA) - i, nil +} + +func (m *Object_StreamVector_Vector) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Object_StreamVector_Vector) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Vector != nil { + size, err := m.Vector.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *Object_StreamVector_Status) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Object_StreamVector_Status) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Status != nil { + if vtmsg, ok := interface{}(m.Status).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Status) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = encodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *Object_ReshapeVector) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Object_ReshapeVector) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Object_ReshapeVector) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Shape) > 0 { + var pksize2 int + for _, num := range m.Shape { + pksize2 += sov(uint64(num)) + } + i -= pksize2 + j1 := i + for _, num1 := range m.Shape { + num := uint64(num1) + for num >= 1<<7 { + dAtA[j1] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j1++ + } + dAtA[j1] = uint8(num) + j1++ + } + i = encodeVarint(dAtA, i, uint64(pksize2)) + i-- + dAtA[i] = 0x12 + } + if len(m.Object) > 0 { + i -= len(m.Object) + copy(dAtA[i:], m.Object) + i = encodeVarint(dAtA, i, uint64(len(m.Object))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Object_Blob) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Object_Blob) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Object_Blob) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Object) > 0 { + i -= len(m.Object) + copy(dAtA[i:], m.Object) + i = encodeVarint(dAtA, i, uint64(len(m.Object))) + i-- + dAtA[i] = 0x12 + } + if len(m.Id) > 0 { + i -= len(m.Id) + copy(dAtA[i:], m.Id) + i = encodeVarint(dAtA, i, uint64(len(m.Id))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Object_StreamBlob) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Object_StreamBlob) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Object_StreamBlob) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.Payload.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + return len(dAtA) - i, nil +} + +func (m *Object_StreamBlob_Blob) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Object_StreamBlob_Blob) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Blob != nil { + size, err := m.Blob.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *Object_StreamBlob_Status) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Object_StreamBlob_Status) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Status != nil { + if vtmsg, ok := interface{}(m.Status).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Status) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = encodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *Object_Location) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Object_Location) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Object_Location) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Ips) > 0 { + for iNdEx := len(m.Ips) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Ips[iNdEx]) + copy(dAtA[i:], m.Ips[iNdEx]) + i = encodeVarint(dAtA, i, uint64(len(m.Ips[iNdEx]))) + i-- + dAtA[i] = 0x1a + } + } + if len(m.Uuid) > 0 { + i -= len(m.Uuid) + copy(dAtA[i:], m.Uuid) + i = encodeVarint(dAtA, i, uint64(len(m.Uuid))) + i-- + dAtA[i] = 0x12 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Object_StreamLocation) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Object_StreamLocation) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Object_StreamLocation) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.Payload.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + } + return len(dAtA) - i, nil +} + +func (m *Object_StreamLocation_Location) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Object_StreamLocation_Location) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Location != nil { + size, err := m.Location.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *Object_StreamLocation_Status) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Object_StreamLocation_Status) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Status != nil { + if vtmsg, ok := interface{}(m.Status).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Status) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = encodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *Object_Locations) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Object_Locations) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Object_Locations) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Locations) > 0 { + for iNdEx := len(m.Locations) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Locations[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *Object) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Object) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Object) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + +func (m *Control_CreateIndexRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Control_CreateIndexRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Control_CreateIndexRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.PoolSize != 0 { + i = encodeVarint(dAtA, i, uint64(m.PoolSize)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *Control) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Control) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Control) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + +func (m *Discoverer_Request) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Discoverer_Request) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Discoverer_Request) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Node) > 0 { + i -= len(m.Node) + copy(dAtA[i:], m.Node) + i = encodeVarint(dAtA, i, uint64(len(m.Node))) + i-- + dAtA[i] = 0x1a + } + if len(m.Namespace) > 0 { + i -= len(m.Namespace) + copy(dAtA[i:], m.Namespace) + i = encodeVarint(dAtA, i, uint64(len(m.Namespace))) + i-- + dAtA[i] = 0x12 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Discoverer) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Discoverer) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Discoverer) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + +func (m *Info_Index_Count) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Info_Index_Count) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Info_Index_Count) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Saving { + i-- + if m.Saving { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + } + if m.Indexing { + i-- + if m.Indexing { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if m.Uncommitted != 0 { + i = encodeVarint(dAtA, i, uint64(m.Uncommitted)) + i-- + dAtA[i] = 0x10 + } + if m.Stored != 0 { + i = encodeVarint(dAtA, i, uint64(m.Stored)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *Info_Index_UUID_Committed) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Info_Index_UUID_Committed) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Info_Index_UUID_Committed) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Uuid) > 0 { + i -= len(m.Uuid) + copy(dAtA[i:], m.Uuid) + i = encodeVarint(dAtA, i, uint64(len(m.Uuid))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Info_Index_UUID_Uncommitted) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Info_Index_UUID_Uncommitted) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Info_Index_UUID_Uncommitted) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Uuid) > 0 { + i -= len(m.Uuid) + copy(dAtA[i:], m.Uuid) + i = encodeVarint(dAtA, i, uint64(len(m.Uuid))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Info_Index_UUID) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Info_Index_UUID) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Info_Index_UUID) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + +func (m *Info_Index) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Info_Index) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Info_Index) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + +func (m *Info_Pod) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Info_Pod) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Info_Pod) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Node != nil { + size, err := m.Node.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x3a + } + if m.Memory != nil { + size, err := m.Memory.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + if m.Cpu != nil { + size, err := m.Cpu.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + if len(m.Ip) > 0 { + i -= len(m.Ip) + copy(dAtA[i:], m.Ip) + i = encodeVarint(dAtA, i, uint64(len(m.Ip))) + i-- + dAtA[i] = 0x22 + } + if len(m.Namespace) > 0 { + i -= len(m.Namespace) + copy(dAtA[i:], m.Namespace) + i = encodeVarint(dAtA, i, uint64(len(m.Namespace))) + i-- + dAtA[i] = 0x1a + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x12 + } + if len(m.AppName) > 0 { + i -= len(m.AppName) + copy(dAtA[i:], m.AppName) + i = encodeVarint(dAtA, i, uint64(len(m.AppName))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Info_Node) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Info_Node) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Info_Node) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Pods != nil { + size, err := m.Pods.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x32 + } + if m.Memory != nil { + size, err := m.Memory.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + if m.Cpu != nil { + size, err := m.Cpu.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + if len(m.ExternalAddr) > 0 { + i -= len(m.ExternalAddr) + copy(dAtA[i:], m.ExternalAddr) + i = encodeVarint(dAtA, i, uint64(len(m.ExternalAddr))) + i-- + dAtA[i] = 0x1a + } + if len(m.InternalAddr) > 0 { + i -= len(m.InternalAddr) + copy(dAtA[i:], m.InternalAddr) + i = encodeVarint(dAtA, i, uint64(len(m.InternalAddr))) + i-- + dAtA[i] = 0x12 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Info_CPU) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Info_CPU) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Info_CPU) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Usage != 0 { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Usage)))) + i-- + dAtA[i] = 0x19 + } + if m.Request != 0 { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Request)))) + i-- + dAtA[i] = 0x11 + } + if m.Limit != 0 { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Limit)))) + i-- + dAtA[i] = 0x9 + } + return len(dAtA) - i, nil +} + +func (m *Info_Memory) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Info_Memory) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Info_Memory) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Usage != 0 { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Usage)))) + i-- + dAtA[i] = 0x19 + } + if m.Request != 0 { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Request)))) + i-- + dAtA[i] = 0x11 + } + if m.Limit != 0 { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.Limit)))) + i-- + dAtA[i] = 0x9 + } + return len(dAtA) - i, nil +} + +func (m *Info_Pods) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Info_Pods) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Info_Pods) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Pods) > 0 { + for iNdEx := len(m.Pods) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Pods[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *Info_Nodes) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Info_Nodes) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Info_Nodes) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Nodes) > 0 { + for iNdEx := len(m.Nodes) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Nodes[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *Info_IPs) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Info_IPs) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Info_IPs) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.Ip) > 0 { + for iNdEx := len(m.Ip) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Ip[iNdEx]) + copy(dAtA[i:], m.Ip[iNdEx]) + i = encodeVarint(dAtA, i, uint64(len(m.Ip[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *Info) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Info) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Info) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + +func (m *Empty) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Empty) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *Empty) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + return len(dAtA) - i, nil +} + +func encodeVarint(dAtA []byte, offset int, v uint64) int { + offset -= sov(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} + +var vtprotoPool_Search_Request = sync.Pool{ + New: func() interface{} { + return &Search_Request{} + }, +} + +func (m *Search_Request) ResetVT() { + f0 := m.Vector[:0] + m.Config.ReturnToVTPool() + m.Reset() + m.Vector = f0 +} +func (m *Search_Request) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Search_Request.Put(m) + } +} +func Search_RequestFromVTPool() *Search_Request { + return vtprotoPool_Search_Request.Get().(*Search_Request) +} + +var vtprotoPool_Search_MultiRequest = sync.Pool{ + New: func() interface{} { + return &Search_MultiRequest{} + }, +} + +func (m *Search_MultiRequest) ResetVT() { + for _, mm := range m.Requests { + mm.ResetVT() + } + m.Reset() +} +func (m *Search_MultiRequest) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Search_MultiRequest.Put(m) + } +} +func Search_MultiRequestFromVTPool() *Search_MultiRequest { + return vtprotoPool_Search_MultiRequest.Get().(*Search_MultiRequest) +} + +var vtprotoPool_Search_IDRequest = sync.Pool{ + New: func() interface{} { + return &Search_IDRequest{} + }, +} + +func (m *Search_IDRequest) ResetVT() { + m.Config.ReturnToVTPool() + m.Reset() +} +func (m *Search_IDRequest) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Search_IDRequest.Put(m) + } +} +func Search_IDRequestFromVTPool() *Search_IDRequest { + return vtprotoPool_Search_IDRequest.Get().(*Search_IDRequest) +} + +var vtprotoPool_Search_MultiIDRequest = sync.Pool{ + New: func() interface{} { + return &Search_MultiIDRequest{} + }, +} + +func (m *Search_MultiIDRequest) ResetVT() { + for _, mm := range m.Requests { + mm.ResetVT() + } + m.Reset() +} +func (m *Search_MultiIDRequest) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Search_MultiIDRequest.Put(m) + } +} +func Search_MultiIDRequestFromVTPool() *Search_MultiIDRequest { + return vtprotoPool_Search_MultiIDRequest.Get().(*Search_MultiIDRequest) +} + +var vtprotoPool_Search_ObjectRequest = sync.Pool{ + New: func() interface{} { + return &Search_ObjectRequest{} + }, +} + +func (m *Search_ObjectRequest) ResetVT() { + f0 := m.Object[:0] + m.Config.ReturnToVTPool() + m.Vectorizer.ReturnToVTPool() + m.Reset() + m.Object = f0 +} +func (m *Search_ObjectRequest) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Search_ObjectRequest.Put(m) + } +} +func Search_ObjectRequestFromVTPool() *Search_ObjectRequest { + return vtprotoPool_Search_ObjectRequest.Get().(*Search_ObjectRequest) +} + +var vtprotoPool_Search_MultiObjectRequest = sync.Pool{ + New: func() interface{} { + return &Search_MultiObjectRequest{} + }, +} + +func (m *Search_MultiObjectRequest) ResetVT() { + for _, mm := range m.Requests { + mm.ResetVT() + } + m.Reset() +} +func (m *Search_MultiObjectRequest) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Search_MultiObjectRequest.Put(m) + } +} +func Search_MultiObjectRequestFromVTPool() *Search_MultiObjectRequest { + return vtprotoPool_Search_MultiObjectRequest.Get().(*Search_MultiObjectRequest) +} + +var vtprotoPool_Search_Config = sync.Pool{ + New: func() interface{} { + return &Search_Config{} + }, +} + +func (m *Search_Config) ResetVT() { + m.IngressFilters.ReturnToVTPool() + m.EgressFilters.ReturnToVTPool() + m.Reset() +} +func (m *Search_Config) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Search_Config.Put(m) + } +} +func Search_ConfigFromVTPool() *Search_Config { + return vtprotoPool_Search_Config.Get().(*Search_Config) +} + +var vtprotoPool_Search_Response = sync.Pool{ + New: func() interface{} { + return &Search_Response{} + }, +} + +func (m *Search_Response) ResetVT() { + for _, mm := range m.Results { + mm.ResetVT() + } + m.Reset() +} +func (m *Search_Response) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Search_Response.Put(m) + } +} +func Search_ResponseFromVTPool() *Search_Response { + return vtprotoPool_Search_Response.Get().(*Search_Response) +} + +var vtprotoPool_Search_Responses = sync.Pool{ + New: func() interface{} { + return &Search_Responses{} + }, +} + +func (m *Search_Responses) ResetVT() { + for _, mm := range m.Responses { + mm.ResetVT() + } + m.Reset() +} +func (m *Search_Responses) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Search_Responses.Put(m) + } +} +func Search_ResponsesFromVTPool() *Search_Responses { + return vtprotoPool_Search_Responses.Get().(*Search_Responses) +} + +var vtprotoPool_Search = sync.Pool{ + New: func() interface{} { + return &Search{} + }, +} + +func (m *Search) ResetVT() { + m.Reset() +} +func (m *Search) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Search.Put(m) + } +} +func SearchFromVTPool() *Search { + return vtprotoPool_Search.Get().(*Search) +} + +var vtprotoPool_Filter_Target = sync.Pool{ + New: func() interface{} { + return &Filter_Target{} + }, +} + +func (m *Filter_Target) ResetVT() { + m.Reset() +} +func (m *Filter_Target) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Filter_Target.Put(m) + } +} +func Filter_TargetFromVTPool() *Filter_Target { + return vtprotoPool_Filter_Target.Get().(*Filter_Target) +} + +var vtprotoPool_Filter_Config = sync.Pool{ + New: func() interface{} { + return &Filter_Config{} + }, +} + +func (m *Filter_Config) ResetVT() { + for _, mm := range m.Targets { + mm.ResetVT() + } + m.Reset() +} +func (m *Filter_Config) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Filter_Config.Put(m) + } +} +func Filter_ConfigFromVTPool() *Filter_Config { + return vtprotoPool_Filter_Config.Get().(*Filter_Config) +} + +var vtprotoPool_Filter = sync.Pool{ + New: func() interface{} { + return &Filter{} + }, +} + +func (m *Filter) ResetVT() { + m.Reset() +} +func (m *Filter) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Filter.Put(m) + } +} +func FilterFromVTPool() *Filter { + return vtprotoPool_Filter.Get().(*Filter) +} + +var vtprotoPool_Insert_Request = sync.Pool{ + New: func() interface{} { + return &Insert_Request{} + }, +} + +func (m *Insert_Request) ResetVT() { + m.Vector.ReturnToVTPool() + m.Config.ReturnToVTPool() + m.Reset() +} +func (m *Insert_Request) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Insert_Request.Put(m) + } +} +func Insert_RequestFromVTPool() *Insert_Request { + return vtprotoPool_Insert_Request.Get().(*Insert_Request) +} + +var vtprotoPool_Insert_MultiRequest = sync.Pool{ + New: func() interface{} { + return &Insert_MultiRequest{} + }, +} + +func (m *Insert_MultiRequest) ResetVT() { + for _, mm := range m.Requests { + mm.ResetVT() + } + m.Reset() +} +func (m *Insert_MultiRequest) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Insert_MultiRequest.Put(m) + } +} +func Insert_MultiRequestFromVTPool() *Insert_MultiRequest { + return vtprotoPool_Insert_MultiRequest.Get().(*Insert_MultiRequest) +} + +var vtprotoPool_Insert_ObjectRequest = sync.Pool{ + New: func() interface{} { + return &Insert_ObjectRequest{} + }, +} + +func (m *Insert_ObjectRequest) ResetVT() { + m.Object.ReturnToVTPool() + m.Config.ReturnToVTPool() + m.Vectorizer.ReturnToVTPool() + m.Reset() +} +func (m *Insert_ObjectRequest) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Insert_ObjectRequest.Put(m) + } +} +func Insert_ObjectRequestFromVTPool() *Insert_ObjectRequest { + return vtprotoPool_Insert_ObjectRequest.Get().(*Insert_ObjectRequest) +} + +var vtprotoPool_Insert_MultiObjectRequest = sync.Pool{ + New: func() interface{} { + return &Insert_MultiObjectRequest{} + }, +} + +func (m *Insert_MultiObjectRequest) ResetVT() { + for _, mm := range m.Requests { + mm.ResetVT() + } + m.Reset() +} +func (m *Insert_MultiObjectRequest) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Insert_MultiObjectRequest.Put(m) + } +} +func Insert_MultiObjectRequestFromVTPool() *Insert_MultiObjectRequest { + return vtprotoPool_Insert_MultiObjectRequest.Get().(*Insert_MultiObjectRequest) +} + +var vtprotoPool_Insert_Config = sync.Pool{ + New: func() interface{} { + return &Insert_Config{} + }, +} + +func (m *Insert_Config) ResetVT() { + m.Filters.ReturnToVTPool() + m.Reset() +} +func (m *Insert_Config) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Insert_Config.Put(m) + } +} +func Insert_ConfigFromVTPool() *Insert_Config { + return vtprotoPool_Insert_Config.Get().(*Insert_Config) +} + +var vtprotoPool_Insert = sync.Pool{ + New: func() interface{} { + return &Insert{} + }, +} + +func (m *Insert) ResetVT() { + m.Reset() +} +func (m *Insert) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Insert.Put(m) + } +} +func InsertFromVTPool() *Insert { + return vtprotoPool_Insert.Get().(*Insert) +} + +var vtprotoPool_Update_Request = sync.Pool{ + New: func() interface{} { + return &Update_Request{} + }, +} + +func (m *Update_Request) ResetVT() { + m.Vector.ReturnToVTPool() + m.Config.ReturnToVTPool() + m.Reset() +} +func (m *Update_Request) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Update_Request.Put(m) + } +} +func Update_RequestFromVTPool() *Update_Request { + return vtprotoPool_Update_Request.Get().(*Update_Request) +} + +var vtprotoPool_Update_MultiRequest = sync.Pool{ + New: func() interface{} { + return &Update_MultiRequest{} + }, +} + +func (m *Update_MultiRequest) ResetVT() { + for _, mm := range m.Requests { + mm.ResetVT() + } + m.Reset() +} +func (m *Update_MultiRequest) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Update_MultiRequest.Put(m) + } +} +func Update_MultiRequestFromVTPool() *Update_MultiRequest { + return vtprotoPool_Update_MultiRequest.Get().(*Update_MultiRequest) +} + +var vtprotoPool_Update_ObjectRequest = sync.Pool{ + New: func() interface{} { + return &Update_ObjectRequest{} + }, +} + +func (m *Update_ObjectRequest) ResetVT() { + m.Object.ReturnToVTPool() + m.Config.ReturnToVTPool() + m.Vectorizer.ReturnToVTPool() + m.Reset() +} +func (m *Update_ObjectRequest) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Update_ObjectRequest.Put(m) + } +} +func Update_ObjectRequestFromVTPool() *Update_ObjectRequest { + return vtprotoPool_Update_ObjectRequest.Get().(*Update_ObjectRequest) +} + +var vtprotoPool_Update_MultiObjectRequest = sync.Pool{ + New: func() interface{} { + return &Update_MultiObjectRequest{} + }, +} + +func (m *Update_MultiObjectRequest) ResetVT() { + for _, mm := range m.Requests { + mm.ResetVT() + } + m.Reset() +} +func (m *Update_MultiObjectRequest) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Update_MultiObjectRequest.Put(m) + } +} +func Update_MultiObjectRequestFromVTPool() *Update_MultiObjectRequest { + return vtprotoPool_Update_MultiObjectRequest.Get().(*Update_MultiObjectRequest) +} + +var vtprotoPool_Update_Config = sync.Pool{ + New: func() interface{} { + return &Update_Config{} + }, +} + +func (m *Update_Config) ResetVT() { + m.Filters.ReturnToVTPool() + m.Reset() +} +func (m *Update_Config) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Update_Config.Put(m) + } +} +func Update_ConfigFromVTPool() *Update_Config { + return vtprotoPool_Update_Config.Get().(*Update_Config) +} + +var vtprotoPool_Update = sync.Pool{ + New: func() interface{} { + return &Update{} + }, +} + +func (m *Update) ResetVT() { + m.Reset() +} +func (m *Update) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Update.Put(m) + } +} +func UpdateFromVTPool() *Update { + return vtprotoPool_Update.Get().(*Update) +} + +var vtprotoPool_Upsert_Request = sync.Pool{ + New: func() interface{} { + return &Upsert_Request{} + }, +} + +func (m *Upsert_Request) ResetVT() { + m.Vector.ReturnToVTPool() + m.Config.ReturnToVTPool() + m.Reset() +} +func (m *Upsert_Request) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Upsert_Request.Put(m) + } +} +func Upsert_RequestFromVTPool() *Upsert_Request { + return vtprotoPool_Upsert_Request.Get().(*Upsert_Request) +} + +var vtprotoPool_Upsert_MultiRequest = sync.Pool{ + New: func() interface{} { + return &Upsert_MultiRequest{} + }, +} + +func (m *Upsert_MultiRequest) ResetVT() { + for _, mm := range m.Requests { + mm.ResetVT() + } + m.Reset() +} +func (m *Upsert_MultiRequest) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Upsert_MultiRequest.Put(m) + } +} +func Upsert_MultiRequestFromVTPool() *Upsert_MultiRequest { + return vtprotoPool_Upsert_MultiRequest.Get().(*Upsert_MultiRequest) +} + +var vtprotoPool_Upsert_ObjectRequest = sync.Pool{ + New: func() interface{} { + return &Upsert_ObjectRequest{} + }, +} + +func (m *Upsert_ObjectRequest) ResetVT() { + m.Object.ReturnToVTPool() + m.Config.ReturnToVTPool() + m.Vectorizer.ReturnToVTPool() + m.Reset() +} +func (m *Upsert_ObjectRequest) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Upsert_ObjectRequest.Put(m) + } +} +func Upsert_ObjectRequestFromVTPool() *Upsert_ObjectRequest { + return vtprotoPool_Upsert_ObjectRequest.Get().(*Upsert_ObjectRequest) +} + +var vtprotoPool_Upsert_MultiObjectRequest = sync.Pool{ + New: func() interface{} { + return &Upsert_MultiObjectRequest{} + }, +} + +func (m *Upsert_MultiObjectRequest) ResetVT() { + for _, mm := range m.Requests { + mm.ResetVT() + } + m.Reset() +} +func (m *Upsert_MultiObjectRequest) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Upsert_MultiObjectRequest.Put(m) + } +} +func Upsert_MultiObjectRequestFromVTPool() *Upsert_MultiObjectRequest { + return vtprotoPool_Upsert_MultiObjectRequest.Get().(*Upsert_MultiObjectRequest) +} + +var vtprotoPool_Upsert_Config = sync.Pool{ + New: func() interface{} { + return &Upsert_Config{} + }, +} + +func (m *Upsert_Config) ResetVT() { + m.Filters.ReturnToVTPool() + m.Reset() +} +func (m *Upsert_Config) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Upsert_Config.Put(m) + } +} +func Upsert_ConfigFromVTPool() *Upsert_Config { + return vtprotoPool_Upsert_Config.Get().(*Upsert_Config) +} + +var vtprotoPool_Upsert = sync.Pool{ + New: func() interface{} { + return &Upsert{} + }, +} + +func (m *Upsert) ResetVT() { + m.Reset() +} +func (m *Upsert) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Upsert.Put(m) + } +} +func UpsertFromVTPool() *Upsert { + return vtprotoPool_Upsert.Get().(*Upsert) +} + +var vtprotoPool_Remove_Request = sync.Pool{ + New: func() interface{} { + return &Remove_Request{} + }, +} + +func (m *Remove_Request) ResetVT() { + m.Id.ReturnToVTPool() + m.Config.ReturnToVTPool() + m.Reset() +} +func (m *Remove_Request) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Remove_Request.Put(m) + } +} +func Remove_RequestFromVTPool() *Remove_Request { + return vtprotoPool_Remove_Request.Get().(*Remove_Request) +} + +var vtprotoPool_Remove_MultiRequest = sync.Pool{ + New: func() interface{} { + return &Remove_MultiRequest{} + }, +} + +func (m *Remove_MultiRequest) ResetVT() { + for _, mm := range m.Requests { + mm.ResetVT() + } + m.Reset() +} +func (m *Remove_MultiRequest) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Remove_MultiRequest.Put(m) + } +} +func Remove_MultiRequestFromVTPool() *Remove_MultiRequest { + return vtprotoPool_Remove_MultiRequest.Get().(*Remove_MultiRequest) +} + +var vtprotoPool_Remove_Config = sync.Pool{ + New: func() interface{} { + return &Remove_Config{} + }, +} + +func (m *Remove_Config) ResetVT() { + m.Reset() +} +func (m *Remove_Config) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Remove_Config.Put(m) + } +} +func Remove_ConfigFromVTPool() *Remove_Config { + return vtprotoPool_Remove_Config.Get().(*Remove_Config) +} + +var vtprotoPool_Remove = sync.Pool{ + New: func() interface{} { + return &Remove{} + }, +} + +func (m *Remove) ResetVT() { + m.Reset() +} +func (m *Remove) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Remove.Put(m) + } +} +func RemoveFromVTPool() *Remove { + return vtprotoPool_Remove.Get().(*Remove) +} + +var vtprotoPool_Object_VectorRequest = sync.Pool{ + New: func() interface{} { + return &Object_VectorRequest{} + }, +} + +func (m *Object_VectorRequest) ResetVT() { + m.Id.ReturnToVTPool() + m.Filters.ReturnToVTPool() + m.Reset() +} +func (m *Object_VectorRequest) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Object_VectorRequest.Put(m) + } +} +func Object_VectorRequestFromVTPool() *Object_VectorRequest { + return vtprotoPool_Object_VectorRequest.Get().(*Object_VectorRequest) +} + +var vtprotoPool_Object_Distance = sync.Pool{ + New: func() interface{} { + return &Object_Distance{} + }, +} + +func (m *Object_Distance) ResetVT() { + m.Reset() +} +func (m *Object_Distance) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Object_Distance.Put(m) + } +} +func Object_DistanceFromVTPool() *Object_Distance { + return vtprotoPool_Object_Distance.Get().(*Object_Distance) +} + +var vtprotoPool_Object_ID = sync.Pool{ + New: func() interface{} { + return &Object_ID{} + }, +} + +func (m *Object_ID) ResetVT() { + m.Reset() +} +func (m *Object_ID) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Object_ID.Put(m) + } +} +func Object_IDFromVTPool() *Object_ID { + return vtprotoPool_Object_ID.Get().(*Object_ID) +} + +var vtprotoPool_Object_IDs = sync.Pool{ + New: func() interface{} { + return &Object_IDs{} + }, +} + +func (m *Object_IDs) ResetVT() { + f0 := m.Ids[:0] + m.Reset() + m.Ids = f0 +} +func (m *Object_IDs) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Object_IDs.Put(m) + } +} +func Object_IDsFromVTPool() *Object_IDs { + return vtprotoPool_Object_IDs.Get().(*Object_IDs) +} + +var vtprotoPool_Object_Vector = sync.Pool{ + New: func() interface{} { + return &Object_Vector{} + }, +} + +func (m *Object_Vector) ResetVT() { + f0 := m.Vector[:0] + m.Reset() + m.Vector = f0 +} +func (m *Object_Vector) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Object_Vector.Put(m) + } +} +func Object_VectorFromVTPool() *Object_Vector { + return vtprotoPool_Object_Vector.Get().(*Object_Vector) +} + +var vtprotoPool_Object_Vectors = sync.Pool{ + New: func() interface{} { + return &Object_Vectors{} + }, +} + +func (m *Object_Vectors) ResetVT() { + for _, mm := range m.Vectors { + mm.ResetVT() + } + m.Reset() +} +func (m *Object_Vectors) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Object_Vectors.Put(m) + } +} +func Object_VectorsFromVTPool() *Object_Vectors { + return vtprotoPool_Object_Vectors.Get().(*Object_Vectors) +} + +var vtprotoPool_Object_ReshapeVector = sync.Pool{ + New: func() interface{} { + return &Object_ReshapeVector{} + }, +} + +func (m *Object_ReshapeVector) ResetVT() { + f0 := m.Object[:0] + f1 := m.Shape[:0] + m.Reset() + m.Object = f0 + m.Shape = f1 +} +func (m *Object_ReshapeVector) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Object_ReshapeVector.Put(m) + } +} +func Object_ReshapeVectorFromVTPool() *Object_ReshapeVector { + return vtprotoPool_Object_ReshapeVector.Get().(*Object_ReshapeVector) +} + +var vtprotoPool_Object_Blob = sync.Pool{ + New: func() interface{} { + return &Object_Blob{} + }, +} + +func (m *Object_Blob) ResetVT() { + f0 := m.Object[:0] + m.Reset() + m.Object = f0 +} +func (m *Object_Blob) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Object_Blob.Put(m) + } +} +func Object_BlobFromVTPool() *Object_Blob { + return vtprotoPool_Object_Blob.Get().(*Object_Blob) +} + +var vtprotoPool_Object_Location = sync.Pool{ + New: func() interface{} { + return &Object_Location{} + }, +} + +func (m *Object_Location) ResetVT() { + f0 := m.Ips[:0] + m.Reset() + m.Ips = f0 +} +func (m *Object_Location) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Object_Location.Put(m) + } +} +func Object_LocationFromVTPool() *Object_Location { + return vtprotoPool_Object_Location.Get().(*Object_Location) } -func (m *Info_Nodes) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil +var vtprotoPool_Object_Locations = sync.Pool{ + New: func() interface{} { + return &Object_Locations{} + }, +} + +func (m *Object_Locations) ResetVT() { + for _, mm := range m.Locations { + mm.ResetVT() } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err + m.Reset() +} +func (m *Object_Locations) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Object_Locations.Put(m) } - return dAtA[:n], nil +} +func Object_LocationsFromVTPool() *Object_Locations { + return vtprotoPool_Object_Locations.Get().(*Object_Locations) } -func (m *Info_Nodes) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) +var vtprotoPool_Object = sync.Pool{ + New: func() interface{} { + return &Object{} + }, } -func (m *Info_Nodes) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil +func (m *Object) ResetVT() { + m.Reset() +} +func (m *Object) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Object.Put(m) } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) +} +func ObjectFromVTPool() *Object { + return vtprotoPool_Object.Get().(*Object) +} + +var vtprotoPool_Control_CreateIndexRequest = sync.Pool{ + New: func() interface{} { + return &Control_CreateIndexRequest{} + }, +} + +func (m *Control_CreateIndexRequest) ResetVT() { + m.Reset() +} +func (m *Control_CreateIndexRequest) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Control_CreateIndexRequest.Put(m) } - if len(m.Nodes) > 0 { - for iNdEx := len(m.Nodes) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Nodes[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa - } +} +func Control_CreateIndexRequestFromVTPool() *Control_CreateIndexRequest { + return vtprotoPool_Control_CreateIndexRequest.Get().(*Control_CreateIndexRequest) +} + +var vtprotoPool_Control = sync.Pool{ + New: func() interface{} { + return &Control{} + }, +} + +func (m *Control) ResetVT() { + m.Reset() +} +func (m *Control) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Control.Put(m) } - return len(dAtA) - i, nil +} +func ControlFromVTPool() *Control { + return vtprotoPool_Control.Get().(*Control) } -func (m *Info_IPs) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil +var vtprotoPool_Discoverer_Request = sync.Pool{ + New: func() interface{} { + return &Discoverer_Request{} + }, +} + +func (m *Discoverer_Request) ResetVT() { + m.Reset() +} +func (m *Discoverer_Request) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Discoverer_Request.Put(m) } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err +} +func Discoverer_RequestFromVTPool() *Discoverer_Request { + return vtprotoPool_Discoverer_Request.Get().(*Discoverer_Request) +} + +var vtprotoPool_Discoverer = sync.Pool{ + New: func() interface{} { + return &Discoverer{} + }, +} + +func (m *Discoverer) ResetVT() { + m.Reset() +} +func (m *Discoverer) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Discoverer.Put(m) } - return dAtA[:n], nil +} +func DiscovererFromVTPool() *Discoverer { + return vtprotoPool_Discoverer.Get().(*Discoverer) } -func (m *Info_IPs) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) +var vtprotoPool_Info_Index_Count = sync.Pool{ + New: func() interface{} { + return &Info_Index_Count{} + }, } -func (m *Info_IPs) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil +func (m *Info_Index_Count) ResetVT() { + m.Reset() +} +func (m *Info_Index_Count) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Info_Index_Count.Put(m) } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) +} +func Info_Index_CountFromVTPool() *Info_Index_Count { + return vtprotoPool_Info_Index_Count.Get().(*Info_Index_Count) +} + +var vtprotoPool_Info_Index_UUID = sync.Pool{ + New: func() interface{} { + return &Info_Index_UUID{} + }, +} + +func (m *Info_Index_UUID) ResetVT() { + m.Reset() +} +func (m *Info_Index_UUID) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Info_Index_UUID.Put(m) } - if len(m.Ip) > 0 { - for iNdEx := len(m.Ip) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.Ip[iNdEx]) - copy(dAtA[i:], m.Ip[iNdEx]) - i = encodeVarint(dAtA, i, uint64(len(m.Ip[iNdEx]))) - i-- - dAtA[i] = 0xa - } +} +func Info_Index_UUIDFromVTPool() *Info_Index_UUID { + return vtprotoPool_Info_Index_UUID.Get().(*Info_Index_UUID) +} + +var vtprotoPool_Info_Index = sync.Pool{ + New: func() interface{} { + return &Info_Index{} + }, +} + +func (m *Info_Index) ResetVT() { + m.Reset() +} +func (m *Info_Index) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Info_Index.Put(m) } - return len(dAtA) - i, nil +} +func Info_IndexFromVTPool() *Info_Index { + return vtprotoPool_Info_Index.Get().(*Info_Index) } -func (m *Info) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil +var vtprotoPool_Info_Pod = sync.Pool{ + New: func() interface{} { + return &Info_Pod{} + }, +} + +func (m *Info_Pod) ResetVT() { + m.Cpu.ReturnToVTPool() + m.Memory.ReturnToVTPool() + m.Node.ReturnToVTPool() + m.Reset() +} +func (m *Info_Pod) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Info_Pod.Put(m) } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err +} +func Info_PodFromVTPool() *Info_Pod { + return vtprotoPool_Info_Pod.Get().(*Info_Pod) +} + +var vtprotoPool_Info_Node = sync.Pool{ + New: func() interface{} { + return &Info_Node{} + }, +} + +func (m *Info_Node) ResetVT() { + m.Cpu.ReturnToVTPool() + m.Memory.ReturnToVTPool() + m.Pods.ReturnToVTPool() + m.Reset() +} +func (m *Info_Node) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Info_Node.Put(m) } - return dAtA[:n], nil +} +func Info_NodeFromVTPool() *Info_Node { + return vtprotoPool_Info_Node.Get().(*Info_Node) } -func (m *Info) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) +var vtprotoPool_Info_CPU = sync.Pool{ + New: func() interface{} { + return &Info_CPU{} + }, } -func (m *Info) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil +func (m *Info_CPU) ResetVT() { + m.Reset() +} +func (m *Info_CPU) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Info_CPU.Put(m) } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) +} +func Info_CPUFromVTPool() *Info_CPU { + return vtprotoPool_Info_CPU.Get().(*Info_CPU) +} + +var vtprotoPool_Info_Memory = sync.Pool{ + New: func() interface{} { + return &Info_Memory{} + }, +} + +func (m *Info_Memory) ResetVT() { + m.Reset() +} +func (m *Info_Memory) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Info_Memory.Put(m) } - return len(dAtA) - i, nil +} +func Info_MemoryFromVTPool() *Info_Memory { + return vtprotoPool_Info_Memory.Get().(*Info_Memory) } -func (m *Empty) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil +var vtprotoPool_Info_Pods = sync.Pool{ + New: func() interface{} { + return &Info_Pods{} + }, +} + +func (m *Info_Pods) ResetVT() { + for _, mm := range m.Pods { + mm.ResetVT() } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err + m.Reset() +} +func (m *Info_Pods) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Info_Pods.Put(m) } - return dAtA[:n], nil +} +func Info_PodsFromVTPool() *Info_Pods { + return vtprotoPool_Info_Pods.Get().(*Info_Pods) } -func (m *Empty) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) +var vtprotoPool_Info_Nodes = sync.Pool{ + New: func() interface{} { + return &Info_Nodes{} + }, } -func (m *Empty) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil +func (m *Info_Nodes) ResetVT() { + for _, mm := range m.Nodes { + mm.ResetVT() } - i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) + m.Reset() +} +func (m *Info_Nodes) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Info_Nodes.Put(m) } - return len(dAtA) - i, nil +} +func Info_NodesFromVTPool() *Info_Nodes { + return vtprotoPool_Info_Nodes.Get().(*Info_Nodes) } -func encodeVarint(dAtA []byte, offset int, v uint64) int { - offset -= sov(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ +var vtprotoPool_Info_IPs = sync.Pool{ + New: func() interface{} { + return &Info_IPs{} + }, +} + +func (m *Info_IPs) ResetVT() { + f0 := m.Ip[:0] + m.Reset() + m.Ip = f0 +} +func (m *Info_IPs) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Info_IPs.Put(m) } - dAtA[offset] = uint8(v) - return base +} +func Info_IPsFromVTPool() *Info_IPs { + return vtprotoPool_Info_IPs.Get().(*Info_IPs) +} + +var vtprotoPool_Info = sync.Pool{ + New: func() interface{} { + return &Info{} + }, +} + +func (m *Info) ResetVT() { + m.Reset() +} +func (m *Info) ReturnToVTPool() { + if m != nil { + m.ResetVT() + vtprotoPool_Info.Put(m) + } +} +func InfoFromVTPool() *Info { + return vtprotoPool_Info.Get().(*Info) } func (m *Search_Request) SizeVT() (n int) { if m == nil { @@ -4975,7 +8276,7 @@ func (m *Search_Request) UnmarshalVT(dAtA []byte) error { } var elementCount int elementCount = packedLen / 4 - if elementCount != 0 && len(m.Vector) == 0 { + if elementCount != 0 && len(m.Vector) == 0 && cap(m.Vector) < elementCount { m.Vector = make([]float32, 0, elementCount) } for iNdEx < postIndex { @@ -5021,7 +8322,7 @@ func (m *Search_Request) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Config == nil { - m.Config = &Search_Config{} + m.Config = Search_ConfigFromVTPool() } if err := m.Config.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -5107,7 +8408,14 @@ func (m *Search_MultiRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Requests = append(m.Requests, &Search_Request{}) + if len(m.Requests) == cap(m.Requests) { + m.Requests = append(m.Requests, &Search_Request{}) + } else { + m.Requests = m.Requests[:len(m.Requests)+1] + if m.Requests[len(m.Requests)-1] == nil { + m.Requests[len(m.Requests)-1] = &Search_Request{} + } + } if err := m.Requests[len(m.Requests)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -5225,7 +8533,7 @@ func (m *Search_IDRequest) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Config == nil { - m.Config = &Search_Config{} + m.Config = Search_ConfigFromVTPool() } if err := m.Config.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -5311,7 +8619,14 @@ func (m *Search_MultiIDRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Requests = append(m.Requests, &Search_IDRequest{}) + if len(m.Requests) == cap(m.Requests) { + m.Requests = append(m.Requests, &Search_IDRequest{}) + } else { + m.Requests = m.Requests[:len(m.Requests)+1] + if m.Requests[len(m.Requests)-1] == nil { + m.Requests[len(m.Requests)-1] = &Search_IDRequest{} + } + } if err := m.Requests[len(m.Requests)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -5431,7 +8746,7 @@ func (m *Search_ObjectRequest) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Config == nil { - m.Config = &Search_Config{} + m.Config = Search_ConfigFromVTPool() } if err := m.Config.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -5467,7 +8782,7 @@ func (m *Search_ObjectRequest) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Vectorizer == nil { - m.Vectorizer = &Filter_Target{} + m.Vectorizer = Filter_TargetFromVTPool() } if err := m.Vectorizer.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -5553,7 +8868,14 @@ func (m *Search_MultiObjectRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Requests = append(m.Requests, &Search_ObjectRequest{}) + if len(m.Requests) == cap(m.Requests) { + m.Requests = append(m.Requests, &Search_ObjectRequest{}) + } else { + m.Requests = m.Requests[:len(m.Requests)+1] + if m.Requests[len(m.Requests)-1] == nil { + m.Requests[len(m.Requests)-1] = &Search_ObjectRequest{} + } + } if err := m.Requests[len(m.Requests)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -5731,7 +9053,7 @@ func (m *Search_Config) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.IngressFilters == nil { - m.IngressFilters = &Filter_Config{} + m.IngressFilters = Filter_ConfigFromVTPool() } if err := m.IngressFilters.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -5767,7 +9089,7 @@ func (m *Search_Config) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.EgressFilters == nil { - m.EgressFilters = &Filter_Config{} + m.EgressFilters = Filter_ConfigFromVTPool() } if err := m.EgressFilters.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -5904,7 +9226,14 @@ func (m *Search_Response) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Results = append(m.Results, &Object_Distance{}) + if len(m.Results) == cap(m.Results) { + m.Results = append(m.Results, &Object_Distance{}) + } else { + m.Results = m.Results[:len(m.Results)+1] + if m.Results[len(m.Results)-1] == nil { + m.Results[len(m.Results)-1] = &Object_Distance{} + } + } if err := m.Results[len(m.Results)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -5989,7 +9318,14 @@ func (m *Search_Responses) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Responses = append(m.Responses, &Search_Response{}) + if len(m.Responses) == cap(m.Responses) { + m.Responses = append(m.Responses, &Search_Response{}) + } else { + m.Responses = m.Responses[:len(m.Responses)+1] + if m.Responses[len(m.Responses)-1] == nil { + m.Responses[len(m.Responses)-1] = &Search_Response{} + } + } if err := m.Responses[len(m.Responses)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -6376,7 +9712,14 @@ func (m *Filter_Config) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Targets = append(m.Targets, &Filter_Target{}) + if len(m.Targets) == cap(m.Targets) { + m.Targets = append(m.Targets, &Filter_Target{}) + } else { + m.Targets = m.Targets[:len(m.Targets)+1] + if m.Targets[len(m.Targets)-1] == nil { + m.Targets[len(m.Targets)-1] = &Filter_Target{} + } + } if err := m.Targets[len(m.Targets)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -6513,7 +9856,7 @@ func (m *Insert_Request) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Vector == nil { - m.Vector = &Object_Vector{} + m.Vector = Object_VectorFromVTPool() } if err := m.Vector.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -6549,7 +9892,7 @@ func (m *Insert_Request) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Config == nil { - m.Config = &Insert_Config{} + m.Config = Insert_ConfigFromVTPool() } if err := m.Config.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -6635,7 +9978,14 @@ func (m *Insert_MultiRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Requests = append(m.Requests, &Insert_Request{}) + if len(m.Requests) == cap(m.Requests) { + m.Requests = append(m.Requests, &Insert_Request{}) + } else { + m.Requests = m.Requests[:len(m.Requests)+1] + if m.Requests[len(m.Requests)-1] == nil { + m.Requests[len(m.Requests)-1] = &Insert_Request{} + } + } if err := m.Requests[len(m.Requests)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -6721,7 +10071,7 @@ func (m *Insert_ObjectRequest) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Object == nil { - m.Object = &Object_Blob{} + m.Object = Object_BlobFromVTPool() } if err := m.Object.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -6757,7 +10107,7 @@ func (m *Insert_ObjectRequest) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Config == nil { - m.Config = &Insert_Config{} + m.Config = Insert_ConfigFromVTPool() } if err := m.Config.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -6793,7 +10143,7 @@ func (m *Insert_ObjectRequest) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Vectorizer == nil { - m.Vectorizer = &Filter_Target{} + m.Vectorizer = Filter_TargetFromVTPool() } if err := m.Vectorizer.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -6879,7 +10229,14 @@ func (m *Insert_MultiObjectRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Requests = append(m.Requests, &Insert_ObjectRequest{}) + if len(m.Requests) == cap(m.Requests) { + m.Requests = append(m.Requests, &Insert_ObjectRequest{}) + } else { + m.Requests = m.Requests[:len(m.Requests)+1] + if m.Requests[len(m.Requests)-1] == nil { + m.Requests[len(m.Requests)-1] = &Insert_ObjectRequest{} + } + } if err := m.Requests[len(m.Requests)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -6985,7 +10342,7 @@ func (m *Insert_Config) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Filters == nil { - m.Filters = &Filter_Config{} + m.Filters = Filter_ConfigFromVTPool() } if err := m.Filters.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -7142,7 +10499,7 @@ func (m *Update_Request) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Vector == nil { - m.Vector = &Object_Vector{} + m.Vector = Object_VectorFromVTPool() } if err := m.Vector.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -7178,7 +10535,7 @@ func (m *Update_Request) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Config == nil { - m.Config = &Update_Config{} + m.Config = Update_ConfigFromVTPool() } if err := m.Config.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -7264,7 +10621,14 @@ func (m *Update_MultiRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Requests = append(m.Requests, &Update_Request{}) + if len(m.Requests) == cap(m.Requests) { + m.Requests = append(m.Requests, &Update_Request{}) + } else { + m.Requests = m.Requests[:len(m.Requests)+1] + if m.Requests[len(m.Requests)-1] == nil { + m.Requests[len(m.Requests)-1] = &Update_Request{} + } + } if err := m.Requests[len(m.Requests)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -7350,7 +10714,7 @@ func (m *Update_ObjectRequest) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Object == nil { - m.Object = &Object_Blob{} + m.Object = Object_BlobFromVTPool() } if err := m.Object.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -7386,7 +10750,7 @@ func (m *Update_ObjectRequest) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Config == nil { - m.Config = &Update_Config{} + m.Config = Update_ConfigFromVTPool() } if err := m.Config.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -7422,7 +10786,7 @@ func (m *Update_ObjectRequest) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Vectorizer == nil { - m.Vectorizer = &Filter_Target{} + m.Vectorizer = Filter_TargetFromVTPool() } if err := m.Vectorizer.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -7508,7 +10872,14 @@ func (m *Update_MultiObjectRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Requests = append(m.Requests, &Update_ObjectRequest{}) + if len(m.Requests) == cap(m.Requests) { + m.Requests = append(m.Requests, &Update_ObjectRequest{}) + } else { + m.Requests = m.Requests[:len(m.Requests)+1] + if m.Requests[len(m.Requests)-1] == nil { + m.Requests[len(m.Requests)-1] = &Update_ObjectRequest{} + } + } if err := m.Requests[len(m.Requests)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -7614,7 +10985,7 @@ func (m *Update_Config) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Filters == nil { - m.Filters = &Filter_Config{} + m.Filters = Filter_ConfigFromVTPool() } if err := m.Filters.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -7791,7 +11162,7 @@ func (m *Upsert_Request) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Vector == nil { - m.Vector = &Object_Vector{} + m.Vector = Object_VectorFromVTPool() } if err := m.Vector.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -7827,7 +11198,7 @@ func (m *Upsert_Request) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Config == nil { - m.Config = &Upsert_Config{} + m.Config = Upsert_ConfigFromVTPool() } if err := m.Config.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -7913,7 +11284,14 @@ func (m *Upsert_MultiRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Requests = append(m.Requests, &Upsert_Request{}) + if len(m.Requests) == cap(m.Requests) { + m.Requests = append(m.Requests, &Upsert_Request{}) + } else { + m.Requests = m.Requests[:len(m.Requests)+1] + if m.Requests[len(m.Requests)-1] == nil { + m.Requests[len(m.Requests)-1] = &Upsert_Request{} + } + } if err := m.Requests[len(m.Requests)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -7999,7 +11377,7 @@ func (m *Upsert_ObjectRequest) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Object == nil { - m.Object = &Object_Blob{} + m.Object = Object_BlobFromVTPool() } if err := m.Object.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -8035,7 +11413,7 @@ func (m *Upsert_ObjectRequest) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Config == nil { - m.Config = &Upsert_Config{} + m.Config = Upsert_ConfigFromVTPool() } if err := m.Config.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -8071,7 +11449,7 @@ func (m *Upsert_ObjectRequest) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Vectorizer == nil { - m.Vectorizer = &Filter_Target{} + m.Vectorizer = Filter_TargetFromVTPool() } if err := m.Vectorizer.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -8157,7 +11535,14 @@ func (m *Upsert_MultiObjectRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Requests = append(m.Requests, &Upsert_ObjectRequest{}) + if len(m.Requests) == cap(m.Requests) { + m.Requests = append(m.Requests, &Upsert_ObjectRequest{}) + } else { + m.Requests = m.Requests[:len(m.Requests)+1] + if m.Requests[len(m.Requests)-1] == nil { + m.Requests[len(m.Requests)-1] = &Upsert_ObjectRequest{} + } + } if err := m.Requests[len(m.Requests)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -8263,7 +11648,7 @@ func (m *Upsert_Config) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Filters == nil { - m.Filters = &Filter_Config{} + m.Filters = Filter_ConfigFromVTPool() } if err := m.Filters.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -8440,7 +11825,7 @@ func (m *Remove_Request) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Id == nil { - m.Id = &Object_ID{} + m.Id = Object_IDFromVTPool() } if err := m.Id.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -8476,7 +11861,7 @@ func (m *Remove_Request) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Config == nil { - m.Config = &Remove_Config{} + m.Config = Remove_ConfigFromVTPool() } if err := m.Config.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -8562,7 +11947,14 @@ func (m *Remove_MultiRequest) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Requests = append(m.Requests, &Remove_Request{}) + if len(m.Requests) == cap(m.Requests) { + m.Requests = append(m.Requests, &Remove_Request{}) + } else { + m.Requests = m.Requests[:len(m.Requests)+1] + if m.Requests[len(m.Requests)-1] == nil { + m.Requests[len(m.Requests)-1] = &Remove_Request{} + } + } if err := m.Requests[len(m.Requests)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -8789,7 +12181,7 @@ func (m *Object_VectorRequest) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Id == nil { - m.Id = &Object_ID{} + m.Id = Object_IDFromVTPool() } if err := m.Id.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -8825,7 +12217,7 @@ func (m *Object_VectorRequest) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Filters == nil { - m.Filters = &Filter_Config{} + m.Filters = Filter_ConfigFromVTPool() } if err := m.Filters.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -9361,7 +12753,7 @@ func (m *Object_Vector) UnmarshalVT(dAtA []byte) error { } var elementCount int elementCount = packedLen / 4 - if elementCount != 0 && len(m.Vector) == 0 { + if elementCount != 0 && len(m.Vector) == 0 && cap(m.Vector) < elementCount { m.Vector = make([]float32, 0, elementCount) } for iNdEx < postIndex { @@ -9457,7 +12849,14 @@ func (m *Object_Vectors) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Vectors = append(m.Vectors, &Object_Vector{}) + if len(m.Vectors) == cap(m.Vectors) { + m.Vectors = append(m.Vectors, &Object_Vector{}) + } else { + m.Vectors = m.Vectors[:len(m.Vectors)+1] + if m.Vectors[len(m.Vectors)-1] == nil { + m.Vectors[len(m.Vectors)-1] = &Object_Vector{} + } + } if err := m.Vectors[len(m.Vectors)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -9748,7 +13147,7 @@ func (m *Object_ReshapeVector) UnmarshalVT(dAtA []byte) error { } } elementCount = count - if elementCount != 0 && len(m.Shape) == 0 { + if elementCount != 0 && len(m.Shape) == 0 && cap(m.Shape) < elementCount { m.Shape = make([]int32, 0, elementCount) } for iNdEx < postIndex { @@ -10414,7 +13813,14 @@ func (m *Object_Locations) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Locations = append(m.Locations, &Object_Location{}) + if len(m.Locations) == cap(m.Locations) { + m.Locations = append(m.Locations, &Object_Location{}) + } else { + m.Locations = m.Locations[:len(m.Locations)+1] + if m.Locations[len(m.Locations)-1] == nil { + m.Locations[len(m.Locations)-1] = &Object_Location{} + } + } if err := m.Locations[len(m.Locations)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -11395,7 +14801,7 @@ func (m *Info_Pod) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Cpu == nil { - m.Cpu = &Info_CPU{} + m.Cpu = Info_CPUFromVTPool() } if err := m.Cpu.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -11431,7 +14837,7 @@ func (m *Info_Pod) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Memory == nil { - m.Memory = &Info_Memory{} + m.Memory = Info_MemoryFromVTPool() } if err := m.Memory.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -11467,7 +14873,7 @@ func (m *Info_Pod) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Node == nil { - m.Node = &Info_Node{} + m.Node = Info_NodeFromVTPool() } if err := m.Node.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -11650,7 +15056,7 @@ func (m *Info_Node) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Cpu == nil { - m.Cpu = &Info_CPU{} + m.Cpu = Info_CPUFromVTPool() } if err := m.Cpu.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -11686,7 +15092,7 @@ func (m *Info_Node) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Memory == nil { - m.Memory = &Info_Memory{} + m.Memory = Info_MemoryFromVTPool() } if err := m.Memory.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -11722,7 +15128,7 @@ func (m *Info_Node) UnmarshalVT(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.Pods == nil { - m.Pods = &Info_Pods{} + m.Pods = Info_PodsFromVTPool() } if err := m.Pods.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err @@ -11976,7 +15382,14 @@ func (m *Info_Pods) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Pods = append(m.Pods, &Info_Pod{}) + if len(m.Pods) == cap(m.Pods) { + m.Pods = append(m.Pods, &Info_Pod{}) + } else { + m.Pods = m.Pods[:len(m.Pods)+1] + if m.Pods[len(m.Pods)-1] == nil { + m.Pods[len(m.Pods)-1] = &Info_Pod{} + } + } if err := m.Pods[len(m.Pods)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -12061,7 +15474,14 @@ func (m *Info_Nodes) UnmarshalVT(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Nodes = append(m.Nodes, &Info_Node{}) + if len(m.Nodes) == cap(m.Nodes) { + m.Nodes = append(m.Nodes, &Info_Node{}) + } else { + m.Nodes = m.Nodes[:len(m.Nodes)+1] + if m.Nodes[len(m.Nodes)-1] == nil { + m.Nodes[len(m.Nodes)-1] = &Info_Node{} + } + } if err := m.Nodes[len(m.Nodes)-1].UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { return err } diff --git a/apis/grpc/v1/vald/filter_vtproto.pb.go b/apis/grpc/v1/vald/filter_vtproto.pb.go index f11b3d409d4..57d71c89e4c 100644 --- a/apis/grpc/v1/vald/filter_vtproto.pb.go +++ b/apis/grpc/v1/vald/filter_vtproto.pb.go @@ -77,7 +77,7 @@ func NewFilterClient(cc grpc.ClientConnInterface) FilterClient { } func (c *filterClient) SearchObject(ctx context.Context, in *payload.Search_ObjectRequest, opts ...grpc.CallOption) (*payload.Search_Response, error) { - out := new(payload.Search_Response) + out := payload.Search_ResponseFromVTPool() err := c.cc.Invoke(ctx, "/vald.v1.Filter/SearchObject", in, out, opts...) if err != nil { return nil, err @@ -86,7 +86,7 @@ func (c *filterClient) SearchObject(ctx context.Context, in *payload.Search_Obje } func (c *filterClient) MultiSearchObject(ctx context.Context, in *payload.Search_MultiObjectRequest, opts ...grpc.CallOption) (*payload.Search_Responses, error) { - out := new(payload.Search_Responses) + out := payload.Search_ResponsesFromVTPool() err := c.cc.Invoke(ctx, "/vald.v1.Filter/MultiSearchObject", in, out, opts...) if err != nil { return nil, err @@ -126,7 +126,7 @@ func (x *filterStreamSearchObjectClient) Recv() (*payload.Search_StreamResponse, } func (c *filterClient) InsertObject(ctx context.Context, in *payload.Insert_ObjectRequest, opts ...grpc.CallOption) (*payload.Object_Location, error) { - out := new(payload.Object_Location) + out := payload.Object_LocationFromVTPool() err := c.cc.Invoke(ctx, "/vald.v1.Filter/InsertObject", in, out, opts...) if err != nil { return nil, err @@ -166,7 +166,7 @@ func (x *filterStreamInsertObjectClient) Recv() (*payload.Object_StreamLocation, } func (c *filterClient) MultiInsertObject(ctx context.Context, in *payload.Insert_MultiObjectRequest, opts ...grpc.CallOption) (*payload.Object_Locations, error) { - out := new(payload.Object_Locations) + out := payload.Object_LocationsFromVTPool() err := c.cc.Invoke(ctx, "/vald.v1.Filter/MultiInsertObject", in, out, opts...) if err != nil { return nil, err @@ -175,7 +175,7 @@ func (c *filterClient) MultiInsertObject(ctx context.Context, in *payload.Insert } func (c *filterClient) UpdateObject(ctx context.Context, in *payload.Update_ObjectRequest, opts ...grpc.CallOption) (*payload.Object_Location, error) { - out := new(payload.Object_Location) + out := payload.Object_LocationFromVTPool() err := c.cc.Invoke(ctx, "/vald.v1.Filter/UpdateObject", in, out, opts...) if err != nil { return nil, err @@ -215,7 +215,7 @@ func (x *filterStreamUpdateObjectClient) Recv() (*payload.Object_StreamLocation, } func (c *filterClient) MultiUpdateObject(ctx context.Context, in *payload.Update_MultiObjectRequest, opts ...grpc.CallOption) (*payload.Object_Locations, error) { - out := new(payload.Object_Locations) + out := payload.Object_LocationsFromVTPool() err := c.cc.Invoke(ctx, "/vald.v1.Filter/MultiUpdateObject", in, out, opts...) if err != nil { return nil, err @@ -224,7 +224,7 @@ func (c *filterClient) MultiUpdateObject(ctx context.Context, in *payload.Update } func (c *filterClient) UpsertObject(ctx context.Context, in *payload.Upsert_ObjectRequest, opts ...grpc.CallOption) (*payload.Object_Location, error) { - out := new(payload.Object_Location) + out := payload.Object_LocationFromVTPool() err := c.cc.Invoke(ctx, "/vald.v1.Filter/UpsertObject", in, out, opts...) if err != nil { return nil, err @@ -264,7 +264,7 @@ func (x *filterStreamUpsertObjectClient) Recv() (*payload.Object_StreamLocation, } func (c *filterClient) MultiUpsertObject(ctx context.Context, in *payload.Upsert_MultiObjectRequest, opts ...grpc.CallOption) (*payload.Object_Locations, error) { - out := new(payload.Object_Locations) + out := payload.Object_LocationsFromVTPool() err := c.cc.Invoke(ctx, "/vald.v1.Filter/MultiUpsertObject", in, out, opts...) if err != nil { return nil, err @@ -357,7 +357,7 @@ func RegisterFilterServer(s grpc.ServiceRegistrar, srv FilterServer) { } func _Filter_SearchObject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Search_ObjectRequest) + in := payload.Search_ObjectRequestFromVTPool() if err := dec(in); err != nil { return nil, err } @@ -375,7 +375,7 @@ func _Filter_SearchObject_Handler(srv interface{}, ctx context.Context, dec func } func _Filter_MultiSearchObject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Search_MultiObjectRequest) + in := payload.Search_MultiObjectRequestFromVTPool() if err := dec(in); err != nil { return nil, err } @@ -411,7 +411,7 @@ func (x *filterStreamSearchObjectServer) Send(m *payload.Search_StreamResponse) } func (x *filterStreamSearchObjectServer) Recv() (*payload.Search_ObjectRequest, error) { - m := new(payload.Search_ObjectRequest) + m := payload.Search_ObjectRequestFromVTPool() if err := x.ServerStream.RecvMsg(m); err != nil { return nil, err } @@ -419,7 +419,7 @@ func (x *filterStreamSearchObjectServer) Recv() (*payload.Search_ObjectRequest, } func _Filter_InsertObject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Insert_ObjectRequest) + in := payload.Insert_ObjectRequestFromVTPool() if err := dec(in); err != nil { return nil, err } @@ -455,7 +455,7 @@ func (x *filterStreamInsertObjectServer) Send(m *payload.Object_StreamLocation) } func (x *filterStreamInsertObjectServer) Recv() (*payload.Insert_ObjectRequest, error) { - m := new(payload.Insert_ObjectRequest) + m := payload.Insert_ObjectRequestFromVTPool() if err := x.ServerStream.RecvMsg(m); err != nil { return nil, err } @@ -463,7 +463,7 @@ func (x *filterStreamInsertObjectServer) Recv() (*payload.Insert_ObjectRequest, } func _Filter_MultiInsertObject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Insert_MultiObjectRequest) + in := payload.Insert_MultiObjectRequestFromVTPool() if err := dec(in); err != nil { return nil, err } @@ -481,7 +481,7 @@ func _Filter_MultiInsertObject_Handler(srv interface{}, ctx context.Context, dec } func _Filter_UpdateObject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Update_ObjectRequest) + in := payload.Update_ObjectRequestFromVTPool() if err := dec(in); err != nil { return nil, err } @@ -517,7 +517,7 @@ func (x *filterStreamUpdateObjectServer) Send(m *payload.Object_StreamLocation) } func (x *filterStreamUpdateObjectServer) Recv() (*payload.Update_ObjectRequest, error) { - m := new(payload.Update_ObjectRequest) + m := payload.Update_ObjectRequestFromVTPool() if err := x.ServerStream.RecvMsg(m); err != nil { return nil, err } @@ -525,7 +525,7 @@ func (x *filterStreamUpdateObjectServer) Recv() (*payload.Update_ObjectRequest, } func _Filter_MultiUpdateObject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Update_MultiObjectRequest) + in := payload.Update_MultiObjectRequestFromVTPool() if err := dec(in); err != nil { return nil, err } @@ -543,7 +543,7 @@ func _Filter_MultiUpdateObject_Handler(srv interface{}, ctx context.Context, dec } func _Filter_UpsertObject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Upsert_ObjectRequest) + in := payload.Upsert_ObjectRequestFromVTPool() if err := dec(in); err != nil { return nil, err } @@ -579,7 +579,7 @@ func (x *filterStreamUpsertObjectServer) Send(m *payload.Object_StreamLocation) } func (x *filterStreamUpsertObjectServer) Recv() (*payload.Upsert_ObjectRequest, error) { - m := new(payload.Upsert_ObjectRequest) + m := payload.Upsert_ObjectRequestFromVTPool() if err := x.ServerStream.RecvMsg(m); err != nil { return nil, err } @@ -587,7 +587,7 @@ func (x *filterStreamUpsertObjectServer) Recv() (*payload.Upsert_ObjectRequest, } func _Filter_MultiUpsertObject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Upsert_MultiObjectRequest) + in := payload.Upsert_MultiObjectRequestFromVTPool() if err := dec(in); err != nil { return nil, err } diff --git a/apis/grpc/v1/vald/insert_vtproto.pb.go b/apis/grpc/v1/vald/insert_vtproto.pb.go index 987c33258d0..c1be3635efc 100644 --- a/apis/grpc/v1/vald/insert_vtproto.pb.go +++ b/apis/grpc/v1/vald/insert_vtproto.pb.go @@ -59,7 +59,7 @@ func NewInsertClient(cc grpc.ClientConnInterface) InsertClient { } func (c *insertClient) Insert(ctx context.Context, in *payload.Insert_Request, opts ...grpc.CallOption) (*payload.Object_Location, error) { - out := new(payload.Object_Location) + out := payload.Object_LocationFromVTPool() err := c.cc.Invoke(ctx, "/vald.v1.Insert/Insert", in, out, opts...) if err != nil { return nil, err @@ -99,7 +99,7 @@ func (x *insertStreamInsertClient) Recv() (*payload.Object_StreamLocation, error } func (c *insertClient) MultiInsert(ctx context.Context, in *payload.Insert_MultiRequest, opts ...grpc.CallOption) (*payload.Object_Locations, error) { - out := new(payload.Object_Locations) + out := payload.Object_LocationsFromVTPool() err := c.cc.Invoke(ctx, "/vald.v1.Insert/MultiInsert", in, out, opts...) if err != nil { return nil, err @@ -147,7 +147,7 @@ func RegisterInsertServer(s grpc.ServiceRegistrar, srv InsertServer) { } func _Insert_Insert_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Insert_Request) + in := payload.Insert_RequestFromVTPool() if err := dec(in); err != nil { return nil, err } @@ -183,7 +183,7 @@ func (x *insertStreamInsertServer) Send(m *payload.Object_StreamLocation) error } func (x *insertStreamInsertServer) Recv() (*payload.Insert_Request, error) { - m := new(payload.Insert_Request) + m := payload.Insert_RequestFromVTPool() if err := x.ServerStream.RecvMsg(m); err != nil { return nil, err } @@ -191,7 +191,7 @@ func (x *insertStreamInsertServer) Recv() (*payload.Insert_Request, error) { } func _Insert_MultiInsert_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Insert_MultiRequest) + in := payload.Insert_MultiRequestFromVTPool() if err := dec(in); err != nil { return nil, err } diff --git a/apis/grpc/v1/vald/object_vtproto.pb.go b/apis/grpc/v1/vald/object_vtproto.pb.go index 73e5f067f3f..20d6bd0513b 100644 --- a/apis/grpc/v1/vald/object_vtproto.pb.go +++ b/apis/grpc/v1/vald/object_vtproto.pb.go @@ -59,7 +59,7 @@ func NewObjectClient(cc grpc.ClientConnInterface) ObjectClient { } func (c *objectClient) Exists(ctx context.Context, in *payload.Object_ID, opts ...grpc.CallOption) (*payload.Object_ID, error) { - out := new(payload.Object_ID) + out := payload.Object_IDFromVTPool() err := c.cc.Invoke(ctx, "/vald.v1.Object/Exists", in, out, opts...) if err != nil { return nil, err @@ -68,7 +68,7 @@ func (c *objectClient) Exists(ctx context.Context, in *payload.Object_ID, opts . } func (c *objectClient) GetObject(ctx context.Context, in *payload.Object_VectorRequest, opts ...grpc.CallOption) (*payload.Object_Vector, error) { - out := new(payload.Object_Vector) + out := payload.Object_VectorFromVTPool() err := c.cc.Invoke(ctx, "/vald.v1.Object/GetObject", in, out, opts...) if err != nil { return nil, err @@ -147,7 +147,7 @@ func RegisterObjectServer(s grpc.ServiceRegistrar, srv ObjectServer) { } func _Object_Exists_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Object_ID) + in := payload.Object_IDFromVTPool() if err := dec(in); err != nil { return nil, err } @@ -165,7 +165,7 @@ func _Object_Exists_Handler(srv interface{}, ctx context.Context, dec func(inter } func _Object_GetObject_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Object_VectorRequest) + in := payload.Object_VectorRequestFromVTPool() if err := dec(in); err != nil { return nil, err } @@ -201,7 +201,7 @@ func (x *objectStreamGetObjectServer) Send(m *payload.Object_StreamVector) error } func (x *objectStreamGetObjectServer) Recv() (*payload.Object_VectorRequest, error) { - m := new(payload.Object_VectorRequest) + m := payload.Object_VectorRequestFromVTPool() if err := x.ServerStream.RecvMsg(m); err != nil { return nil, err } diff --git a/apis/grpc/v1/vald/remove_vtproto.pb.go b/apis/grpc/v1/vald/remove_vtproto.pb.go index 74da1b9ba40..e0751243c69 100644 --- a/apis/grpc/v1/vald/remove_vtproto.pb.go +++ b/apis/grpc/v1/vald/remove_vtproto.pb.go @@ -59,7 +59,7 @@ func NewRemoveClient(cc grpc.ClientConnInterface) RemoveClient { } func (c *removeClient) Remove(ctx context.Context, in *payload.Remove_Request, opts ...grpc.CallOption) (*payload.Object_Location, error) { - out := new(payload.Object_Location) + out := payload.Object_LocationFromVTPool() err := c.cc.Invoke(ctx, "/vald.v1.Remove/Remove", in, out, opts...) if err != nil { return nil, err @@ -99,7 +99,7 @@ func (x *removeStreamRemoveClient) Recv() (*payload.Object_StreamLocation, error } func (c *removeClient) MultiRemove(ctx context.Context, in *payload.Remove_MultiRequest, opts ...grpc.CallOption) (*payload.Object_Locations, error) { - out := new(payload.Object_Locations) + out := payload.Object_LocationsFromVTPool() err := c.cc.Invoke(ctx, "/vald.v1.Remove/MultiRemove", in, out, opts...) if err != nil { return nil, err @@ -147,7 +147,7 @@ func RegisterRemoveServer(s grpc.ServiceRegistrar, srv RemoveServer) { } func _Remove_Remove_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Remove_Request) + in := payload.Remove_RequestFromVTPool() if err := dec(in); err != nil { return nil, err } @@ -183,7 +183,7 @@ func (x *removeStreamRemoveServer) Send(m *payload.Object_StreamLocation) error } func (x *removeStreamRemoveServer) Recv() (*payload.Remove_Request, error) { - m := new(payload.Remove_Request) + m := payload.Remove_RequestFromVTPool() if err := x.ServerStream.RecvMsg(m); err != nil { return nil, err } @@ -191,7 +191,7 @@ func (x *removeStreamRemoveServer) Recv() (*payload.Remove_Request, error) { } func _Remove_MultiRemove_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Remove_MultiRequest) + in := payload.Remove_MultiRequestFromVTPool() if err := dec(in); err != nil { return nil, err } diff --git a/apis/grpc/v1/vald/search_vtproto.pb.go b/apis/grpc/v1/vald/search_vtproto.pb.go index 56a112b2a3c..dfef37189f1 100644 --- a/apis/grpc/v1/vald/search_vtproto.pb.go +++ b/apis/grpc/v1/vald/search_vtproto.pb.go @@ -77,7 +77,7 @@ func NewSearchClient(cc grpc.ClientConnInterface) SearchClient { } func (c *searchClient) Search(ctx context.Context, in *payload.Search_Request, opts ...grpc.CallOption) (*payload.Search_Response, error) { - out := new(payload.Search_Response) + out := payload.Search_ResponseFromVTPool() err := c.cc.Invoke(ctx, "/vald.v1.Search/Search", in, out, opts...) if err != nil { return nil, err @@ -86,7 +86,7 @@ func (c *searchClient) Search(ctx context.Context, in *payload.Search_Request, o } func (c *searchClient) SearchByID(ctx context.Context, in *payload.Search_IDRequest, opts ...grpc.CallOption) (*payload.Search_Response, error) { - out := new(payload.Search_Response) + out := payload.Search_ResponseFromVTPool() err := c.cc.Invoke(ctx, "/vald.v1.Search/SearchByID", in, out, opts...) if err != nil { return nil, err @@ -157,7 +157,7 @@ func (x *searchStreamSearchByIDClient) Recv() (*payload.Search_StreamResponse, e } func (c *searchClient) MultiSearch(ctx context.Context, in *payload.Search_MultiRequest, opts ...grpc.CallOption) (*payload.Search_Responses, error) { - out := new(payload.Search_Responses) + out := payload.Search_ResponsesFromVTPool() err := c.cc.Invoke(ctx, "/vald.v1.Search/MultiSearch", in, out, opts...) if err != nil { return nil, err @@ -166,7 +166,7 @@ func (c *searchClient) MultiSearch(ctx context.Context, in *payload.Search_Multi } func (c *searchClient) MultiSearchByID(ctx context.Context, in *payload.Search_MultiIDRequest, opts ...grpc.CallOption) (*payload.Search_Responses, error) { - out := new(payload.Search_Responses) + out := payload.Search_ResponsesFromVTPool() err := c.cc.Invoke(ctx, "/vald.v1.Search/MultiSearchByID", in, out, opts...) if err != nil { return nil, err @@ -175,7 +175,7 @@ func (c *searchClient) MultiSearchByID(ctx context.Context, in *payload.Search_M } func (c *searchClient) LinearSearch(ctx context.Context, in *payload.Search_Request, opts ...grpc.CallOption) (*payload.Search_Response, error) { - out := new(payload.Search_Response) + out := payload.Search_ResponseFromVTPool() err := c.cc.Invoke(ctx, "/vald.v1.Search/LinearSearch", in, out, opts...) if err != nil { return nil, err @@ -184,7 +184,7 @@ func (c *searchClient) LinearSearch(ctx context.Context, in *payload.Search_Requ } func (c *searchClient) LinearSearchByID(ctx context.Context, in *payload.Search_IDRequest, opts ...grpc.CallOption) (*payload.Search_Response, error) { - out := new(payload.Search_Response) + out := payload.Search_ResponseFromVTPool() err := c.cc.Invoke(ctx, "/vald.v1.Search/LinearSearchByID", in, out, opts...) if err != nil { return nil, err @@ -255,7 +255,7 @@ func (x *searchStreamLinearSearchByIDClient) Recv() (*payload.Search_StreamRespo } func (c *searchClient) MultiLinearSearch(ctx context.Context, in *payload.Search_MultiRequest, opts ...grpc.CallOption) (*payload.Search_Responses, error) { - out := new(payload.Search_Responses) + out := payload.Search_ResponsesFromVTPool() err := c.cc.Invoke(ctx, "/vald.v1.Search/MultiLinearSearch", in, out, opts...) if err != nil { return nil, err @@ -264,7 +264,7 @@ func (c *searchClient) MultiLinearSearch(ctx context.Context, in *payload.Search } func (c *searchClient) MultiLinearSearchByID(ctx context.Context, in *payload.Search_MultiIDRequest, opts ...grpc.CallOption) (*payload.Search_Responses, error) { - out := new(payload.Search_Responses) + out := payload.Search_ResponsesFromVTPool() err := c.cc.Invoke(ctx, "/vald.v1.Search/MultiLinearSearchByID", in, out, opts...) if err != nil { return nil, err @@ -357,7 +357,7 @@ func RegisterSearchServer(s grpc.ServiceRegistrar, srv SearchServer) { } func _Search_Search_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Search_Request) + in := payload.Search_RequestFromVTPool() if err := dec(in); err != nil { return nil, err } @@ -375,7 +375,7 @@ func _Search_Search_Handler(srv interface{}, ctx context.Context, dec func(inter } func _Search_SearchByID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Search_IDRequest) + in := payload.Search_IDRequestFromVTPool() if err := dec(in); err != nil { return nil, err } @@ -411,7 +411,7 @@ func (x *searchStreamSearchServer) Send(m *payload.Search_StreamResponse) error } func (x *searchStreamSearchServer) Recv() (*payload.Search_Request, error) { - m := new(payload.Search_Request) + m := payload.Search_RequestFromVTPool() if err := x.ServerStream.RecvMsg(m); err != nil { return nil, err } @@ -437,7 +437,7 @@ func (x *searchStreamSearchByIDServer) Send(m *payload.Search_StreamResponse) er } func (x *searchStreamSearchByIDServer) Recv() (*payload.Search_IDRequest, error) { - m := new(payload.Search_IDRequest) + m := payload.Search_IDRequestFromVTPool() if err := x.ServerStream.RecvMsg(m); err != nil { return nil, err } @@ -445,7 +445,7 @@ func (x *searchStreamSearchByIDServer) Recv() (*payload.Search_IDRequest, error) } func _Search_MultiSearch_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Search_MultiRequest) + in := payload.Search_MultiRequestFromVTPool() if err := dec(in); err != nil { return nil, err } @@ -463,7 +463,7 @@ func _Search_MultiSearch_Handler(srv interface{}, ctx context.Context, dec func( } func _Search_MultiSearchByID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Search_MultiIDRequest) + in := payload.Search_MultiIDRequestFromVTPool() if err := dec(in); err != nil { return nil, err } @@ -481,7 +481,7 @@ func _Search_MultiSearchByID_Handler(srv interface{}, ctx context.Context, dec f } func _Search_LinearSearch_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Search_Request) + in := payload.Search_RequestFromVTPool() if err := dec(in); err != nil { return nil, err } @@ -499,7 +499,7 @@ func _Search_LinearSearch_Handler(srv interface{}, ctx context.Context, dec func } func _Search_LinearSearchByID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Search_IDRequest) + in := payload.Search_IDRequestFromVTPool() if err := dec(in); err != nil { return nil, err } @@ -535,7 +535,7 @@ func (x *searchStreamLinearSearchServer) Send(m *payload.Search_StreamResponse) } func (x *searchStreamLinearSearchServer) Recv() (*payload.Search_Request, error) { - m := new(payload.Search_Request) + m := payload.Search_RequestFromVTPool() if err := x.ServerStream.RecvMsg(m); err != nil { return nil, err } @@ -561,7 +561,7 @@ func (x *searchStreamLinearSearchByIDServer) Send(m *payload.Search_StreamRespon } func (x *searchStreamLinearSearchByIDServer) Recv() (*payload.Search_IDRequest, error) { - m := new(payload.Search_IDRequest) + m := payload.Search_IDRequestFromVTPool() if err := x.ServerStream.RecvMsg(m); err != nil { return nil, err } @@ -569,7 +569,7 @@ func (x *searchStreamLinearSearchByIDServer) Recv() (*payload.Search_IDRequest, } func _Search_MultiLinearSearch_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Search_MultiRequest) + in := payload.Search_MultiRequestFromVTPool() if err := dec(in); err != nil { return nil, err } @@ -587,7 +587,7 @@ func _Search_MultiLinearSearch_Handler(srv interface{}, ctx context.Context, dec } func _Search_MultiLinearSearchByID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Search_MultiIDRequest) + in := payload.Search_MultiIDRequestFromVTPool() if err := dec(in); err != nil { return nil, err } diff --git a/apis/grpc/v1/vald/update_vtproto.pb.go b/apis/grpc/v1/vald/update_vtproto.pb.go index 14e0173ceff..5318d199327 100644 --- a/apis/grpc/v1/vald/update_vtproto.pb.go +++ b/apis/grpc/v1/vald/update_vtproto.pb.go @@ -59,7 +59,7 @@ func NewUpdateClient(cc grpc.ClientConnInterface) UpdateClient { } func (c *updateClient) Update(ctx context.Context, in *payload.Update_Request, opts ...grpc.CallOption) (*payload.Object_Location, error) { - out := new(payload.Object_Location) + out := payload.Object_LocationFromVTPool() err := c.cc.Invoke(ctx, "/vald.v1.Update/Update", in, out, opts...) if err != nil { return nil, err @@ -99,7 +99,7 @@ func (x *updateStreamUpdateClient) Recv() (*payload.Object_StreamLocation, error } func (c *updateClient) MultiUpdate(ctx context.Context, in *payload.Update_MultiRequest, opts ...grpc.CallOption) (*payload.Object_Locations, error) { - out := new(payload.Object_Locations) + out := payload.Object_LocationsFromVTPool() err := c.cc.Invoke(ctx, "/vald.v1.Update/MultiUpdate", in, out, opts...) if err != nil { return nil, err @@ -147,7 +147,7 @@ func RegisterUpdateServer(s grpc.ServiceRegistrar, srv UpdateServer) { } func _Update_Update_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Update_Request) + in := payload.Update_RequestFromVTPool() if err := dec(in); err != nil { return nil, err } @@ -183,7 +183,7 @@ func (x *updateStreamUpdateServer) Send(m *payload.Object_StreamLocation) error } func (x *updateStreamUpdateServer) Recv() (*payload.Update_Request, error) { - m := new(payload.Update_Request) + m := payload.Update_RequestFromVTPool() if err := x.ServerStream.RecvMsg(m); err != nil { return nil, err } @@ -191,7 +191,7 @@ func (x *updateStreamUpdateServer) Recv() (*payload.Update_Request, error) { } func _Update_MultiUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Update_MultiRequest) + in := payload.Update_MultiRequestFromVTPool() if err := dec(in); err != nil { return nil, err } diff --git a/apis/grpc/v1/vald/upsert_vtproto.pb.go b/apis/grpc/v1/vald/upsert_vtproto.pb.go index c52494f5442..3798dfffc52 100644 --- a/apis/grpc/v1/vald/upsert_vtproto.pb.go +++ b/apis/grpc/v1/vald/upsert_vtproto.pb.go @@ -59,7 +59,7 @@ func NewUpsertClient(cc grpc.ClientConnInterface) UpsertClient { } func (c *upsertClient) Upsert(ctx context.Context, in *payload.Upsert_Request, opts ...grpc.CallOption) (*payload.Object_Location, error) { - out := new(payload.Object_Location) + out := payload.Object_LocationFromVTPool() err := c.cc.Invoke(ctx, "/vald.v1.Upsert/Upsert", in, out, opts...) if err != nil { return nil, err @@ -99,7 +99,7 @@ func (x *upsertStreamUpsertClient) Recv() (*payload.Object_StreamLocation, error } func (c *upsertClient) MultiUpsert(ctx context.Context, in *payload.Upsert_MultiRequest, opts ...grpc.CallOption) (*payload.Object_Locations, error) { - out := new(payload.Object_Locations) + out := payload.Object_LocationsFromVTPool() err := c.cc.Invoke(ctx, "/vald.v1.Upsert/MultiUpsert", in, out, opts...) if err != nil { return nil, err @@ -147,7 +147,7 @@ func RegisterUpsertServer(s grpc.ServiceRegistrar, srv UpsertServer) { } func _Upsert_Upsert_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Upsert_Request) + in := payload.Upsert_RequestFromVTPool() if err := dec(in); err != nil { return nil, err } @@ -183,7 +183,7 @@ func (x *upsertStreamUpsertServer) Send(m *payload.Object_StreamLocation) error } func (x *upsertStreamUpsertServer) Recv() (*payload.Upsert_Request, error) { - m := new(payload.Upsert_Request) + m := payload.Upsert_RequestFromVTPool() if err := x.ServerStream.RecvMsg(m); err != nil { return nil, err } @@ -191,7 +191,7 @@ func (x *upsertStreamUpsertServer) Recv() (*payload.Upsert_Request, error) { } func _Upsert_MultiUpsert_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(payload.Upsert_MultiRequest) + in := payload.Upsert_MultiRequestFromVTPool() if err := dec(in); err != nil { return nil, err } diff --git a/apis/proto/v1/payload/payload.proto b/apis/proto/v1/payload/payload.proto index e18d3c42bac..441b8d82903 100644 --- a/apis/proto/v1/payload/payload.proto +++ b/apis/proto/v1/payload/payload.proto @@ -20,6 +20,7 @@ package payload.v1; import "github.com/envoyproxy/protoc-gen-validate/validate/validate.proto"; import "github.com/googleapis/googleapis/google/rpc/status.proto"; +import "github.com/planetscale/vtprotobuf/include/github.com/planetscale/vtprotobuf/vtproto/ext.proto"; option go_package = "github.com/vdaas/vald/apis/grpc/v1/payload"; option java_multiple_files = true; @@ -28,9 +29,10 @@ option java_outer_classname = "ValdPayload"; // Search related messages. message Search { - + option (vtproto.mempool) = true; // Represent a search request. message Request { + option (vtproto.mempool) = true; // The vector to be searched. repeated float vector = 1 [ (validate.rules).repeated .min_items = 2 ]; // The configuration of the search request. @@ -39,12 +41,14 @@ message Search { // Represent the multiple search request. message MultiRequest { + option (vtproto.mempool) = true; // Represent the multiple search request content. repeated Request requests = 1; } // Represent a search by ID request. message IDRequest { + option (vtproto.mempool) = true; // The vector ID to be searched. string id = 1; // The configuration of the search request. @@ -53,12 +57,14 @@ message Search { // Represent the multiple search by ID request. message MultiIDRequest { + option (vtproto.mempool) = true; // Represent the multiple search by ID request content. repeated IDRequest requests = 1; } // Represent a search by binary object request. message ObjectRequest { + option (vtproto.mempool) = true; // The binary object to be searched. bytes object = 1; // The configuration of the search request. @@ -69,12 +75,14 @@ message Search { // Represent the multiple search by binary object request. message MultiObjectRequest { + option (vtproto.mempool) = true; // Represent the multiple search by binary object request content. repeated ObjectRequest requests = 1; } // Represent search configuration. message Config { + option (vtproto.mempool) = true; // Unique request ID. string request_id = 1; // Maximum number of result to be returned. @@ -95,6 +103,7 @@ message Search { // Represent a search response. message Response { + option (vtproto.mempool) = true; // The unique request ID. string request_id = 1; // Search results. @@ -103,12 +112,14 @@ message Search { // Represent multiple search responses. message Responses { + option (vtproto.mempool) = true; // Represent the multiple search response content. repeated Response responses = 1; } // Represent stream search response. message StreamResponse { + /* option (vtproto.mempool) = true; */ oneof payload { // Represent the search response. Response response = 1; @@ -120,9 +131,11 @@ message Search { // Filter related messages. message Filter { + option (vtproto.mempool) = true; // Represent the target filter server. message Target { + option (vtproto.mempool) = true; // The target hostname. string host = 1; // The target port. @@ -131,6 +144,7 @@ message Filter { // Represent filter configuration. message Config { + option (vtproto.mempool) = true; // Represent the filter target configuration. repeated Target targets = 1; } @@ -138,9 +152,10 @@ message Filter { // Insert related messages. message Insert { - + option (vtproto.mempool) = true; // Represent the insert request. message Request { + option (vtproto.mempool) = true; // The vector to be inserted. Object.Vector vector = 1 [ (validate.rules).repeated .min_items = 2 ]; // The configuration of the insert request. @@ -149,12 +164,14 @@ message Insert { // Represent the multiple insert request. message MultiRequest { + option (vtproto.mempool) = true; // Represent multiple insert request content. repeated Request requests = 1; } // Represent the insert by binary object request. message ObjectRequest { + option (vtproto.mempool) = true; // The binary object to be inserted. Object.Blob object = 1; // The configuration of the insert request. @@ -165,12 +182,14 @@ message Insert { // Represent the multiple insert by binary object request. message MultiObjectRequest { + option (vtproto.mempool) = true; // Represent multiple insert by object content. repeated ObjectRequest requests = 1; } // Represent insert configurations. message Config { + option (vtproto.mempool) = true; // A flag to skip exist check during insert operation. bool skip_strict_exist_check = 1; // Filter configurations. @@ -182,9 +201,10 @@ message Insert { // Update related messages message Update { - + option (vtproto.mempool) = true; // Represent the update request. message Request { + option (vtproto.mempool) = true; // The vector to be updated. Object.Vector vector = 1 [ (validate.rules).repeated .min_items = 2 ]; // The configuration of the update request. @@ -193,12 +213,14 @@ message Update { // Represent the multiple update request. message MultiRequest { + option (vtproto.mempool) = true; // Represent the multiple update request content. repeated Request requests = 1; } // Represent the update binary object request. message ObjectRequest { + option (vtproto.mempool) = true; // The binary object to be updated. Object.Blob object = 1; // The configuration of the update request. @@ -209,12 +231,14 @@ message Update { // Represent the multiple update binary object request. message MultiObjectRequest { + option (vtproto.mempool) = true; // Represent the multiple update object request content. repeated ObjectRequest requests = 1; } // Represent the update configuration. message Config { + option (vtproto.mempool) = true; // A flag to skip exist check during update operation. bool skip_strict_exist_check = 1; // Filter configuration. @@ -228,9 +252,11 @@ message Update { // Upsert related messages. message Upsert { + option (vtproto.mempool) = true; // Represent the upsert request. message Request { + option (vtproto.mempool) = true; // The vector to be upserted. Object.Vector vector = 1 [ (validate.rules).repeated .min_items = 2 ]; // The configuration of the upsert request. @@ -239,12 +265,14 @@ message Upsert { // Represent mthe ultiple upsert request. message MultiRequest { + option (vtproto.mempool) = true; // Represent the multiple upsert request content. repeated Request requests = 1; } // Represent the upsert binary object request. message ObjectRequest { + option (vtproto.mempool) = true; // The binary object to be upserted. Object.Blob object = 1; // The configuration of the upsert request. @@ -255,12 +283,14 @@ message Upsert { // Represent the multiple upsert binary object request. message MultiObjectRequest { + option (vtproto.mempool) = true; // Represent the multiple upsert object request content. repeated ObjectRequest requests = 1; } // Represent the upsert configuration. message Config { + option (vtproto.mempool) = true; // A flag to skip exist check during upsert operation. bool skip_strict_exist_check = 1; // Filter configuration. @@ -274,9 +304,11 @@ message Upsert { // Remove related messages. message Remove { + option (vtproto.mempool) = true; // Represent the remove request. message Request { + option (vtproto.mempool) = true; // The object ID to be removed. Object.ID id = 1; // The configuration of the remove request. @@ -285,12 +317,14 @@ message Remove { // Represent the multiple remove request. message MultiRequest { + option (vtproto.mempool) = true; // Represent the multiple remove request content. repeated Request requests = 1; } // Represent the remove configuration. message Config { + option (vtproto.mempool) = true; // A flag to skip exist check during upsert operation. bool skip_strict_exist_check = 1; // Remove timestamp. @@ -300,9 +334,11 @@ message Remove { // Common messages. message Object { + option (vtproto.mempool) = true; // Represent a request to fetch raw vector. message VectorRequest { + option (vtproto.mempool) = true; // The vector ID to be fetched. ID id = 1 [ (validate.rules).repeated .min_items = 2 ]; // Filter configurations. @@ -311,6 +347,7 @@ message Object { // Represent the ID and distance pair. message Distance { + option (vtproto.mempool) = true; // The vector ID. string id = 1; // The distance. @@ -319,6 +356,7 @@ message Object { // Represent stream response of distances. message StreamDistance { + /* option (vtproto.mempool) = true; */ oneof payload { // The distance. Distance distance = 1; @@ -328,13 +366,20 @@ message Object { } // Represent the vector ID. - message ID { string id = 1 [ (validate.rules).string.min_len = 1 ]; } + message ID { + option (vtproto.mempool) = true; + string id = 1 [ (validate.rules).string.min_len = 1 ]; + } // Represent multiple vector IDs. - message IDs { repeated string ids = 1; } + message IDs { + option (vtproto.mempool) = true; + repeated string ids = 1; + } // Represent a vector. message Vector { + option (vtproto.mempool) = true; // The vector ID. string id = 1 [ (validate.rules).string.min_len = 1 ]; // The vector. @@ -342,10 +387,14 @@ message Object { } // Represent multiple vectors. - message Vectors { repeated Vector vectors = 1; } + message Vectors { + option (vtproto.mempool) = true; + repeated Vector vectors = 1; + } // Represent stream response of the vector. message StreamVector { + /* option (vtproto.mempool) = true; */ oneof payload { // The vector. Vector vector = 1; @@ -356,6 +405,7 @@ message Object { // Represent reshape vector. message ReshapeVector { + option (vtproto.mempool) = true; // The binary object. bytes object = 1; // The new shape. @@ -364,6 +414,7 @@ message Object { // Represent the binary object. message Blob { + option (vtproto.mempool) = true; // The object ID. string id = 1 [ (validate.rules).string.min_len = 1 ]; // The binary object. @@ -372,6 +423,7 @@ message Object { // Represent stream response of binary objects. message StreamBlob { + /* option (vtproto.mempool) = true; */ oneof payload { // The binary object. Blob blob = 1; @@ -382,6 +434,7 @@ message Object { // Represent the vector location. message Location { + option (vtproto.mempool) = true; // The name of the location. string name = 1; // The UUID of the vector. @@ -392,6 +445,7 @@ message Object { // Represent the stream response of the vector location. message StreamLocation { + /* option (vtproto.mempool) = true; */ oneof payload { // The vector location. Location location = 1; @@ -401,13 +455,18 @@ message Object { } // Represent multiple vector locations. - message Locations { repeated Location locations = 1; } + message Locations { + option (vtproto.mempool) = true; + repeated Location locations = 1; + } } // Control related messages. message Control { + option (vtproto.mempool) = true; // Represent the create index request. message CreateIndexRequest { + option (vtproto.mempool) = true; // The pool size of the create index operation. uint32 pool_size = 1 [ (validate.rules).uint32.gte = 0 ]; } @@ -415,9 +474,11 @@ message Control { // Discoverer related messages. message Discoverer { + option (vtproto.mempool) = true; // Represent the dicoverer request. message Request { + option (vtproto.mempool) = true; // The agent name to be discovered. string name = 1 [ (validate.rules).string.min_len = 1 ]; // The namespace to be discovered. @@ -429,12 +490,14 @@ message Discoverer { // Info related messages. message Info { + option (vtproto.mempool) = true; // Represent the index information messages. message Index { - + option (vtproto.mempool) = true; // Represent the index count message. message Count { + option (vtproto.mempool) = true; // The stored index count. uint32 stored = 1; // The uncommitted index count. @@ -447,6 +510,7 @@ message Info { // Represent the UUID message. message UUID { + option (vtproto.mempool) = true; // The committed UUID. message Committed { string uuid = 1; } // The uncommitted UUID. @@ -456,6 +520,7 @@ message Info { // Represent the pod information message. message Pod { + option (vtproto.mempool) = true; // The app name of the pod on the label. string app_name = 1; // The name of the pod. @@ -474,6 +539,7 @@ message Info { // Represent the node information message. message Node { + option (vtproto.mempool) = true; // The name of the node. string name = 1; // The internal IP address of the node. @@ -490,6 +556,7 @@ message Info { // Represent the CPU information message. message CPU { + option (vtproto.mempool) = true; // The CPU resource limit. double limit = 1; // The CPU resource requested. @@ -500,6 +567,7 @@ message Info { // Represent the memory information message. message Memory { + option (vtproto.mempool) = true; // The memory limit. double limit = 1; // The memory requested. @@ -510,18 +578,23 @@ message Info { // Represent the multiple pod information message. message Pods { + option (vtproto.mempool) = true; // The multiple pod information. repeated Pod pods = 1 [ (validate.rules).repeated .min_items = 1 ]; } // Represent the multiple node information message. message Nodes { + option (vtproto.mempool) = true; // The multiple node information. repeated Node nodes = 1 [ (validate.rules).repeated .min_items = 1 ]; } // Represent the multiple IP message. - message IPs { repeated string ip = 1; } + message IPs { + option (vtproto.mempool) = true; + repeated string ip = 1; + } } // Represent an empty message. diff --git a/charts/vald-helm-operator/crds/valdrelease.yaml b/charts/vald-helm-operator/crds/valdrelease.yaml index 370c0faa555..d10e94dd0e6 100644 --- a/charts/vald-helm-operator/crds/valdrelease.yaml +++ b/charts/vald-helm-operator/crds/valdrelease.yaml @@ -116,6 +116,12 @@ spec: items: type: object x-kubernetes-preserve-unknown-fields: true + algorithm: + type: string + enum: + - ngt + - qbg + - faiss annotations: type: object x-kubernetes-preserve-unknown-fields: true @@ -311,7 +317,7 @@ spec: - go_os - go_arch - cgo_enabled - - ngt_version + - algorithm_info - build_cpu_info_flags otlp: type: object @@ -729,6 +735,8 @@ spec: type: integer connection_timeout: type: string + enable_admin: + type: boolean enable_reflection: type: boolean header_table_size: @@ -1219,7 +1227,7 @@ spec: - go_os - go_arch - cgo_enabled - - ngt_version + - algorithm_info - build_cpu_info_flags otlp: type: object @@ -1589,6 +1597,8 @@ spec: type: integer connection_timeout: type: string + enable_admin: + type: boolean enable_reflection: type: boolean header_table_size: @@ -2051,7 +2061,7 @@ spec: - go_os - go_arch - cgo_enabled - - ngt_version + - algorithm_info - build_cpu_info_flags otlp: type: object @@ -2412,6 +2422,8 @@ spec: type: integer connection_timeout: type: string + enable_admin: + type: boolean enable_reflection: type: boolean header_table_size: @@ -2862,7 +2874,7 @@ spec: - go_os - go_arch - cgo_enabled - - ngt_version + - algorithm_info - build_cpu_info_flags otlp: type: object @@ -3260,6 +3272,8 @@ spec: type: integer connection_timeout: type: string + enable_admin: + type: boolean enable_reflection: type: boolean header_table_size: @@ -4218,7 +4232,7 @@ spec: - go_os - go_arch - cgo_enabled - - ngt_version + - algorithm_info - build_cpu_info_flags otlp: type: object @@ -4616,6 +4630,8 @@ spec: type: integer connection_timeout: type: string + enable_admin: + type: boolean enable_reflection: type: boolean header_table_size: @@ -5372,7 +5388,7 @@ spec: - go_os - go_arch - cgo_enabled - - ngt_version + - algorithm_info - build_cpu_info_flags otlp: type: object @@ -5770,6 +5786,8 @@ spec: type: integer connection_timeout: type: string + enable_admin: + type: boolean enable_reflection: type: boolean header_table_size: @@ -6509,7 +6527,7 @@ spec: - go_os - go_arch - cgo_enabled - - ngt_version + - algorithm_info - build_cpu_info_flags otlp: type: object @@ -6910,6 +6928,8 @@ spec: type: integer connection_timeout: type: string + enable_admin: + type: boolean enable_reflection: type: boolean header_table_size: diff --git a/charts/vald/README.md b/charts/vald/README.md index 289b2922301..9340c347074 100644 --- a/charts/vald/README.md +++ b/charts/vald/README.md @@ -50,8 +50,9 @@ Run the following command to install the chart, | agent.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms | list | `[]` | node affinity required node selectors | | agent.affinity.podAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod affinity preferred scheduling terms | | agent.affinity.podAffinity.requiredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod affinity required scheduling terms | -| agent.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[{"podAffinityTerm":{"labelSelector":{"matchExpressions":[{"key":"app","operator":"In","values":["vald-agent-ngt"]}]},"topologyKey":"kubernetes.io/hostname"},"weight":100}]` | pod anti-affinity preferred scheduling terms | +| agent.affinity.podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution | list | `[{"podAffinityTerm":{"labelSelector":{"matchExpressions":[{"key":"app","operator":"In","values":["vald-agent"]}]},"topologyKey":"kubernetes.io/hostname"},"weight":100}]` | pod anti-affinity preferred scheduling terms | | agent.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution | list | `[]` | pod anti-affinity required scheduling terms | +| agent.algorithm | string | `"ngt"` | agent algorithm type. it should be `ngt` or `qbg` or `faiss`. | | agent.annotations | object | `{}` | deployment annotations | | agent.enabled | bool | `true` | agent enabled | | agent.env | list | `[{"name":"MY_NODE_NAME","valueFrom":{"fieldRef":{"fieldPath":"spec.nodeName"}}},{"name":"MY_POD_NAME","valueFrom":{"fieldRef":{"fieldPath":"metadata.name"}}},{"name":"MY_POD_NAMESPACE","valueFrom":{"fieldRef":{"fieldPath":"metadata.namespace"}}}]` | environment variables | @@ -67,7 +68,7 @@ Run the following command to install the chart, | agent.maxReplicas | int | `300` | maximum number of replicas. if HPA is disabled, this value will be ignored. | | agent.maxUnavailable | string | `"1"` | maximum number of unavailable replicas | | agent.minReplicas | int | `20` | minimum number of replicas. if HPA is disabled, the replicas will be set to this value | -| agent.name | string | `"vald-agent-ngt"` | name of agent deployment | +| agent.name | string | `"vald-agent"` | name of agent deployment | | agent.ngt.auto_create_index_pool_size | int | `10000` | batch process pool size of automatic create index operation | | agent.ngt.auto_index_check_duration | string | `"30m"` | check duration of automatic indexing | | agent.ngt.auto_index_duration_limit | string | `"24h"` | limit duration of automatic indexing | @@ -95,7 +96,7 @@ Run the following command to install the chart, | agent.ngt.vqueue.insert_buffer_pool_size | int | `10000` | insert slice pool buffer size | | agent.nodeName | string | `""` | node name | | agent.nodeSelector | object | `{}` | node selector | -| agent.observability | object | `{"otlp":{"attribute":{"service_name":"vald-agent-ngt"}}}` | observability config (overrides defaults.observability) | +| agent.observability | object | `{"otlp":{"attribute":{"service_name":"vald-agent"}}}` | observability config (overrides defaults.observability) | | agent.persistentVolume.accessMode | string | `"ReadWriteOncePod"` | agent pod storage accessMode | | agent.persistentVolume.enabled | bool | `false` | enables PVC. It is required to enable if agent pod's file store functionality is enabled with non in-memory mode | | agent.persistentVolume.mountPropagation | string | `"None"` | agent pod storage mountPropagation | @@ -299,7 +300,7 @@ Run the following command to install the chart, | defaults.observability.metrics.enable_goroutine | bool | `true` | goroutine metrics enabled | | defaults.observability.metrics.enable_memory | bool | `true` | memory metrics enabled | | defaults.observability.metrics.enable_version_info | bool | `true` | version info metrics enabled | -| defaults.observability.metrics.version_info_labels | list | `["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","ngt_version"]` | enabled label names of version info | +| defaults.observability.metrics.version_info_labels | list | `["vald_version","server_name","git_commit","build_time","go_version","go_os","go_arch","algorithm_info"]` | enabled label names of version info | | defaults.observability.otlp.attribute | object | `{"namespace":"_MY_POD_NAMESPACE_","node_name":"_MY_NODE_NAME_","pod_name":"_MY_POD_NAME_","service_name":"vald"}` | default resource attribute | | defaults.observability.otlp.attribute.namespace | string | `"_MY_POD_NAMESPACE_"` | namespace | | defaults.observability.otlp.attribute.node_name | string | `"_MY_NODE_NAME_"` | node name | @@ -414,6 +415,7 @@ Run the following command to install the chart, | defaults.server_config.servers.grpc.port | int | `8081` | gRPC server port | | defaults.server_config.servers.grpc.server.grpc.bidirectional_stream_concurrency | int | `20` | gRPC server bidirectional stream concurrency | | defaults.server_config.servers.grpc.server.grpc.connection_timeout | string | `""` | gRPC server connection timeout | +| defaults.server_config.servers.grpc.server.grpc.enable_admin | bool | `true` | gRPC server admin option | | defaults.server_config.servers.grpc.server.grpc.enable_reflection | bool | `true` | gRPC server reflection option | | defaults.server_config.servers.grpc.server.grpc.header_table_size | int | `0` | gRPC server header table size | | defaults.server_config.servers.grpc.server.grpc.initial_conn_window_size | int | `0` | gRPC server initial connection window size | diff --git a/charts/vald/templates/agent/daemonset.yaml b/charts/vald/templates/agent/daemonset.yaml deleted file mode 100644 index 6a3f2f89cd2..00000000000 --- a/charts/vald/templates/agent/daemonset.yaml +++ /dev/null @@ -1,201 +0,0 @@ -# -# Copyright (C) 2019-2023 vdaas.org vald team -# -# 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 -# -# https://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. -# -{{- $agent := .Values.agent -}} -{{- if and $agent.enabled (eq $agent.kind "DaemonSet") }} -apiVersion: apps/v1 -kind: DaemonSet -metadata: - name: {{ $agent.name }} - labels: - app: {{ $agent.name }} - app.kubernetes.io/name: {{ include "vald.name" . }} - helm.sh/chart: {{ include "vald.chart" . }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/version: {{ .Chart.Version }} - app.kubernetes.io/component: agent - {{- if $agent.annotations }} - annotations: - {{- toYaml $agent.annotations | nindent 4 }} - {{- end }} -spec: - revisionHistoryLimit: {{ $agent.revisionHistoryLimit }} - selector: - matchLabels: - app: {{ $agent.name }} - updateStrategy: - type: RollingUpdate - rollingUpdate: - maxUnavailable: {{ $agent.rollingUpdate.maxUnavailable }} - maxSurge: {{ $agent.rollingUpdate.maxSurge }} - template: - metadata: - creationTimestamp: null - labels: - app: {{ $agent.name }} - app.kubernetes.io/name: {{ include "vald.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/component: agent - {{- $pprof := default .Values.defaults.server_config.metrics.pprof $agent.server_config.metrics.pprof }} - {{- if or $agent.podAnnotations $agent.sidecar.enabled $pprof.enabled }} - annotations: - {{- if $agent.podAnnotations }} - {{- toYaml $agent.podAnnotations | nindent 8 }} - {{- end }} - {{- if $pprof.enabled }} - pyroscope.io/scrape: "true" - pyroscope.io/application-name: {{ $agent.name }} - pyroscope.io/profile-cpu-enabled: "true" - pyroscope.io/profile-mem-enabled: "true" - pyroscope.io/port: "{{ $pprof.port }}" - {{- end }} - {{- if $agent.sidecar.enabled }} - checksum/configmap: {{ include (print $.Template.BasePath "/agent/configmap.yaml") . | sha256sum }} - checksum/sidecar-configmap: {{ include (print $.Template.BasePath "/agent/sidecar-configmap.yaml") . | sha256sum }} - {{- end }} - {{- end }} - spec: - {{- if or $agent.initContainers $agent.sidecar.initContainerEnabled }} - initContainers: - {{- if $agent.initContainers }} - {{- $initContainers := dict "initContainers" $agent.initContainers "Values" .Values "namespace" .Release.Namespace -}} - {{- include "vald.initContainers" $initContainers | trim | nindent 8 }} - {{- end }} - {{- if $agent.sidecar.initContainerEnabled }} - - name: {{ $agent.sidecar.name }}-init - image: "{{ $agent.sidecar.image.repository }}:{{ default .Values.defaults.image.tag $agent.sidecar.image.tag }}" - imagePullPolicy: {{ $agent.sidecar.image.pullPolicy }} - {{- $servers := dict "Values" $agent.sidecar.server_config "default" .Values.defaults.server_config -}} - {{- include "vald.containerPorts" $servers | trim | nindent 10 }} - resources: - {{- toYaml $agent.sidecar.resources | nindent 12 }} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - {{- if $agent.securityContext }} - securityContext: - {{- toYaml $agent.securityContext | nindent 12 }} - {{- end }} - env: - - name: VALD_AGENT_SIDECAR_MODE - value: "initcontainer" - {{- if $agent.sidecar.env }} - {{- toYaml $agent.sidecar.env | nindent 12 }} - {{- end }} - volumeMounts: - - name: {{ $agent.sidecar.name }}-config - mountPath: /etc/server/ - {{- if $agent.volumeMounts }} - {{- toYaml $agent.volumeMounts | nindent 12 }} - {{- end }} - {{- end }} - {{- end }} - affinity: - {{- include "vald.affinity" $agent.affinity | nindent 8 }} - {{- if $agent.topologySpreadConstraints }} - topologySpreadConstraints: - {{- toYaml $agent.topologySpreadConstraints | nindent 8 }} - {{- end }} - containers: - - name: {{ $agent.name }} - image: "{{ $agent.image.repository }}:{{ default .Values.defaults.image.tag $agent.image.tag }}" - imagePullPolicy: {{ $agent.image.pullPolicy }} - {{- $servers := dict "Values" $agent.server_config "default" .Values.defaults.server_config -}} - {{- include "vald.containerPorts" $servers | trim | nindent 10 }} - resources: - {{- toYaml $agent.resources | nindent 12 }} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - {{- if $agent.securityContext }} - securityContext: - {{- toYaml $agent.securityContext | nindent 12 }} - {{- end }} - {{- if $agent.env }} - env: - {{- toYaml $agent.env | nindent 12 }} - {{- end }} - volumeMounts: - - name: {{ $agent.name }}-config - mountPath: /etc/server/ - {{- if $agent.volumeMounts }} - {{- toYaml $agent.volumeMounts | nindent 12 }} - {{- end }} - {{- if $agent.sidecar.enabled }} - - name: {{ $agent.sidecar.name }} - image: "{{ $agent.sidecar.image.repository }}:{{ default .Values.defaults.image.tag $agent.sidecar.image.tag }}" - imagePullPolicy: {{ $agent.sidecar.image.pullPolicy }} - {{- $servers := dict "Values" $agent.sidecar.server_config "default" .Values.defaults.server_config -}} - {{- include "vald.containerPorts" $servers | trim | nindent 10 }} - resources: - {{- toYaml $agent.sidecar.resources | nindent 12 }} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - {{- if $agent.securityContext }} - securityContext: - {{- toYaml $agent.securityContext | nindent 12 }} - {{- end }} - env: - - name: VALD_AGENT_SIDECAR_MODE - value: "sidecar" - {{- if $agent.sidecar.env }} - {{- toYaml $agent.sidecar.env | nindent 12 }} - {{- end }} - volumeMounts: - - name: {{ $agent.sidecar.name }}-config - mountPath: /etc/server/ - {{- if $agent.volumeMounts }} - {{- toYaml $agent.volumeMounts | nindent 12 }} - {{- end }} - {{- end }} - dnsPolicy: ClusterFirst - restartPolicy: Always - schedulerName: default-scheduler - {{- if $agent.podSecurityContext }} - securityContext: - {{- toYaml $agent.podSecurityContext | nindent 8 }} - {{- end }} - terminationGracePeriodSeconds: {{ $agent.terminationGracePeriodSeconds }} - volumes: - - name: {{ $agent.name }}-config - configMap: - defaultMode: 420 - name: {{ $agent.name }}-config - {{- if or $agent.sidecar.enabled $agent.sidecar.initContainerEnabled }} - - name: {{ $agent.sidecar.name }}-config - configMap: - defaultMode: 420 - name: {{ $agent.sidecar.name }}-config - {{- end }} - {{- if $agent.volumes }} - {{- toYaml $agent.volumes | nindent 8 }} - {{- end }} - {{- if $agent.nodeName }} - nodeName: {{ $agent.nodeName }} - {{- end }} - {{- if $agent.nodeSelector }} - nodeSelector: - {{- toYaml $agent.nodeSelector | nindent 8 }} - {{- end }} - {{- if $agent.tolerations }} - tolerations: - {{- toYaml $agent.tolerations | nindent 8 }} - {{- end }} - {{- if $agent.podPriority }} - {{- if $agent.podPriority.enabled }} - priorityClassName: {{ .Release.Namespace }}-{{ $agent.name }}-priority - {{- end }} - {{- end }} -status: -{{- end }} diff --git a/charts/vald/templates/agent/deployment.yaml b/charts/vald/templates/agent/deployment.yaml deleted file mode 100644 index d58c3a17962..00000000000 --- a/charts/vald/templates/agent/deployment.yaml +++ /dev/null @@ -1,205 +0,0 @@ -# -# Copyright (C) 2019-2023 vdaas.org vald team -# -# 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 -# -# https://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. -# -{{- $agent := .Values.agent -}} -{{- if and $agent.enabled (eq $agent.kind "Deployment") }} -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ $agent.name }} - labels: - app: {{ $agent.name }} - app.kubernetes.io/name: {{ include "vald.name" . }} - helm.sh/chart: {{ include "vald.chart" . }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/version: {{ .Chart.Version }} - app.kubernetes.io/component: agent - {{- if $agent.annotations }} - annotations: - {{- toYaml $agent.annotations | nindent 4 }} - {{- end }} -spec: - progressDeadlineSeconds: {{ $agent.progressDeadlineSeconds }} - {{- if not $agent.hpa.enabled }} - replicas: {{ $agent.minReplicas }} - {{- end }} - revisionHistoryLimit: {{ $agent.revisionHistoryLimit }} - selector: - matchLabels: - app: {{ $agent.name }} - strategy: - type: RollingUpdate - rollingUpdate: - maxSurge: {{ $agent.rollingUpdate.maxSurge }} - maxUnavailable: {{ $agent.rollingUpdate.maxUnavailable }} - template: - metadata: - creationTimestamp: null - labels: - app: {{ $agent.name }} - app.kubernetes.io/name: {{ include "vald.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/component: agent - {{- $pprof := default .Values.defaults.server_config.metrics.pprof $agent.server_config.metrics.pprof }} - {{- if or $agent.podAnnotations $agent.sidecar.enabled $pprof.enabled }} - annotations: - {{- if $agent.podAnnotations }} - {{- toYaml $agent.podAnnotations | nindent 8 }} - {{- end }} - {{- if $pprof.enabled }} - pyroscope.io/scrape: "true" - pyroscope.io/application-name: {{ $agent.name }} - pyroscope.io/profile-cpu-enabled: "true" - pyroscope.io/profile-mem-enabled: "true" - pyroscope.io/port: "{{ $pprof.port }}" - {{- end }} - {{- if $agent.sidecar.enabled }} - checksum/configmap: {{ include (print $.Template.BasePath "/agent/configmap.yaml") . | sha256sum }} - checksum/sidecar-configmap: {{ include (print $.Template.BasePath "/agent/sidecar-configmap.yaml") . | sha256sum }} - {{- end }} - {{- end }} - spec: - {{- if or $agent.initContainers $agent.sidecar.initContainerEnabled }} - initContainers: - {{- if $agent.initContainers }} - {{- $initContainers := dict "initContainers" $agent.initContainers "Values" .Values "namespace" .Release.Namespace -}} - {{- include "vald.initContainers" $initContainers | trim | nindent 8 }} - {{- end }} - {{- if $agent.sidecar.initContainerEnabled }} - - name: {{ $agent.sidecar.name }}-init - image: "{{ $agent.sidecar.image.repository }}:{{ default .Values.defaults.image.tag $agent.sidecar.image.tag }}" - imagePullPolicy: {{ $agent.sidecar.image.pullPolicy }} - {{- $servers := dict "Values" $agent.sidecar.server_config "default" .Values.defaults.server_config -}} - {{- include "vald.containerPorts" $servers | trim | nindent 10 }} - resources: - {{- toYaml $agent.sidecar.resources | nindent 12 }} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - {{- if $agent.securityContext }} - securityContext: - {{- toYaml $agent.securityContext | nindent 12 }} - {{- end }} - env: - - name: VALD_AGENT_SIDECAR_MODE - value: "initcontainer" - {{- if $agent.sidecar.env }} - {{- toYaml $agent.sidecar.env | nindent 12 }} - {{- end }} - volumeMounts: - - name: {{ $agent.sidecar.name }}-config - mountPath: /etc/server/ - {{- if $agent.volumeMounts }} - {{- toYaml $agent.volumeMounts | nindent 12 }} - {{- end }} - {{- end }} - {{- end }} - affinity: - {{- include "vald.affinity" $agent.affinity | nindent 8 }} - {{- if $agent.topologySpreadConstraints }} - topologySpreadConstraints: - {{- toYaml $agent.topologySpreadConstraints | nindent 8 }} - {{- end }} - containers: - - name: {{ $agent.name }} - image: "{{ $agent.image.repository }}:{{ default .Values.defaults.image.tag $agent.image.tag }}" - imagePullPolicy: {{ $agent.image.pullPolicy }} - {{- $servers := dict "Values" $agent.server_config "default" .Values.defaults.server_config -}} - {{- include "vald.containerPorts" $servers | trim | nindent 10 }} - resources: - {{- toYaml $agent.resources | nindent 12 }} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - {{- if $agent.securityContext }} - securityContext: - {{- toYaml $agent.securityContext | nindent 12 }} - {{- end }} - {{- if $agent.env }} - env: - {{- toYaml $agent.env | nindent 12 }} - {{- end }} - volumeMounts: - - name: {{ $agent.name }}-config - mountPath: /etc/server/ - {{- if $agent.volumeMounts }} - {{- toYaml $agent.volumeMounts | nindent 12 }} - {{- end }} - {{- if $agent.sidecar.enabled }} - - name: {{ $agent.sidecar.name }} - image: "{{ $agent.sidecar.image.repository }}:{{ default .Values.defaults.image.tag $agent.sidecar.image.tag }}" - imagePullPolicy: {{ $agent.sidecar.image.pullPolicy }} - {{- $servers := dict "Values" $agent.sidecar.server_config "default" .Values.defaults.server_config -}} - {{- include "vald.containerPorts" $servers | trim | nindent 10 }} - resources: - {{- toYaml $agent.sidecar.resources | nindent 12 }} - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - {{- if $agent.securityContext }} - securityContext: - {{- toYaml $agent.securityContext | nindent 12 }} - {{- end }} - env: - - name: VALD_AGENT_SIDECAR_MODE - value: "sidecar" - {{- if $agent.sidecar.env }} - {{- toYaml $agent.sidecar.env | nindent 12 }} - {{- end }} - volumeMounts: - - name: {{ $agent.sidecar.name }}-config - mountPath: /etc/server/ - {{- if $agent.volumeMounts }} - {{- toYaml $agent.volumeMounts | nindent 12 }} - {{- end }} - {{- end }} - dnsPolicy: ClusterFirst - restartPolicy: Always - schedulerName: default-scheduler - {{- if $agent.podSecurityContext }} - securityContext: - {{- toYaml $agent.podSecurityContext | nindent 8 }} - {{- end }} - terminationGracePeriodSeconds: {{ $agent.terminationGracePeriodSeconds }} - volumes: - - name: {{ $agent.name }}-config - configMap: - defaultMode: 420 - name: {{ $agent.name }}-config - {{- if or $agent.sidecar.enabled $agent.sidecar.initContainerEnabled }} - - name: {{ $agent.sidecar.name }}-config - configMap: - defaultMode: 420 - name: {{ $agent.sidecar.name }}-config - {{- end }} - {{- if $agent.volumes }} - {{- toYaml $agent.volumes | nindent 8 }} - {{- end }} - {{- if $agent.nodeName }} - nodeName: {{ $agent.nodeName }} - {{- end }} - {{- if $agent.nodeSelector }} - nodeSelector: - {{- toYaml $agent.nodeSelector | nindent 8 }} - {{- end }} - {{- if $agent.tolerations }} - tolerations: - {{- toYaml $agent.tolerations | nindent 8 }} - {{- end }} - {{- if $agent.podPriority }} - {{- if $agent.podPriority.enabled }} - priorityClassName: {{ .Release.Namespace }}-{{ $agent.name }}-priority - {{- end }} - {{- end }} -status: -{{- end }} diff --git a/charts/vald/templates/agent/faiss/configmap.yaml b/charts/vald/templates/agent/faiss/configmap.yaml new file mode 100644 index 00000000000..53ff21f77d7 --- /dev/null +++ b/charts/vald/templates/agent/faiss/configmap.yaml @@ -0,0 +1,45 @@ +# +# Copyright (C) 2019-2023 vdaas.org vald team +# +# 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 +# +# https://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. +# +{{- $agent := .Values.agent -}} +{{- if and ($agent.enabled) (eq (lower $agent.algorithm) "faiss")}} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ $agent.name }}-config + labels: + app.kubernetes.io/name: {{ include "vald.name" . }} + helm.sh/chart: {{ include "vald.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/version: {{ .Chart.Version }} + app.kubernetes.io/component: agent +data: + config.yaml: | + --- + version: {{ $agent.version }} + time_zone: {{ default .Values.defaults.time_zone $agent.time_zone }} + logging: + {{- $logging := dict "Values" $agent.logging "default" .Values.defaults.logging }} + {{- include "vald.logging" $logging | nindent 6 }} + server_config: + {{- $servers := dict "Values" $agent.server_config "default" .Values.defaults.server_config }} + {{- include "vald.servers" $servers | nindent 6 }} + observability: + {{- $observability := dict "Values" $agent.observability "default" .Values.defaults.observability }} + {{- include "vald.observability" $observability | nindent 6 }} + faiss: + {{- toYaml $agent.faiss | nindent 6 }} +{{- end }} diff --git a/charts/vald/templates/agent/configmap.yaml b/charts/vald/templates/agent/ngt/configmap.yaml similarity index 96% rename from charts/vald/templates/agent/configmap.yaml rename to charts/vald/templates/agent/ngt/configmap.yaml index ced5a7701ac..3bc66e98f4b 100644 --- a/charts/vald/templates/agent/configmap.yaml +++ b/charts/vald/templates/agent/ngt/configmap.yaml @@ -14,7 +14,7 @@ # limitations under the License. # {{- $agent := .Values.agent -}} -{{- if $agent.enabled }} +{{- if and ($agent.enabled) (eq (lower $agent.algorithm) "ngt")}} apiVersion: v1 kind: ConfigMap metadata: diff --git a/charts/vald/templates/agent/qbg/configmap.yaml b/charts/vald/templates/agent/qbg/configmap.yaml new file mode 100644 index 00000000000..d1350f7ccc3 --- /dev/null +++ b/charts/vald/templates/agent/qbg/configmap.yaml @@ -0,0 +1,45 @@ +# +# Copyright (C) 2019-2023 vdaas.org vald team +# +# 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 +# +# https://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. +# +{{- $agent := .Values.agent -}} +{{- if and ($agent.enabled) (eq (lower $agent.algorithm) "qbg")}} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ $agent.name }}-config + labels: + app.kubernetes.io/name: {{ include "vald.name" . }} + helm.sh/chart: {{ include "vald.chart" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/version: {{ .Chart.Version }} + app.kubernetes.io/component: agent +data: + config.yaml: | + --- + version: {{ $agent.version }} + time_zone: {{ default .Values.defaults.time_zone $agent.time_zone }} + logging: + {{- $logging := dict "Values" $agent.logging "default" .Values.defaults.logging }} + {{- include "vald.logging" $logging | nindent 6 }} + server_config: + {{- $servers := dict "Values" $agent.server_config "default" .Values.defaults.server_config }} + {{- include "vald.servers" $servers | nindent 6 }} + observability: + {{- $observability := dict "Values" $agent.observability "default" .Values.defaults.observability }} + {{- include "vald.observability" $observability | nindent 6 }} + qbg: + {{- toYaml $agent.qbg | nindent 6 }} +{{- end }} diff --git a/charts/vald/templates/agent/sidecar-configmap.yaml b/charts/vald/templates/agent/sidecar/configmap.yaml similarity index 100% rename from charts/vald/templates/agent/sidecar-configmap.yaml rename to charts/vald/templates/agent/sidecar/configmap.yaml diff --git a/charts/vald/templates/agent/sidecar-svc.yaml b/charts/vald/templates/agent/sidecar/svc.yaml similarity index 100% rename from charts/vald/templates/agent/sidecar-svc.yaml rename to charts/vald/templates/agent/sidecar/svc.yaml diff --git a/charts/vald/templates/agent/statefulset.yaml b/charts/vald/templates/agent/statefulset.yaml index c33245683e6..5da363220e7 100644 --- a/charts/vald/templates/agent/statefulset.yaml +++ b/charts/vald/templates/agent/statefulset.yaml @@ -101,6 +101,7 @@ spec: volumeMounts: - name: {{ $agent.sidecar.name }}-config mountPath: /etc/server/ + {{- if eq $agent.algorithm "ngt" }} {{- if not $agent.ngt.enable_in_memory_mode }} {{- if $agent.ngt.index_path }} {{- if $agent.persistentVolume.enabled }} @@ -113,6 +114,7 @@ spec: {{- end }} {{- end }} {{- end }} + {{- end }} {{- if $agent.volumeMounts }} {{- toYaml $agent.volumeMounts | nindent 12 }} {{- end }} diff --git a/charts/vald/values.schema.json b/charts/vald/values.schema.json index 7629ca858b5..9b6c9314190 100644 --- a/charts/vald/values.schema.json +++ b/charts/vald/values.schema.json @@ -61,6 +61,11 @@ } } }, + "algorithm": { + "type": "string", + "description": "agent algorithm type. it should be `ngt` or `qbg` or `faiss`.", + "enum": ["ngt", "qbg", "faiss"] + }, "annotations": { "type": "object", "description": "deployment annotations" @@ -331,7 +336,7 @@ "go_os", "go_arch", "cgo_enabled", - "ngt_version", + "algorithm_info", "build_cpu_info_flags" ] } @@ -1060,6 +1065,10 @@ "type": "string", "description": "gRPC server connection timeout" }, + "enable_admin": { + "type": "boolean", + "description": "gRPC server admin option" + }, "enable_reflection": { "type": "boolean", "description": "gRPC server reflection option" @@ -1896,7 +1905,7 @@ "go_os", "go_arch", "cgo_enabled", - "ngt_version", + "algorithm_info", "build_cpu_info_flags" ] } @@ -2550,6 +2559,10 @@ "type": "string", "description": "gRPC server connection timeout" }, + "enable_admin": { + "type": "boolean", + "description": "gRPC server admin option" + }, "enable_reflection": { "type": "boolean", "description": "gRPC server reflection option" @@ -3315,7 +3328,7 @@ "go_os", "go_arch", "cgo_enabled", - "ngt_version", + "algorithm_info", "build_cpu_info_flags" ] } @@ -3955,6 +3968,10 @@ "type": "string", "description": "gRPC server connection timeout" }, + "enable_admin": { + "type": "boolean", + "description": "gRPC server admin option" + }, "enable_reflection": { "type": "boolean", "description": "gRPC server reflection option" @@ -4660,7 +4677,7 @@ "go_os", "go_arch", "cgo_enabled", - "ngt_version", + "algorithm_info", "build_cpu_info_flags" ] } @@ -5355,6 +5372,10 @@ "type": "string", "description": "gRPC server connection timeout" }, + "enable_admin": { + "type": "boolean", + "description": "gRPC server admin option" + }, "enable_reflection": { "type": "boolean", "description": "gRPC server reflection option" @@ -6941,7 +6962,7 @@ "go_os", "go_arch", "cgo_enabled", - "ngt_version", + "algorithm_info", "build_cpu_info_flags" ] } @@ -7642,6 +7663,10 @@ "type": "string", "description": "gRPC server connection timeout" }, + "enable_admin": { + "type": "boolean", + "description": "gRPC server admin option" + }, "enable_reflection": { "type": "boolean", "description": "gRPC server reflection option" @@ -8879,7 +8904,7 @@ "go_os", "go_arch", "cgo_enabled", - "ngt_version", + "algorithm_info", "build_cpu_info_flags" ] } @@ -9580,6 +9605,10 @@ "type": "string", "description": "gRPC server connection timeout" }, + "enable_admin": { + "type": "boolean", + "description": "gRPC server admin option" + }, "enable_reflection": { "type": "boolean", "description": "gRPC server reflection option" @@ -10801,7 +10830,7 @@ "go_os", "go_arch", "cgo_enabled", - "ngt_version", + "algorithm_info", "build_cpu_info_flags" ] } @@ -11507,6 +11536,10 @@ "type": "string", "description": "gRPC server connection timeout" }, + "enable_admin": { + "type": "boolean", + "description": "gRPC server admin option" + }, "enable_reflection": { "type": "boolean", "description": "gRPC server reflection option" diff --git a/charts/vald/values.yaml b/charts/vald/values.yaml index 0c0b6509aa8..832bde4e730 100644 --- a/charts/vald/values.yaml +++ b/charts/vald/values.yaml @@ -210,6 +210,9 @@ defaults: # @schema {"name": "defaults.server_config.servers.grpc.server.grpc.enable_reflection", "type": "boolean"} # defaults.server_config.servers.grpc.server.grpc.enable_reflection -- gRPC server reflection option enable_reflection: true + # @schema {"name": "defaults.server_config.servers.grpc.server.grpc.enable_admin", "type": "boolean"} + # defaults.server_config.servers.grpc.server.grpc.enable_admin -- gRPC server admin option + enable_admin: true # @schema {"name": "defaults.server_config.servers.grpc.server.socket_option", "alias": "socket_option"} socket_option: # defaults.server_config.servers.grpc.server.socket_option.reuse_port -- server listen socket option for reuse_port functionality @@ -805,7 +808,7 @@ defaults: # @schema {"name": "defaults.observability.metrics.enable_version_info", "type": "boolean"} # defaults.observability.metrics.enable_version_info -- version info metrics enabled enable_version_info: true - # @schema {"name": "defaults.observability.metrics.version_info_labels", "type": "array", "items": {"type": "string", "enum": ["vald_version", "server_name", "git_commit", "build_time", "go_version", "go_os", "go_arch", "cgo_enabled", "ngt_version", "build_cpu_info_flags"]}} + # @schema {"name": "defaults.observability.metrics.version_info_labels", "type": "array", "items": {"type": "string", "enum": ["vald_version", "server_name", "git_commit", "build_time", "go_version", "go_os", "go_arch", "cgo_enabled", "algorithm_info", "build_cpu_info_flags"]}} # defaults.observability.metrics.version_info_labels -- enabled label names of version info version_info_labels: - "vald_version" @@ -815,7 +818,7 @@ defaults: - "go_version" - "go_os" - "go_arch" - - "ngt_version" + - "algorithm_info" # @schema {"name": "defaults.observability.metrics.enable_memory", "type": "boolean"} # defaults.observability.metrics.enable_memory -- memory metrics enabled enable_memory: true @@ -1395,6 +1398,10 @@ agent: # @schema {"name": "agent.version", "alias": "version"} # agent.version -- version of agent config version: v0.0.0 + # @schema {"name": "agent.algorithm", "type": "string", "enum": ["ngt", "qbg", "faiss"]} + # agent.algorithm -- agent algorithm type. + # it should be `ngt` or `qbg` or `faiss`. + algorithm: ngt # @schema {"name": "agent.time_zone", "type": "string"} # agent.time_zone -- Time zone time_zone: "" @@ -1403,7 +1410,7 @@ agent: logging: {} # @schema {"name": "agent.name", "type": "string"} # agent.name -- name of agent deployment - name: vald-agent-ngt + name: vald-agent # @schema {"name": "agent.kind", "type": "string", "enum": ["StatefulSet", "Deployment", "DaemonSet"]} # agent.kind -- deployment kind: Deployment, DaemonSet or StatefulSet kind: StatefulSet @@ -1574,7 +1581,7 @@ agent: - key: app operator: In values: - - vald-agent-ngt + - vald-agent # agent.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution -- pod anti-affinity required scheduling terms requiredDuringSchedulingIgnoredDuringExecution: [] # @schema {"name": "agent.topologySpreadConstraints", "alias": "topologySpreadConstraints"} @@ -1600,7 +1607,7 @@ agent: observability: otlp: attribute: - service_name: vald-agent-ngt + service_name: vald-agent # @schema {"name": "agent.resources", "alias": "resources"} # agent.resources -- compute resources. # recommended setting of memory requests = cluster memory * 0.4 / number of agent pods @@ -1642,9 +1649,8 @@ agent: # it should be `l1`, `l2`, `angle`, `hamming`, `cosine`,`poincare`, `lorentz`, `jaccard`, `sparsejaccard`, `normalizedangle` or `normalizedcosine`. # for further details about NGT libraries supported distance is https://github.com/yahoojapan/NGT/wiki/Command-Quick-Reference # and vald agent's supported NGT distance type is https://pkg.go.dev/github.com/vdaas/vald/internal/core/algorithm/ngt#pkg-constants - distance_type: - l2 - # @schema {"name": "agent.ngt.object_type", "type": "string", "enum": ["float", "float16", "uint8"]} + distance_type: l2 + # @schema {"name": "agent.ngt.object_type", "type": "string", "enum": ["float", "float16", "uint8"]} # agent.ngt.object_type -- object type. # it should be `float` or `uint8` or `float16`. # for further details: https://github.com/yahoojapan/NGT/wiki/Command-Quick-Reference diff --git a/charts/vald/values/dev.yaml b/charts/vald/values/dev.yaml index c488ecb96ad..7562d676b8f 100644 --- a/charts/vald/values/dev.yaml +++ b/charts/vald/values/dev.yaml @@ -28,6 +28,8 @@ gateway: profefe.com/enable: "true" profefe.com/port: "6060" profefe.com/service: "vald-lb-gateway" + ingress: + enabled: true resources: requests: cpu: 100m diff --git a/cmd/agent/core/ngt/sample-cow.yaml b/cmd/agent/core/ngt/sample-cow.yaml index 0ad77413e23..bf52a7cdf71 100644 --- a/cmd/agent/core/ngt/sample-cow.yaml +++ b/cmd/agent/core/ngt/sample-cow.yaml @@ -87,7 +87,7 @@ observability: - go_version - go_os - go_arch - - ngt_version + - algorithm_info trace: enabled: false sampling_rate: 1 diff --git a/cmd/agent/core/ngt/sample.yaml b/cmd/agent/core/ngt/sample.yaml index 9a18e303f06..2ffc4caea38 100644 --- a/cmd/agent/core/ngt/sample.yaml +++ b/cmd/agent/core/ngt/sample.yaml @@ -87,7 +87,7 @@ observability: - go_version - go_os - go_arch - - ngt_version + - algorithm_info trace: enabled: false sampling_rate: 1 diff --git a/cmd/discoverer/k8s/sample.yaml b/cmd/discoverer/k8s/sample.yaml index da5751cf85c..9c698b09f1c 100644 --- a/cmd/discoverer/k8s/sample.yaml +++ b/cmd/discoverer/k8s/sample.yaml @@ -100,7 +100,7 @@ observability: - go_version - go_os - go_arch - - ngt_version + - algorithm_info trace: enabled: false sampling_rate: 1 diff --git a/cmd/gateway/filter/sample.yaml b/cmd/gateway/filter/sample.yaml index 790484b297d..1fbe97dbb60 100644 --- a/cmd/gateway/filter/sample.yaml +++ b/cmd/gateway/filter/sample.yaml @@ -98,7 +98,7 @@ observability: - go_version - go_os - go_arch - - ngt_version + - algorithm_info trace: enabled: false sampling_rate: 1 diff --git a/cmd/gateway/lb/sample.yaml b/cmd/gateway/lb/sample.yaml index 1fc16c917e2..6b77f3133d8 100644 --- a/cmd/gateway/lb/sample.yaml +++ b/cmd/gateway/lb/sample.yaml @@ -98,7 +98,7 @@ observability: - go_version - go_os - go_arch - - ngt_version + - algorithm_info trace: enabled: false sampling_rate: 1 diff --git a/cmd/manager/index/sample.yaml b/cmd/manager/index/sample.yaml index 47b3e1dbde4..d7ef1112fc9 100644 --- a/cmd/manager/index/sample.yaml +++ b/cmd/manager/index/sample.yaml @@ -98,7 +98,7 @@ observability: - go_version - go_os - go_arch - - ngt_version + - algorithm_info trace: enabled: false sampling_rate: 1 diff --git a/docs/user-guides/backup-configuration.md b/docs/user-guides/backup-configuration.md index 3a148c56377..ffd632802f7 100644 --- a/docs/user-guides/backup-configuration.md +++ b/docs/user-guides/backup-configuration.md @@ -29,7 +29,7 @@ Please refer to the following tables and decide which method fit for your case. This section shows the best practice for configuring backup features with PV, S3, or PV + S3. -Each sample configuration yaml is published on [here](https://github.com/vdaas/vald/tree/master/charts/vald/values). +Each sample configuration yaml is published on [here](https://github.com/vdaas/vald/tree/main/charts/vald/values). Please refer it for more details. ### General diff --git a/docs/user-guides/observability-configuration.md b/docs/user-guides/observability-configuration.md index df4d29a1f18..10eafcc9377 100644 --- a/docs/user-guides/observability-configuration.md +++ b/docs/user-guides/observability-configuration.md @@ -124,7 +124,7 @@ defaults: - "go_version" - "go_os" - "go_arch" - - "ngt_version" + - "algorithm_info" # enable memory metrics enable_memory: true # enable goroutine metrics diff --git a/example/client/go.mod b/example/client/go.mod index 93f918ef06f..6053734bd13 100644 --- a/example/client/go.mod +++ b/example/client/go.mod @@ -21,7 +21,11 @@ replace ( require ( github.com/kpango/fuid v0.0.0-20221203053508-503b5ad89aa1 github.com/kpango/glg v1.6.14 +<<<<<<< HEAD github.com/vdaas/vald-client-go v1.7.4 +======= + github.com/vdaas/vald-client-go v1.7.3 +>>>>>>> feature/agent/new-agents-helm-template-base gonum.org/v1/hdf5 v0.0.0-20210714002203-8c5d23bc6946 google.golang.org/grpc v1.54.0 ) diff --git a/example/client/go.sum b/example/client/go.sum index ca7b6076806..64cd0c0fd4e 100644 --- a/example/client/go.sum +++ b/example/client/go.sum @@ -13,8 +13,13 @@ github.com/kpango/fuid v0.0.0-20221203053508-503b5ad89aa1/go.mod h1:CAYeq6us9Nfn github.com/kpango/glg v1.6.15 h1:nw0xSxpSyrDIWHeb3dvnE08PW+SCbK+aYFETT75IeLA= github.com/kpango/glg v1.6.15/go.mod h1:cmsc7Yeu8AS3wHLmN7bhwENXOpxfq+QoqxCIk2FneRk= github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= +<<<<<<< HEAD github.com/vdaas/vald-client-go v1.7.4 h1:e0siWP8Mrh3T+Q8sfDilo8wsbDX2EQsAtYnzTkZZ3xg= github.com/vdaas/vald-client-go v1.7.4/go.mod h1:jx7HvypeG7FQKADJm2hAefnQV1ZA2DY/4yFsp/vbJbM= +======= +github.com/vdaas/vald-client-go v1.7.3 h1:wtaOp7EMD+urVSNztj0XphuxDlnhKXRWIptz/xt15dQ= +github.com/vdaas/vald-client-go v1.7.3/go.mod h1:mq/+8G8ZnunF68uePIRcuZTuG1wjpHq5w4QMgUKICOw= +>>>>>>> feature/agent/new-agents-helm-template-base go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= diff --git a/go.mod b/go.mod index 8afd86d20f2..4ec57d78233 100755 --- a/go.mod +++ b/go.mod @@ -398,7 +398,11 @@ replace ( github.com/stretchr/objx => github.com/stretchr/objx v0.5.0 github.com/stretchr/testify => github.com/stretchr/testify v1.8.2 github.com/ugorji/go/codec => github.com/ugorji/go/codec v1.2.11 +<<<<<<< HEAD github.com/vdaas/vald-client-go => github.com/vdaas/vald-client-go v1.7.4 +======= + github.com/vdaas/vald-client-go => github.com/vdaas/vald-client-go v1.7.3 +>>>>>>> feature/agent/new-agents-helm-template-base github.com/vishvananda/netlink => github.com/vishvananda/netlink v1.1.0 github.com/vishvananda/netns => github.com/vishvananda/netns v0.0.4 github.com/xdg-go/pbkdf2 => github.com/xdg-go/pbkdf2 v1.0.0 @@ -422,17 +426,17 @@ replace ( go.mongodb.org/mongo-driver => go.mongodb.org/mongo-driver v1.11.4 go.mozilla.org/pkcs7 => go.mozilla.org/pkcs7 v0.0.0-20210826202110-33d05740a352 go.opencensus.io => go.opencensus.io v0.24.0 - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc => go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.37.0 - go.opentelemetry.io/otel => go.opentelemetry.io/otel v1.11.1 - go.opentelemetry.io/otel/exporters/otlp/internal/retry => go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.11.1 - go.opentelemetry.io/otel/exporters/otlp/otlpmetric => go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.33.0 - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc => go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.33.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace => go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.11.1 - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc => go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.11.1 - go.opentelemetry.io/otel/metric => go.opentelemetry.io/otel/metric v0.33.0 - go.opentelemetry.io/otel/sdk => go.opentelemetry.io/otel/sdk v1.11.1 - go.opentelemetry.io/otel/sdk/metric => go.opentelemetry.io/otel/sdk/metric v0.33.0 - go.opentelemetry.io/otel/trace => go.opentelemetry.io/otel/trace v1.11.1 + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc => go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.40.0 + go.opentelemetry.io/otel => go.opentelemetry.io/otel v1.14.0 + go.opentelemetry.io/otel/exporters/otlp/internal/retry => go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0 + go.opentelemetry.io/otel/exporters/otlp/otlpmetric => go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.37.0 + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc => go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.37.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace => go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.14.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc => go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0 + go.opentelemetry.io/otel/metric => go.opentelemetry.io/otel/metric v0.37.0 + go.opentelemetry.io/otel/sdk => go.opentelemetry.io/otel/sdk v1.14.0 + go.opentelemetry.io/otel/sdk/metric => go.opentelemetry.io/otel/sdk/metric v0.37.0 + go.opentelemetry.io/otel/trace => go.opentelemetry.io/otel/trace v1.14.0 go.opentelemetry.io/proto/otlp => go.opentelemetry.io/proto/otlp v0.19.0 go.starlark.net => go.starlark.net v0.0.0-20230302034142-4b1e35fe2254 go.uber.org/atomic => go.uber.org/atomic v1.10.0 @@ -525,22 +529,23 @@ require ( github.com/leanovate/gopter v0.0.0-00010101000000-000000000000 github.com/lucasb-eyer/go-colorful v0.0.0-00010101000000-000000000000 github.com/pierrec/lz4/v3 v3.0.0-00010101000000-000000000000 + github.com/planetscale/vtprotobuf v0.4.0 github.com/quasilyte/go-ruleguard v0.0.0-00010101000000-000000000000 github.com/quasilyte/go-ruleguard/dsl v0.3.22 github.com/scylladb/gocqlx v0.0.0-00010101000000-000000000000 github.com/vdaas/vald-client-go v0.0.0-00010101000000-000000000000 github.com/zeebo/xxh3 v1.0.2 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.35.0 - go.opentelemetry.io/otel v1.11.2 + go.opentelemetry.io/otel v1.14.0 go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.0.0-00010101000000-000000000000 - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.11.1 + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.14.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.10.0 - go.opentelemetry.io/otel/metric v0.34.0 - go.opentelemetry.io/otel/sdk v1.11.1 - go.opentelemetry.io/otel/sdk/metric v0.33.0 - go.opentelemetry.io/otel/trace v1.11.2 + go.opentelemetry.io/otel/metric v0.37.0 + go.opentelemetry.io/otel/sdk v1.14.0 + go.opentelemetry.io/otel/sdk/metric v0.37.0 + go.opentelemetry.io/otel/trace v1.14.0 go.uber.org/automaxprocs v0.0.0-00010101000000-000000000000 - go.uber.org/goleak v1.2.0 + go.uber.org/goleak v1.2.1 go.uber.org/zap v1.24.0 gocloud.dev v0.0.0-00010101000000-000000000000 golang.org/x/exp v0.0.0-20220827204233-334a2380cb91 @@ -574,7 +579,7 @@ require ( github.com/Masterminds/semver v1.5.0 // indirect github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/cenkalti/backoff/v4 v4.1.3 // indirect + github.com/cenkalti/backoff/v4 v4.2.0 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect @@ -635,8 +640,8 @@ require ( github.com/spf13/pflag v1.0.5 // indirect github.com/xlab/treeprint v1.1.0 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.11.1 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.33.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.37.0 // indirect go.opentelemetry.io/proto/otlp v0.19.0 // indirect go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect go.uber.org/atomic v1.7.0 // indirect diff --git a/go.sum b/go.sum index 215c157ea2e..f11141f0286 100644 --- a/go.sum +++ b/go.sum @@ -260,6 +260,7 @@ github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1 github.com/bytedance/sonic v1.8.0/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= github.com/cenkalti/backoff/v4 v4.2.0 h1:HN5dHm3WBOgndBH6E8V0q2jIYIR3s9yglV8k/+MN3u4= github.com/cenkalti/backoff/v4 v4.2.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g= github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= @@ -270,6 +271,7 @@ github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObk github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8= github.com/cloudfoundry/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21/go.mod h1:po7NpZ/QiTKzBKyrsEAxwnTamCoh8uDk/egRpQ7siIc= github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195 h1:58f1tJ1ra+zFINPlwLWvQsR9CzAKt2e+EWV2yX9oXQ4= github.com/cncf/xds/go v0.0.0-20230310173818-32f1caf87195/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= @@ -288,6 +290,7 @@ github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+m github.com/elazarl/goproxy v0.0.0-20221015165544-a0805db90819 h1:RIB4cRk+lBqKK3Oy0r2gRX4ui7tuhiZq2SuTtTCi0/0= github.com/emicklei/go-restful/v3 v3.10.2 h1:hIovbnmBTLjHXkqEBUz3HGpXZdM7ZrE9fJIZIqlJLqE= github.com/emicklei/go-restful/v3 v3.10.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/envoyproxy/go-control-plane v0.11.0 h1:jtLewhRR2vMRNnq2ZZUoCjUlgut+Y0+sDDWPOfwOi1o= github.com/envoyproxy/go-control-plane v0.11.0/go.mod h1:VnHyVMpzcLvCFt9yUz1UnCwHLhwx1WguiVDV7pTG/tI= github.com/envoyproxy/protoc-gen-validate v0.10.1 h1:c0g45+xCJhdgFGw7a5QAfdS4byAbud7miNWJ1WwEVf8= github.com/envoyproxy/protoc-gen-validate v0.10.1/go.mod h1:DRjgyB0I43LtJapqN6NiRwroiAU2PaFuvk/vjgh61ss= @@ -555,6 +558,8 @@ github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzL github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/sftp v1.13.5/go.mod h1:wHDZ0IZX6JcBYRK1TH9bcVq8G7TLpVHYIGJRFnmPfxg= +github.com/planetscale/vtprotobuf v0.4.0 h1:NEI+g4woRaAZgeZ3sAvbtyvMBRjIv5kE7EWYQ8m4JwY= +github.com/planetscale/vtprotobuf v0.4.0/go.mod h1:wm1N3qk9G/4+VM1WhpkLbvY/d8+0PbwYYpP5P5VhTks= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= @@ -612,8 +617,13 @@ github.com/tedsuo/ifrit v0.0.0-20180802180643-bea94bb476cc/go.mod h1:eyZnKCc955u github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= +<<<<<<< HEAD github.com/vdaas/vald-client-go v1.7.4 h1:e0siWP8Mrh3T+Q8sfDilo8wsbDX2EQsAtYnzTkZZ3xg= github.com/vdaas/vald-client-go v1.7.4/go.mod h1:jx7HvypeG7FQKADJm2hAefnQV1ZA2DY/4yFsp/vbJbM= +======= +github.com/vdaas/vald-client-go v1.7.3 h1:wtaOp7EMD+urVSNztj0XphuxDlnhKXRWIptz/xt15dQ= +github.com/vdaas/vald-client-go v1.7.3/go.mod h1:mq/+8G8ZnunF68uePIRcuZTuG1wjpHq5w4QMgUKICOw= +>>>>>>> feature/agent/new-agents-helm-template-base github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= @@ -628,28 +638,28 @@ github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.37.0 h1:+uFejS4DCfNH6d3xODVIGsdhzgzhh45p9gpbHQMbdZI= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.37.0/go.mod h1:HSmzQvagH8pS2/xrK7ScWsk0vAMtRTGbMFgInXCi8Tc= -go.opentelemetry.io/otel v1.11.1 h1:4WLLAmcfkmDk2ukNXJyq3/kiz/3UzCaYq6PskJsaou4= -go.opentelemetry.io/otel v1.11.1/go.mod h1:1nNhXBbWSD0nsL38H6btgnFN2k4i0sNLHNNMZMSbUGE= -go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.11.1 h1:X2GndnMCsUPh6CiY2a+frAbNsXaPLbB0soHRYhAZ5Ig= -go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.11.1/go.mod h1:i8vjiSzbiUC7wOQplijSXMYUpNM93DtlS5CbUT+C6oQ= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.33.0 h1:OT/UjHcjog4A1s1UMCtyehIKS+vpjM5Du0r7KGsH6TE= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.33.0/go.mod h1:0XctNDHEWmiSDIU8NPbJElrK05gBJFcYlGP4FMGo4g4= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.33.0 h1:1SVtGtRsNyGgv1fRfNXfh+sJowIwzF0gkf+61lvTgdg= -go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.33.0/go.mod h1:ryB27ubOBXsiqfh6MwtSdx5knzbSZtjvPnMMmt3AykQ= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.11.1 h1:MEQNafcNCB0uQIti/oHgU7CZpUMYQ7qigBwMVKycHvc= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.11.1/go.mod h1:19O5I2U5iys38SsmT2uDJja/300woyzE1KPIQxEUBUc= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.11.1 h1:LYyG/f1W/jzAix16jbksJfMQFpOH/Ma6T639pVPMgfI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.11.1/go.mod h1:QrRRQiY3kzAoYPNLP0W/Ikg0gR6V3LMc+ODSxr7yyvg= -go.opentelemetry.io/otel/metric v0.33.0 h1:xQAyl7uGEYvrLAiV/09iTJlp1pZnQ9Wl793qbVvED1E= -go.opentelemetry.io/otel/metric v0.33.0/go.mod h1:QlTYc+EnYNq/M2mNk1qDDMRLpqCOj2f/r5c7Fd5FYaI= -go.opentelemetry.io/otel/sdk v1.11.1 h1:F7KmQgoHljhUuJyA+9BiU+EkJfyX5nVVF4wyzWZpKxs= -go.opentelemetry.io/otel/sdk v1.11.1/go.mod h1:/l3FE4SupHJ12TduVjUkZtlfFqDCQJlOlithYrdktys= -go.opentelemetry.io/otel/sdk/metric v0.33.0 h1:oTqyWfksgKoJmbrs2q7O7ahkJzt+Ipekihf8vhpa9qo= -go.opentelemetry.io/otel/sdk/metric v0.33.0/go.mod h1:xdypMeA21JBOvjjzDUtD0kzIcHO/SPez+a8HOzJPGp0= -go.opentelemetry.io/otel/trace v1.11.1 h1:ofxdnzsNrGBYXbP7t7zpUK281+go5rF7dvdIZXF8gdQ= -go.opentelemetry.io/otel/trace v1.11.1/go.mod h1:f/Q9G7vzk5u91PhbmKbg1Qn0rzH1LJ4vbPHFGkTPtOk= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.40.0 h1:5jD3teb4Qh7mx/nfzq4jO2WFFpvXD0vYWFDrdvNWmXk= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.40.0/go.mod h1:UMklln0+MRhZC4e3PwmN3pCtq4DyIadWw4yikh6bNrw= +go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM= +go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU= +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0 h1:/fXHZHGvro6MVqV34fJzDhi7sHGpX3Ej/Qjmfn003ho= +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0/go.mod h1:UFG7EBMRdXyFstOwH028U0sVf+AvukSGhF0g8+dmNG8= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.37.0 h1:22J9c9mxNAZugv86zhwjBnER0DbO0VVpW9Oo/j3jBBQ= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.37.0/go.mod h1:QD8SSO9fgtBOvXYpcX5NXW+YnDJByTnh7a/9enQWFmw= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.37.0 h1:CI6DSdsSkJxX1rsfPSQ0SciKx6klhdDRBXqKb+FwXG8= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.37.0/go.mod h1:WLBYPrz8srktckhCjFaau4VHSfGaMuqoKSXwpzaiRZg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.14.0 h1:TKf2uAs2ueguzLaxOCBXNpHxfO/aC7PAdDsSH0IbeRQ= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.14.0/go.mod h1:HrbCVv40OOLTABmOn1ZWty6CHXkU8DK/Urc43tHug70= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0 h1:ap+y8RXX3Mu9apKVtOkM6WSFESLM8K3wNQyOU8sWHcc= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0/go.mod h1:5w41DY6S9gZrbjuq6Y+753e96WfPha5IcsOSZTtullM= +go.opentelemetry.io/otel/metric v0.37.0 h1:pHDQuLQOZwYD+Km0eb657A25NaRzy0a+eLyKfDXedEs= +go.opentelemetry.io/otel/metric v0.37.0/go.mod h1:DmdaHfGt54iV6UKxsV9slj2bBRJcKC1B1uvDLIioc1s= +go.opentelemetry.io/otel/sdk v1.14.0 h1:PDCppFRDq8A1jL9v6KMI6dYesaq+DFcDZvjsoGvxGzY= +go.opentelemetry.io/otel/sdk v1.14.0/go.mod h1:bwIC5TjrNG6QDCHNWvW4HLHtUQ4I+VQDsnjhvyZCALM= +go.opentelemetry.io/otel/sdk/metric v0.37.0 h1:haYBBtZZxiI3ROwSmkZnI+d0+AVzBWeviuYQDeBWosU= +go.opentelemetry.io/otel/sdk/metric v0.37.0/go.mod h1:mO2WV1AZKKwhwHTV3AKOoIEb9LbUaENZDuGUQd+j4A0= +go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M= +go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8= go.opentelemetry.io/proto/otlp v0.19.0 h1:IVN6GR+mhC4s5yfcTbmzHYODqvWAp3ZedA2SJPI1Nnw= go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= go.starlark.net v0.0.0-20230302034142-4b1e35fe2254 h1:Ss6D3hLXTM0KobyBYEAygXzFfGcjnmfEJOBgSbemCtg= diff --git a/hack/go.mod.default b/hack/go.mod.default index c2d876e0b7a..471a42da828 100755 --- a/hack/go.mod.default +++ b/hack/go.mod.default @@ -422,17 +422,17 @@ replace ( go.mongodb.org/mongo-driver => go.mongodb.org/mongo-driver latest go.mozilla.org/pkcs7 => go.mozilla.org/pkcs7 latest go.opencensus.io => go.opencensus.io latest - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc => go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.37.0 - go.opentelemetry.io/otel => go.opentelemetry.io/otel v1.11.1 - go.opentelemetry.io/otel/exporters/otlp/internal/retry => go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.11.1 - go.opentelemetry.io/otel/exporters/otlp/otlpmetric => go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.33.0 - go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc => go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.33.0 - go.opentelemetry.io/otel/exporters/otlp/otlptrace => go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.11.1 - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc => go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.11.1 - go.opentelemetry.io/otel/metric => go.opentelemetry.io/otel/metric v0.33.0 - go.opentelemetry.io/otel/sdk => go.opentelemetry.io/otel/sdk v1.11.1 - go.opentelemetry.io/otel/sdk/metric => go.opentelemetry.io/otel/sdk/metric v0.33.0 - go.opentelemetry.io/otel/trace => go.opentelemetry.io/otel/trace v1.11.1 + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc => go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc latest + go.opentelemetry.io/otel => go.opentelemetry.io/otel latest + go.opentelemetry.io/otel/exporters/otlp/internal/retry => go.opentelemetry.io/otel/exporters/otlp/internal/retry latest + go.opentelemetry.io/otel/exporters/otlp/otlpmetric => go.opentelemetry.io/otel/exporters/otlp/otlpmetric latest + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc => go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc latest + go.opentelemetry.io/otel/exporters/otlp/otlptrace => go.opentelemetry.io/otel/exporters/otlp/otlptrace latest + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc => go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc latest + go.opentelemetry.io/otel/metric => go.opentelemetry.io/otel/metric latest + go.opentelemetry.io/otel/sdk => go.opentelemetry.io/otel/sdk latest + go.opentelemetry.io/otel/sdk/metric => go.opentelemetry.io/otel/sdk/metric latest + go.opentelemetry.io/otel/trace => go.opentelemetry.io/otel/trace latest go.opentelemetry.io/proto/otlp => go.opentelemetry.io/proto/otlp latest go.starlark.net => go.starlark.net latest go.uber.org/atomic => go.uber.org/atomic latest diff --git a/internal/client/v1/client/agent/core/client.go b/internal/client/v1/client/agent/core/client.go index 2b70cbafc43..bb2dde283cf 100644 --- a/internal/client/v1/client/agent/core/client.go +++ b/internal/client/v1/client/agent/core/client.go @@ -86,11 +86,7 @@ func New(opts ...Option) (Client, error) { return c, nil } -func NewAgentClient(cc *grpc.ClientConn) interface { - vald.Client - client.ObjectReader - client.Indexer -} { +func NewAgentClient(cc *grpc.ClientConn) Client { return &singleAgentClient{ Client: vald.NewValdClient(cc), ac: agent.NewAgentClient(cc), diff --git a/internal/config/server.go b/internal/config/server.go index c8ba7274465..4285a01e592 100644 --- a/internal/config/server.go +++ b/internal/config/server.go @@ -20,6 +20,7 @@ package config import ( "github.com/vdaas/vald/internal/net" "github.com/vdaas/vald/internal/net/grpc" + "github.com/vdaas/vald/internal/net/grpc/admin" "github.com/vdaas/vald/internal/net/grpc/health" "github.com/vdaas/vald/internal/net/grpc/reflection" "github.com/vdaas/vald/internal/servers/server" @@ -89,6 +90,7 @@ type GRPC struct { HeaderTableSize int `json:"header_table_size,omitempty" yaml:"header_table_size"` Interceptors []string `json:"interceptors,omitempty" yaml:"interceptors"` EnableReflection bool `json:"enable_reflection,omitempty" yaml:"enable_reflection"` + EnableAdmin bool `json:"enable_admin,omitempty" yaml:"enable_admin"` } // GRPCKeepalive represents the configuration for gRPC keep-alive. @@ -282,6 +284,12 @@ func (s *Server) Opts() []server.Option { reflection.Register(srv) })) } + if s.GRPC.EnableAdmin { + opts = append(opts, + server.WithGRPCRegistFunc(func(srv *grpc.Server) { + admin.Register(srv) + })) + } if s.GRPC.Keepalive != nil { opts = append(opts, server.WithGRPCKeepaliveMaxConnIdle(s.GRPC.Keepalive.MaxConnIdle), diff --git a/internal/errgroup/group_test.go b/internal/errgroup/group_test.go index 332f701bfcc..eb4cf2e2a45 100644 --- a/internal/errgroup/group_test.go +++ b/internal/errgroup/group_test.go @@ -379,8 +379,7 @@ func Test_group_Limitation(t *testing.T) { }, want: want{ want: &group{ - enableLimitation: func() atomic.Bool { - var el atomic.Bool + enableLimitation: func() (el atomic.Bool) { el.Store(false) return el }(), @@ -398,8 +397,7 @@ func Test_group_Limitation(t *testing.T) { }, want: want{ want: &group{ - enableLimitation: func() atomic.Bool { - var el atomic.Bool + enableLimitation: func() (el atomic.Bool) { el.Store(true) return el }(), diff --git a/internal/info/info.go b/internal/info/info.go index 6ee9a83fbcb..2847c380823 100644 --- a/internal/info/info.go +++ b/internal/info/info.go @@ -57,7 +57,7 @@ type Detail struct { GoArch string `json:"go_arch,omitempty" yaml:"go_arch,omitempty"` GoRoot string `json:"go_root,omitempty" yaml:"go_root,omitempty"` CGOEnabled string `json:"cgo_enabled,omitempty" yaml:"cgo_enabled,omitempty"` - NGTVersion string `json:"ngt_version,omitempty" yaml:"ngt_version,omitempty"` + AlgorithmInfo string `json:"algorithm_info,omitempty" yaml:"algorithm_info,omitempty"` BuildCPUInfoFlags []string `json:"build_cpu_info_flags,omitempty" yaml:"build_cpu_info_flags,omitempty"` StackTrace []StackTrace `json:"stack_trace,omitempty" yaml:"stack_trace,omitempty"` } @@ -89,8 +89,8 @@ var ( GoRoot string // CGOEnabled represent the cgo is enable or not to build Vald. CGOEnabled string - // NGTVersion represent the NGT version in Vald. - NGTVersion string + // AlgorithmInfo represent the NGT version in Vald. + AlgorithmInfo string // BuildCPUInfoFlags represent the CPU info flags to build Vald. BuildCPUInfoFlags string @@ -143,7 +143,7 @@ func New(opts ...Option) (Info, error) { GoArch: GoArch, GoRoot: GoRoot, CGOEnabled: CGOEnabled, - NGTVersion: NGTVersion, + AlgorithmInfo: AlgorithmInfo, BuildCPUInfoFlags: strings.Split(strings.TrimSpace(BuildCPUInfoFlags), " "), StackTrace: nil, }, @@ -350,6 +350,7 @@ func (i *info) prepare() { if len(i.detail.CGOEnabled) == 0 && len(CGOEnabled) != 0 { i.detail.CGOEnabled = CGOEnabled } +<<<<<<< HEAD switch i.detail.CGOEnabled { case "0", "false": i.detail.CGOEnabled = "false" @@ -360,6 +361,10 @@ func (i *info) prepare() { } if len(i.detail.NGTVersion) == 0 && len(NGTVersion) != 0 { i.detail.NGTVersion = NGTVersion +======= + if len(i.detail.AlgorithmInfo) == 0 && len(AlgorithmInfo) != 0 { + i.detail.AlgorithmInfo = AlgorithmInfo +>>>>>>> feature/agent/new-agents-helm-template-base } if len(i.detail.BuildCPUInfoFlags) == 0 && len(BuildCPUInfoFlags) != 0 { i.detail.BuildCPUInfoFlags = strings.Split(strings.TrimSpace(BuildCPUInfoFlags), " ") diff --git a/internal/info/info_test.go b/internal/info/info_test.go index c2b3f9b1082..ae6bc849b3c 100644 --- a/internal/info/info_test.go +++ b/internal/info/info_test.go @@ -164,7 +164,7 @@ func TestGet(t *testing.T) { GoArch: runtime.GOARCH, GoRoot: runtime.GOROOT(), CGOEnabled: "", - NGTVersion: "", + AlgorithmInfo: "", BuildCPUInfoFlags: []string{""}, StackTrace: make([]StackTrace, 0, 10), }, @@ -234,7 +234,7 @@ func TestInit(t *testing.T) { version := Version buildTime := BuildTime cgoEnabled := CGOEnabled - ngtVersion := NGTVersion + algorithmInfo := AlgorithmInfo buildCPUInfoFlags := BuildCPUInfoFlags tests := []test{ { @@ -246,16 +246,16 @@ func TestInit(t *testing.T) { want: &info{ baseURL: "https://github.com/vdaas/vald/tree/gitcommit", detail: Detail{ - GitCommit: "gitcommit", - ServerName: "gateway", - Version: "gitcommit", - BuildTime: "1s", - GoVersion: runtime.Version(), - GoOS: runtime.GOOS, - GoArch: runtime.GOARCH, - GoRoot: runtime.GOROOT(), - CGOEnabled: "true", - NGTVersion: "v1.11.6", + GitCommit: "gitcommit", + ServerName: "gateway", + Version: "gitcommit", + BuildTime: "1s", + GoVersion: runtime.Version(), + GoOS: runtime.GOOS, + GoArch: runtime.GOARCH, + GoRoot: runtime.GOROOT(), + CGOEnabled: "true", + AlgorithmInfo: "v1.11.6", BuildCPUInfoFlags: []string{ "avx512f", "avx512dq", }, @@ -275,7 +275,7 @@ func TestInit(t *testing.T) { Version = "" BuildTime = "1s" CGOEnabled = "true" - NGTVersion = "v1.11.6" + AlgorithmInfo = "v1.11.6" BuildCPUInfoFlags = "\t\tavx512f avx512dq\t" }, afterFunc: func(t *testing.T, _ args) { @@ -287,7 +287,7 @@ func TestInit(t *testing.T) { Version = version BuildTime = buildTime CGOEnabled = cgoEnabled - NGTVersion = ngtVersion + AlgorithmInfo = algorithmInfo BuildCPUInfoFlags = buildCPUInfoFlags }, }, @@ -300,16 +300,16 @@ func TestInit(t *testing.T) { want: &info{ baseURL: "https://github.com/vdaas/vald/tree/gitcommit", detail: Detail{ - GitCommit: "gitcommit", - ServerName: "", - Version: "gitcommit", - BuildTime: "1s", - GoVersion: runtime.Version(), - GoOS: runtime.GOOS, - GoArch: runtime.GOARCH, - GoRoot: runtime.GOROOT(), - CGOEnabled: "true", - NGTVersion: "v1.11.6", + GitCommit: "gitcommit", + ServerName: "", + Version: "gitcommit", + BuildTime: "1s", + GoVersion: runtime.Version(), + GoOS: runtime.GOOS, + GoArch: runtime.GOARCH, + GoRoot: runtime.GOROOT(), + CGOEnabled: "true", + AlgorithmInfo: "v1.11.6", BuildCPUInfoFlags: []string{ "avx512f", "avx512dq", }, @@ -329,7 +329,7 @@ func TestInit(t *testing.T) { Version = "" BuildTime = "1s" CGOEnabled = "true" - NGTVersion = "v1.11.6" + AlgorithmInfo = "v1.11.6" BuildCPUInfoFlags = "\t\tavx512f avx512dq\t" }, afterFunc: func(t *testing.T, _ args) { @@ -341,7 +341,7 @@ func TestInit(t *testing.T) { Version = version BuildTime = buildTime CGOEnabled = cgoEnabled - NGTVersion = ngtVersion + AlgorithmInfo = algorithmInfo BuildCPUInfoFlags = buildCPUInfoFlags }, }, @@ -427,7 +427,7 @@ func TestNew(t *testing.T) { GoArch: runtime.GOARCH, GoRoot: runtime.GOROOT(), CGOEnabled: CGOEnabled, - NGTVersion: NGTVersion, + AlgorithmInfo: AlgorithmInfo, BuildCPUInfoFlags: strings.Split(strings.TrimSpace(BuildCPUInfoFlags), " "), StackTrace: nil, }, @@ -460,7 +460,7 @@ func TestNew(t *testing.T) { GoArch: runtime.GOARCH, GoRoot: runtime.GOROOT(), CGOEnabled: CGOEnabled, - NGTVersion: NGTVersion, + AlgorithmInfo: AlgorithmInfo, BuildCPUInfoFlags: strings.Split(strings.TrimSpace(BuildCPUInfoFlags), " "), }, prepOnce: func() (o sync.Once) { @@ -496,7 +496,7 @@ func TestNew(t *testing.T) { GoArch: runtime.GOARCH, GoRoot: runtime.GOROOT(), CGOEnabled: CGOEnabled, - NGTVersion: NGTVersion, + AlgorithmInfo: AlgorithmInfo, BuildCPUInfoFlags: strings.Split(strings.TrimSpace(BuildCPUInfoFlags), " "), StackTrace: nil, }, @@ -531,7 +531,7 @@ func TestNew(t *testing.T) { GoArch: runtime.GOARCH, GoRoot: runtime.GOROOT(), CGOEnabled: CGOEnabled, - NGTVersion: NGTVersion, + AlgorithmInfo: AlgorithmInfo, BuildCPUInfoFlags: strings.Split(strings.TrimSpace(BuildCPUInfoFlags), " "), StackTrace: nil, }, @@ -619,7 +619,7 @@ func Test_info_String(t *testing.T) { GoArch: "goarch", GoRoot: "/usr/local/go", CGOEnabled: "true", - NGTVersion: "1.2", + AlgorithmInfo: "1.2", BuildCPUInfoFlags: nil, StackTrace: []StackTrace{ { @@ -632,7 +632,7 @@ func Test_info_String(t *testing.T) { }, }, want: want{ - want: "\nbuild cpu info flags ->\t[]\nbuild time ->\tbt\ncgo enabled ->\ttrue\ngit commit ->\tcommit\ngo arch ->\tgoarch\ngo os ->\tgoos\ngo root ->\t/usr/local/go\ngo version ->\t1.1\nngt version ->\t1.2\nserver name ->\tsrv\nstack trace-000 ->\turl\tfile#L10\tfunc\nvald version ->\t\x1b[1m1.0\x1b[22m", + want: "\nalgorithm info ->\t1.2\nbuild cpu info flags ->\t[]\nbuild time ->\tbt\ncgo enabled ->\ttrue\ngit commit ->\tcommit\ngo arch ->\tgoarch\ngo os ->\tgoos\ngo root ->\t/usr/local/go\ngo version ->\t1.1\nserver name ->\tsrv\nstack trace-000 ->\turl\tfile#L10\tfunc\nvald version ->\t\x1b[1m1.0\x1b[22m", }, }, { @@ -648,7 +648,7 @@ func Test_info_String(t *testing.T) { GoArch: "goarch", GoRoot: "/usr/local/go", CGOEnabled: "true", - NGTVersion: "1.2", + AlgorithmInfo: "1.2", BuildCPUInfoFlags: nil, StackTrace: []StackTrace{}, }, @@ -657,7 +657,7 @@ func Test_info_String(t *testing.T) { }, }, want: want{ - want: "\nbuild cpu info flags ->\t[]\nbuild time ->\tbt\ncgo enabled ->\ttrue\ngit commit ->\tcommit\ngo arch ->\tgoarch\ngo os ->\tgoos\ngo root ->\t/usr/local/go\ngo version ->\t1.1\nngt version ->\t1.2\nserver name ->\tsrv\nvald version ->\t\x1b[1m1.0\x1b[22m", + want: "\nalgorithm info ->\t1.2\nbuild cpu info flags ->\t[]\nbuild time ->\tbt\ncgo enabled ->\ttrue\ngit commit ->\tcommit\ngo arch ->\tgoarch\ngo os ->\tgoos\ngo root ->\t/usr/local/go\ngo version ->\t1.1\nserver name ->\tsrv\nvald version ->\t\x1b[1m1.0\x1b[22m", }, }, } @@ -700,7 +700,7 @@ func TestDetail_String(t *testing.T) { GoOS string GoArch string CGOEnabled string - NGTVersion string + AlgorithmInfo string BuildCPUInfoFlags []string StackTrace []StackTrace } @@ -733,7 +733,7 @@ func TestDetail_String(t *testing.T) { GoOS: "goos", GoArch: "goarch", CGOEnabled: "true", - NGTVersion: "1.2", + AlgorithmInfo: "1.2", BuildCPUInfoFlags: nil, StackTrace: []StackTrace{ { @@ -745,7 +745,7 @@ func TestDetail_String(t *testing.T) { }, }, want: want{ - want: "\nbuild cpu info flags ->\t[]\nbuild time ->\tbt\ncgo enabled ->\ttrue\ngit commit ->\tcommit\ngo arch ->\tgoarch\ngo os ->\tgoos\ngo version ->\t1.1\nngt version ->\t1.2\nserver name ->\tsrv\nstack trace-000 ->\turl\tfile#L10\tfunc\nvald version ->\t\x1b[1m1.0\x1b[22m", + want: "\nalgorithm info ->\t1.2\nbuild cpu info flags ->\t[]\nbuild time ->\tbt\ncgo enabled ->\ttrue\ngit commit ->\tcommit\ngo arch ->\tgoarch\ngo os ->\tgoos\ngo version ->\t1.1\nserver name ->\tsrv\nstack trace-000 ->\turl\tfile#L10\tfunc\nvald version ->\t\x1b[1m1.0\x1b[22m", }, }, { @@ -759,12 +759,12 @@ func TestDetail_String(t *testing.T) { GoOS: "goos", GoArch: "goarch", CGOEnabled: "true", - NGTVersion: "1.2", + AlgorithmInfo: "1.2", BuildCPUInfoFlags: nil, StackTrace: []StackTrace{}, }, want: want{ - want: "\nbuild cpu info flags ->\t[]\nbuild time ->\tbt\ncgo enabled ->\ttrue\ngit commit ->\tcommit\ngo arch ->\tgoarch\ngo os ->\tgoos\ngo version ->\t1.1\nngt version ->\t1.2\nserver name ->\tsrv\nvald version ->\t\x1b[1m1.0\x1b[22m", + want: "\nalgorithm info ->\t1.2\nbuild cpu info flags ->\t[]\nbuild time ->\tbt\ncgo enabled ->\ttrue\ngit commit ->\tcommit\ngo arch ->\tgoarch\ngo os ->\tgoos\ngo version ->\t1.1\nserver name ->\tsrv\nvald version ->\t\x1b[1m1.0\x1b[22m", }, }, } @@ -792,7 +792,7 @@ func TestDetail_String(t *testing.T) { GoOS: test.fields.GoOS, GoArch: test.fields.GoArch, CGOEnabled: test.fields.CGOEnabled, - NGTVersion: test.fields.NGTVersion, + AlgorithmInfo: test.fields.AlgorithmInfo, BuildCPUInfoFlags: test.fields.BuildCPUInfoFlags, StackTrace: test.fields.StackTrace, } @@ -838,17 +838,17 @@ func Test_info_Get(t *testing.T) { }, want: want{ want: Detail{ - ServerName: "", - Version: "", - GitCommit: "main", - GoVersion: runtime.Version(), - GoOS: runtime.GOOS, - GoArch: runtime.GOARCH, - GoRoot: runtime.GOROOT(), - CGOEnabled: CGOEnabled, - StackTrace: []StackTrace{}, - NGTVersion: NGTVersion, - BuildTime: BuildTime, + ServerName: "", + Version: "", + GitCommit: "main", + GoVersion: runtime.Version(), + GoOS: runtime.GOOS, + GoArch: runtime.GOARCH, + GoRoot: runtime.GOROOT(), + CGOEnabled: CGOEnabled, + StackTrace: []StackTrace{}, + AlgorithmInfo: AlgorithmInfo, + BuildTime: BuildTime, BuildCPUInfoFlags: func() []string { if len(BuildCPUInfoFlags) == 0 { return nil @@ -893,8 +893,8 @@ func Test_info_Get(t *testing.T) { Line: 100, }, }, - NGTVersion: NGTVersion, - BuildTime: BuildTime, + AlgorithmInfo: AlgorithmInfo, + BuildTime: BuildTime, BuildCPUInfoFlags: func() []string { if len(BuildCPUInfoFlags) == 0 { return nil @@ -939,8 +939,8 @@ func Test_info_Get(t *testing.T) { Line: 100, }, }, - NGTVersion: NGTVersion, - BuildTime: BuildTime, + AlgorithmInfo: AlgorithmInfo, + BuildTime: BuildTime, BuildCPUInfoFlags: func() []string { if len(BuildCPUInfoFlags) == 0 { return nil @@ -984,8 +984,8 @@ func Test_info_Get(t *testing.T) { Line: 100, }, }, - NGTVersion: NGTVersion, - BuildTime: BuildTime, + AlgorithmInfo: AlgorithmInfo, + BuildTime: BuildTime, BuildCPUInfoFlags: func() []string { if len(BuildCPUInfoFlags) == 0 { return nil @@ -1029,8 +1029,8 @@ func Test_info_Get(t *testing.T) { Line: 100, }, }, - NGTVersion: NGTVersion, - BuildTime: BuildTime, + AlgorithmInfo: AlgorithmInfo, + BuildTime: BuildTime, BuildCPUInfoFlags: func() []string { if len(BuildCPUInfoFlags) == 0 { return nil @@ -1074,8 +1074,8 @@ func Test_info_Get(t *testing.T) { Line: 100, }, }, - NGTVersion: NGTVersion, - BuildTime: BuildTime, + AlgorithmInfo: AlgorithmInfo, + BuildTime: BuildTime, BuildCPUInfoFlags: func() []string { if len(BuildCPUInfoFlags) == 0 { return nil @@ -1119,8 +1119,8 @@ func Test_info_Get(t *testing.T) { Line: 100, }, }, - NGTVersion: NGTVersion, - BuildTime: BuildTime, + AlgorithmInfo: AlgorithmInfo, + BuildTime: BuildTime, BuildCPUInfoFlags: func() []string { if len(BuildCPUInfoFlags) == 0 { return nil @@ -1196,15 +1196,15 @@ func Test_info_prepare(t *testing.T) { want: info{ baseURL: "https://github.com/vdaas/vald/tree/main", detail: Detail{ - GitCommit: "main", - Version: "", - BuildTime: BuildTime, - GoVersion: runtime.Version(), - GoOS: runtime.GOOS, - GoArch: runtime.GOARCH, - GoRoot: runtime.GOROOT(), - CGOEnabled: CGOEnabled, - NGTVersion: NGTVersion, + GitCommit: "main", + Version: "", + BuildTime: BuildTime, + GoVersion: runtime.Version(), + GoOS: runtime.GOOS, + GoArch: runtime.GOARCH, + GoRoot: runtime.GOROOT(), + CGOEnabled: CGOEnabled, + AlgorithmInfo: AlgorithmInfo, BuildCPUInfoFlags: func() []string { if len(BuildCPUInfoFlags) == 0 { return nil @@ -1226,15 +1226,15 @@ func Test_info_prepare(t *testing.T) { want: info{ baseURL: "https://github.com/vdaas/vald/tree/internal", detail: Detail{ - GitCommit: "internal", - Version: "", - BuildTime: BuildTime, - GoVersion: runtime.Version(), - GoOS: runtime.GOOS, - GoArch: runtime.GOARCH, - GoRoot: runtime.GOROOT(), - CGOEnabled: CGOEnabled, - NGTVersion: NGTVersion, + GitCommit: "internal", + Version: "", + BuildTime: BuildTime, + GoVersion: runtime.Version(), + GoOS: runtime.GOOS, + GoArch: runtime.GOARCH, + GoRoot: runtime.GOROOT(), + CGOEnabled: CGOEnabled, + AlgorithmInfo: AlgorithmInfo, BuildCPUInfoFlags: func() []string { if len(BuildCPUInfoFlags) == 0 { return nil @@ -1256,15 +1256,15 @@ func Test_info_prepare(t *testing.T) { want: info{ baseURL: "https://github.com/vdaas/vald/tree/main", detail: Detail{ - GitCommit: "main", - Version: "v1.0.0", - BuildTime: BuildTime, - GoVersion: runtime.Version(), - GoOS: runtime.GOOS, - GoArch: runtime.GOARCH, - GoRoot: runtime.GOROOT(), - CGOEnabled: CGOEnabled, - NGTVersion: NGTVersion, + GitCommit: "main", + Version: "v1.0.0", + BuildTime: BuildTime, + GoVersion: runtime.Version(), + GoOS: runtime.GOOS, + GoArch: runtime.GOARCH, + GoRoot: runtime.GOROOT(), + CGOEnabled: CGOEnabled, + AlgorithmInfo: AlgorithmInfo, BuildCPUInfoFlags: func() []string { if len(BuildCPUInfoFlags) == 0 { return nil @@ -1286,15 +1286,15 @@ func Test_info_prepare(t *testing.T) { want: info{ baseURL: "https://github.com/vdaas/vald/tree/main", detail: Detail{ - GitCommit: "main", - Version: "", - BuildTime: "10s", - GoVersion: runtime.Version(), - GoOS: runtime.GOOS, - GoArch: runtime.GOARCH, - GoRoot: runtime.GOROOT(), - CGOEnabled: CGOEnabled, - NGTVersion: NGTVersion, + GitCommit: "main", + Version: "", + BuildTime: "10s", + GoVersion: runtime.Version(), + GoOS: runtime.GOOS, + GoArch: runtime.GOARCH, + GoRoot: runtime.GOROOT(), + CGOEnabled: CGOEnabled, + AlgorithmInfo: AlgorithmInfo, BuildCPUInfoFlags: func() []string { if len(BuildCPUInfoFlags) == 0 { return nil @@ -1316,15 +1316,15 @@ func Test_info_prepare(t *testing.T) { want: info{ baseURL: "https://github.com/vdaas/vald/tree/main", detail: Detail{ - GitCommit: "main", - Version: "", - BuildTime: BuildTime, - GoVersion: "1.14", - GoOS: runtime.GOOS, - GoArch: runtime.GOARCH, - GoRoot: runtime.GOROOT(), - CGOEnabled: CGOEnabled, - NGTVersion: NGTVersion, + GitCommit: "main", + Version: "", + BuildTime: BuildTime, + GoVersion: "1.14", + GoOS: runtime.GOOS, + GoArch: runtime.GOARCH, + GoRoot: runtime.GOROOT(), + CGOEnabled: CGOEnabled, + AlgorithmInfo: AlgorithmInfo, BuildCPUInfoFlags: func() []string { if len(BuildCPUInfoFlags) == 0 { return nil @@ -1346,15 +1346,15 @@ func Test_info_prepare(t *testing.T) { want: info{ baseURL: "https://github.com/vdaas/vald/tree/main", detail: Detail{ - GitCommit: "main", - Version: "", - BuildTime: BuildTime, - GoVersion: runtime.Version(), - GoOS: "linux", - GoArch: runtime.GOARCH, - GoRoot: runtime.GOROOT(), - CGOEnabled: CGOEnabled, - NGTVersion: NGTVersion, + GitCommit: "main", + Version: "", + BuildTime: BuildTime, + GoVersion: runtime.Version(), + GoOS: "linux", + GoArch: runtime.GOARCH, + GoRoot: runtime.GOROOT(), + CGOEnabled: CGOEnabled, + AlgorithmInfo: AlgorithmInfo, BuildCPUInfoFlags: func() []string { if len(BuildCPUInfoFlags) == 0 { return nil @@ -1376,15 +1376,15 @@ func Test_info_prepare(t *testing.T) { want: info{ baseURL: "https://github.com/vdaas/vald/tree/main", detail: Detail{ - GitCommit: "main", - Version: "", - BuildTime: BuildTime, - GoVersion: runtime.Version(), - GoOS: runtime.GOOS, - GoArch: "amd", - GoRoot: runtime.GOROOT(), - CGOEnabled: CGOEnabled, - NGTVersion: NGTVersion, + GitCommit: "main", + Version: "", + BuildTime: BuildTime, + GoVersion: runtime.Version(), + GoOS: runtime.GOOS, + GoArch: "amd", + GoRoot: runtime.GOROOT(), + CGOEnabled: CGOEnabled, + AlgorithmInfo: AlgorithmInfo, BuildCPUInfoFlags: func() []string { if len(BuildCPUInfoFlags) == 0 { return nil @@ -1406,15 +1406,15 @@ func Test_info_prepare(t *testing.T) { want: info{ baseURL: "https://github.com/vdaas/vald/tree/main", detail: Detail{ - GitCommit: "main", - Version: "", - BuildTime: BuildTime, - GoVersion: runtime.Version(), - GoOS: runtime.GOOS, - GoArch: runtime.GOARCH, - GoRoot: runtime.GOROOT(), - CGOEnabled: "1", - NGTVersion: NGTVersion, + GitCommit: "main", + Version: "", + BuildTime: BuildTime, + GoVersion: runtime.Version(), + GoOS: runtime.GOOS, + GoArch: runtime.GOARCH, + GoRoot: runtime.GOROOT(), + CGOEnabled: "1", + AlgorithmInfo: AlgorithmInfo, BuildCPUInfoFlags: func() []string { if len(BuildCPUInfoFlags) == 0 { return nil @@ -1426,25 +1426,25 @@ func Test_info_prepare(t *testing.T) { }, }, { - name: "set success with NGTVersion set", + name: "set success with AlgorithmInfo set", fields: fields{ detail: Detail{ - NGTVersion: "v1.11.5", + AlgorithmInfo: "v1.11.5", }, }, want: want{ want: info{ baseURL: "https://github.com/vdaas/vald/tree/main", detail: Detail{ - GitCommit: "main", - Version: "", - BuildTime: BuildTime, - GoVersion: runtime.Version(), - GoOS: runtime.GOOS, - GoArch: runtime.GOARCH, - GoRoot: runtime.GOROOT(), - CGOEnabled: CGOEnabled, - NGTVersion: "v1.11.5", + GitCommit: "main", + Version: "", + BuildTime: BuildTime, + GoVersion: runtime.Version(), + GoOS: runtime.GOOS, + GoArch: runtime.GOARCH, + GoRoot: runtime.GOROOT(), + CGOEnabled: CGOEnabled, + AlgorithmInfo: "v1.11.5", BuildCPUInfoFlags: func() []string { if len(BuildCPUInfoFlags) == 0 { return nil @@ -1474,7 +1474,7 @@ func Test_info_prepare(t *testing.T) { GoArch: runtime.GOARCH, GoRoot: runtime.GOROOT(), CGOEnabled: CGOEnabled, - NGTVersion: NGTVersion, + AlgorithmInfo: AlgorithmInfo, BuildCPUInfoFlags: []string{"avx512f"}, }, }, diff --git a/internal/net/dialer.go b/internal/net/dialer.go index 31af53960b2..f90d1e1c3e5 100644 --- a/internal/net/dialer.go +++ b/internal/net/dialer.go @@ -172,7 +172,7 @@ func (d *dialer) lookup(ctx context.Context, host string) (dc *dialerCache, err dc = &dialerCache{ ips: ips, } - log.Infof("lookup succeed %v", dc.ips) + log.Debugf("lookup succeed for %s, ips: %v", host, dc.ips) if d.enableDNSCache { d.dnsCache.Set(host, dc) } diff --git a/internal/net/grpc/admin/admin.go b/internal/net/grpc/admin/admin.go new file mode 100644 index 00000000000..bdf3e99719f --- /dev/null +++ b/internal/net/grpc/admin/admin.go @@ -0,0 +1,24 @@ +// +// Copyright (C) 2019-2023 vdaas.org vald team +// +// 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 +// +// https://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 admin provides grpc admin metrics registration API for providing grpc metrics endpoints +package admin + +import ( + "google.golang.org/grpc/admin" +) + +var Register = admin.Register diff --git a/internal/net/grpc/errdetails/errdetails.go b/internal/net/grpc/errdetails/errdetails.go index 24eeaa19c24..c48b552089e 100644 --- a/internal/net/grpc/errdetails/errdetails.go +++ b/internal/net/grpc/errdetails/errdetails.go @@ -282,7 +282,7 @@ func DebugInfoFromInfoDetail(v *info.Detail) *DebugInfo { "Name:", v.ServerName, ",", "GitCommit:", v.GitCommit, ",", "BuildTime:", v.BuildTime, ",", - "NGT_Version:", v.NGTVersion, ",", + "Algorithm_Info:", v.AlgorithmInfo, ",", "Go_Version:", v.GoVersion, ",", "GOARCH:", v.GoArch, ",", "GOOS:", v.GoOS, ",", diff --git a/internal/net/grpc/interceptor/server/logging/accesslog.go b/internal/net/grpc/interceptor/server/logging/accesslog.go index 8fd8be7a6ec..17ab7cf39d8 100644 --- a/internal/net/grpc/interceptor/server/logging/accesslog.go +++ b/internal/net/grpc/interceptor/server/logging/accesslog.go @@ -88,9 +88,9 @@ func AccessLogInterceptor() grpc.UnaryServerInterceptor { if err != nil { entity.Error = err - log.Infod(rpcCompletedMessage, entity) + log.Warn(rpcCompletedMessage, entity) } else { - log.Infod(rpcCompletedMessage, entity) + log.Debug(rpcCompletedMessage, entity) } return resp, err @@ -136,9 +136,9 @@ func AccessLogStreamInterceptor() grpc.StreamServerInterceptor { if err != nil { entity.Error = err - log.Infod(rpcCompletedMessage, entity) + log.Warn(rpcCompletedMessage, entity) } else { - log.Infod(rpcCompletedMessage, entity) + log.Debug(rpcCompletedMessage, entity) } return err diff --git a/internal/net/grpc/interceptor/server/metric/metric.go b/internal/net/grpc/interceptor/server/metric/metric.go index f7a2e7cb81f..02490641c0b 100644 --- a/internal/net/grpc/interceptor/server/metric/metric.go +++ b/internal/net/grpc/interceptor/server/metric/metric.go @@ -36,7 +36,7 @@ const ( func MetricInterceptors() (grpc.UnaryServerInterceptor, grpc.StreamServerInterceptor, error) { meter := metrics.GetMeter() - latencyHistgram, err := meter.SyncFloat64().Histogram( + latencyHistgram, err := meter.Float64Histogram( latencyMetricsName, metrics.WithDescription("Server latency in milliseconds, by method"), metrics.WithUnit(metrics.Milliseconds), @@ -45,7 +45,7 @@ func MetricInterceptors() (grpc.UnaryServerInterceptor, grpc.StreamServerInterce return nil, nil, errors.Wrap(err, "failed to create latency metric") } - completedRPCCnt, err := meter.SyncInt64().Counter( + completedRPCCnt, err := meter.Int64Counter( completedRPCsMetricsName, metrics.WithDescription("Count of RPCs by method and status"), metrics.WithUnit(metrics.Milliseconds), diff --git a/internal/observability/exporter/otlp/otlp.go b/internal/observability/exporter/otlp/otlp.go index a0c2c96285f..70567e629d5 100644 --- a/internal/observability/exporter/otlp/otlp.go +++ b/internal/observability/exporter/otlp/otlp.go @@ -32,7 +32,7 @@ import ( "go.opentelemetry.io/otel/sdk/metric" "go.opentelemetry.io/otel/sdk/resource" "go.opentelemetry.io/otel/sdk/trace" - semconv "go.opentelemetry.io/otel/semconv/v1.12.0" + semconv "go.opentelemetry.io/otel/semconv/v1.17.0" ) // Metrics and Trace attribute keys. @@ -123,7 +123,8 @@ func (e *exp) initMeter(ctx context.Context) (err error) { e.metricsExporter, metric.WithInterval(e.mExportInterval), metric.WithTimeout(e.mExportTimeout), - ), e.metricsViews...), + )), + metric.WithView(e.metricsViews...), metric.WithResource(resource.NewWithAttributes( semconv.SchemaURL, e.attributes..., diff --git a/internal/observability/metrics/agent/core/ngt/ngt.go b/internal/observability/metrics/agent/core/ngt/ngt.go index 09ec36bb4fe..ac9ecdf9d09 100644 --- a/internal/observability/metrics/agent/core/ngt/ngt.go +++ b/internal/observability/metrics/agent/core/ngt/ngt.go @@ -18,8 +18,9 @@ import ( "github.com/vdaas/vald/internal/observability/metrics" "github.com/vdaas/vald/pkg/agent/core/ngt/service" + api "go.opentelemetry.io/otel/metric" + view "go.opentelemetry.io/otel/sdk/metric" "go.opentelemetry.io/otel/sdk/metric/aggregation" - "go.opentelemetry.io/otel/sdk/metric/view" ) const ( @@ -58,93 +59,85 @@ func New(n service.NGT) metrics.Metric { } } -func (n *ngtMetrics) View() ([]*metrics.View, error) { - indexCount, err := view.New( - view.MatchInstrumentName(indexCountMetricsName), - view.WithSetDescription(indexCountMetricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - uncommittedIndexCount, err := view.New( - view.MatchInstrumentName(uncommittedIndexCountMetricsName), - view.WithSetDescription(uncommittedIndexCountMetricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - insertVQueueCount, err := view.New( - view.MatchInstrumentName(insertVQueueCountMetricsName), - view.WithSetDescription(insertVQueueCountMetricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - deleteVQueueCount, err := view.New( - view.MatchInstrumentName(deleteVQueueCountMetricsName), - view.WithSetDescription(deleteVQueueCountMetricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - completedCreateIndexTotal, err := view.New( - view.MatchInstrumentName(completedCreateIndexTotalMetricsName), - view.WithSetDescription(completedCreateIndexTotalMetricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - executedProactiveGCTotal, err := view.New( - view.MatchInstrumentName(executedProactiveGCTotalMetricsName), - view.WithSetDescription(executedProactiveGCTotalMetricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - isIndexing, err := view.New( - view.MatchInstrumentName(isIndexingMetricsName), - view.WithSetDescription(isIndexingMetricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - isSaving, err := view.New( - view.MatchInstrumentName(isSavingMetricsName), - view.WithSetDescription(isSavingMetricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - return []*metrics.View{ - &indexCount, - &uncommittedIndexCount, - &insertVQueueCount, - &deleteVQueueCount, - &completedCreateIndexTotal, - &executedProactiveGCTotal, - &isIndexing, - &isSaving, +func (n *ngtMetrics) View() ([]metrics.View, error) { + return []metrics.View{ + view.NewView( + view.Instrument{ + Name: indexCountMetricsName, + Description: indexCountMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), + view.NewView( + view.Instrument{ + Name: uncommittedIndexCountMetricsName, + Description: uncommittedIndexCountMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), + view.NewView( + view.Instrument{ + Name: insertVQueueCountMetricsName, + Description: insertVQueueCountMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), + view.NewView( + view.Instrument{ + Name: deleteVQueueCountMetricsName, + Description: deleteVQueueCountMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), + view.NewView( + view.Instrument{ + Name: completedCreateIndexTotalMetricsName, + Description: completedCreateIndexTotalMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), + view.NewView( + view.Instrument{ + Name: executedProactiveGCTotalMetricsName, + Description: executedProactiveGCTotalMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), + view.NewView( + view.Instrument{ + Name: isIndexingMetricsName, + Description: isIndexingMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), + view.NewView( + view.Instrument{ + Name: isSavingMetricsName, + Description: isSavingMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), }, nil } func (n *ngtMetrics) Register(m metrics.Meter) error { - indexCount, err := m.AsyncInt64().Gauge( + indexCount, err := m.Int64ObservableGauge( indexCountMetricsName, metrics.WithDescription(indexCountMetricsDescription), metrics.WithUnit(metrics.Dimensionless), @@ -153,7 +146,7 @@ func (n *ngtMetrics) Register(m metrics.Meter) error { return err } - uncommittedIndexCount, err := m.AsyncInt64().Gauge( + uncommittedIndexCount, err := m.Int64ObservableGauge( uncommittedIndexCountMetricsName, metrics.WithDescription(uncommittedIndexCountMetricsDescription), metrics.WithUnit(metrics.Dimensionless), @@ -162,7 +155,7 @@ func (n *ngtMetrics) Register(m metrics.Meter) error { return err } - insertVQueueCount, err := m.AsyncInt64().Gauge( + insertVQueueCount, err := m.Int64ObservableGauge( insertVQueueCountMetricsName, metrics.WithDescription(insertVQueueCountMetricsDescription), metrics.WithUnit(metrics.Dimensionless), @@ -171,7 +164,7 @@ func (n *ngtMetrics) Register(m metrics.Meter) error { return err } - deleteVQueueCount, err := m.AsyncInt64().Gauge( + deleteVQueueCount, err := m.Int64ObservableGauge( deleteVQueueCountMetricsName, metrics.WithDescription(deleteVQueueCountMetricsDescription), metrics.WithUnit(metrics.Dimensionless), @@ -180,7 +173,7 @@ func (n *ngtMetrics) Register(m metrics.Meter) error { return err } - completedCreateIndexTotal, err := m.AsyncInt64().Gauge( + completedCreateIndexTotal, err := m.Int64ObservableGauge( completedCreateIndexTotalMetricsName, metrics.WithDescription(completedCreateIndexTotalMetricsDescription), metrics.WithUnit(metrics.Dimensionless), @@ -189,7 +182,7 @@ func (n *ngtMetrics) Register(m metrics.Meter) error { return err } - executedProactiveGCTotal, err := m.AsyncInt64().Gauge( + executedProactiveGCTotal, err := m.Int64ObservableGauge( executedProactiveGCTotalMetricsName, metrics.WithDescription(executedProactiveGCTotalMetricsDescription), metrics.WithUnit(metrics.Dimensionless), @@ -198,7 +191,7 @@ func (n *ngtMetrics) Register(m metrics.Meter) error { return err } - isIndexing, err := m.AsyncInt64().Gauge( + isIndexing, err := m.Int64ObservableGauge( isIndexingMetricsName, metrics.WithDescription(isIndexingMetricsDescription), metrics.WithUnit(metrics.Dimensionless), @@ -207,7 +200,7 @@ func (n *ngtMetrics) Register(m metrics.Meter) error { return err } - isSaving, err := m.AsyncInt64().Gauge( + isSaving, err := m.Int64ObservableGauge( isSavingMetricsName, metrics.WithDescription(isSavingMetricsDescription), metrics.WithUnit(metrics.Dimensionless), @@ -216,36 +209,36 @@ func (n *ngtMetrics) Register(m metrics.Meter) error { return err } - return m.RegisterCallback( - []metrics.AsynchronousInstrument{ - indexCount, - uncommittedIndexCount, - insertVQueueCount, - deleteVQueueCount, - completedCreateIndexTotal, - executedProactiveGCTotal, - isIndexing, - isSaving, - }, - func(ctx context.Context) { + _, err = m.RegisterCallback( + func(_ context.Context, o api.Observer) error { var indexing int64 if n.ngt.IsIndexing() { indexing = 1 } - var saving int64 if n.ngt.IsSaving() { saving = 1 } - indexCount.Observe(ctx, int64(n.ngt.Len())) - uncommittedIndexCount.Observe(ctx, int64(n.ngt.InsertVQueueBufferLen()+n.ngt.DeleteVQueueBufferLen())) - insertVQueueCount.Observe(ctx, int64(n.ngt.InsertVQueueBufferLen())) - deleteVQueueCount.Observe(ctx, int64(int64(n.ngt.DeleteVQueueBufferLen()))) - completedCreateIndexTotal.Observe(ctx, int64(n.ngt.NumberOfCreateIndexExecution())) - executedProactiveGCTotal.Observe(ctx, int64(n.ngt.NumberOfProactiveGCExecution())) - isIndexing.Observe(ctx, int64(indexing)) - isSaving.Observe(ctx, int64(saving)) + o.ObserveInt64(indexCount, int64(n.ngt.Len())) + o.ObserveInt64(uncommittedIndexCount, int64(n.ngt.InsertVQueueBufferLen()+n.ngt.DeleteVQueueBufferLen())) + o.ObserveInt64(insertVQueueCount, int64(n.ngt.InsertVQueueBufferLen())) + o.ObserveInt64(deleteVQueueCount, int64(int64(n.ngt.DeleteVQueueBufferLen()))) + o.ObserveInt64(completedCreateIndexTotal, int64(n.ngt.NumberOfCreateIndexExecution())) + o.ObserveInt64(executedProactiveGCTotal, int64(n.ngt.NumberOfProactiveGCExecution())) + o.ObserveInt64(isIndexing, int64(indexing)) + o.ObserveInt64(isSaving, int64(saving)) + + return nil }, - ) + indexCount, + uncommittedIndexCount, + insertVQueueCount, + deleteVQueueCount, + completedCreateIndexTotal, + executedProactiveGCTotal, + isIndexing, + isSaving, + ) + return err } diff --git a/internal/observability/metrics/agent/sidecar/sidecar.go b/internal/observability/metrics/agent/sidecar/sidecar.go index 34ec7934ea2..991a010b906 100644 --- a/internal/observability/metrics/agent/sidecar/sidecar.go +++ b/internal/observability/metrics/agent/sidecar/sidecar.go @@ -21,8 +21,9 @@ import ( "github.com/vdaas/vald/internal/observability/attribute" "github.com/vdaas/vald/internal/observability/metrics" "github.com/vdaas/vald/pkg/agent/sidecar/service/observer" + api "go.opentelemetry.io/otel/metric" + view "go.opentelemetry.io/otel/sdk/metric" "go.opentelemetry.io/otel/sdk/metric/aggregation" - "go.opentelemetry.io/otel/sdk/metric/view" ) const ( @@ -58,45 +59,42 @@ func New() MetricsHook { } } -func (*sidecarMetrics) View() ([]*metrics.View, error) { - uploadTotal, err := view.New( - view.MatchInstrumentName(uploadTotalMetricsName), - view.WithSetDescription(uploadTotalMetricsDescription), - view.WithSetAggregation(aggregation.Sum{}), - ) - if err != nil { - return nil, err - } - - uploadBytes, err := view.New( - view.MatchInstrumentName(uploadBytesMetricsName), - view.WithSetDescription(uploadBytesMetricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - uploadLatency, err := view.New( - view.MatchInstrumentName(uploadLatencyMetricsName), - view.WithSetDescription(uploadLatencyMetricsDescription), - view.WithSetAggregation(aggregation.ExplicitBucketHistogram{ - Boundaries: metrics.RoughMillisecondsDistribution, - }), - ) - if err != nil { - return nil, err - } - - return []*metrics.View{ - &uploadTotal, - &uploadBytes, - &uploadLatency, +func (*sidecarMetrics) View() ([]metrics.View, error) { + return []metrics.View{ + view.NewView( + view.Instrument{ + Name: uploadTotalMetricsName, + Description: uploadTotalMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.Sum{}, + }, + ), + view.NewView( + view.Instrument{ + Name: uploadBytesMetricsName, + Description: uploadBytesMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), + view.NewView( + view.Instrument{ + Name: uploadLatencyMetricsName, + Description: uploadLatencyMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.ExplicitBucketHistogram{ + Boundaries: metrics.RoughMillisecondsDistribution, + }, + }, + ), }, nil } func (sm *sidecarMetrics) Register(m metrics.Meter) error { - uploadTotal, err := m.AsyncInt64().Counter( + uploadTotal, err := m.Int64ObservableCounter( uploadTotalMetricsName, metrics.WithDescription(uploadTotalMetricsDescription), metrics.WithUnit(metrics.Dimensionless), @@ -104,7 +102,7 @@ func (sm *sidecarMetrics) Register(m metrics.Meter) error { if err != nil { return err } - uploadBytes, err := m.AsyncInt64().Gauge( + uploadBytes, err := m.Int64ObservableGauge( uploadBytesMetricsName, metrics.WithDescription(uploadBytesMetricsDescription), metrics.WithUnit(metrics.Bytes), @@ -112,7 +110,7 @@ func (sm *sidecarMetrics) Register(m metrics.Meter) error { if err != nil { return err } - uploadLatency, err := m.AsyncFloat64().Gauge( + uploadLatency, err := m.Float64ObservableGauge( uploadLatencyMetricsName, metrics.WithDescription(uploadLatencyMetricsDescription), metrics.WithUnit(metrics.Milliseconds), @@ -121,18 +119,13 @@ func (sm *sidecarMetrics) Register(m metrics.Meter) error { return err } - return m.RegisterCallback( - []metrics.AsynchronousInstrument{ - uploadTotal, - uploadBytes, - uploadLatency, - }, - func(ctx context.Context) { + _, err = m.RegisterCallback( + func(_ context.Context, o api.Observer) error { sm.mu.Lock() defer sm.mu.Unlock() if sm.info == nil { - return + return nil } attrs := []attribute.KeyValue{ @@ -141,15 +134,19 @@ func (sm *sidecarMetrics) Register(m metrics.Meter) error { attribute.String(sm.filenameKey, sm.info.Filename), } + o.ObserveInt64(uploadTotal, 1, attrs...) + o.ObserveInt64(uploadBytes, sm.info.Bytes, attrs...) latencyMillis := float64(sm.info.EndTime.Sub(sm.info.StartTime)) / float64(time.Millisecond) - - uploadTotal.Observe(ctx, 1, attrs...) - uploadBytes.Observe(ctx, sm.info.Bytes, attrs...) - uploadLatency.Observe(ctx, latencyMillis, attrs...) - + o.ObserveFloat64(uploadLatency, latencyMillis, attrs...) sm.info = nil + + return nil }, + uploadTotal, + uploadBytes, + uploadLatency, ) + return err } func (*sidecarMetrics) BeforeProcess(ctx context.Context, _ *observer.BackupInfo) (context.Context, error) { diff --git a/internal/observability/metrics/backoff/backoff.go b/internal/observability/metrics/backoff/backoff.go index 6d721f831a3..8767cb42dcf 100644 --- a/internal/observability/metrics/backoff/backoff.go +++ b/internal/observability/metrics/backoff/backoff.go @@ -19,8 +19,9 @@ import ( "github.com/vdaas/vald/internal/backoff" "github.com/vdaas/vald/internal/observability/attribute" "github.com/vdaas/vald/internal/observability/metrics" + api "go.opentelemetry.io/otel/metric" + view "go.opentelemetry.io/otel/sdk/metric" "go.opentelemetry.io/otel/sdk/metric/aggregation" - "go.opentelemetry.io/otel/sdk/metric/view" ) const ( @@ -38,22 +39,22 @@ func New() metrics.Metric { } } -func (*backoffMetrics) View() ([]*metrics.View, error) { - retryCount, err := view.New( - view.MatchInstrumentName(metricsName), - view.WithSetDescription(metricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - return []*metrics.View{ - &retryCount, +func (*backoffMetrics) View() ([]metrics.View, error) { + return []metrics.View{ + view.NewView( + view.Instrument{ + Name: metricsName, + Description: metricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), }, nil } -func (bm *backoffMetrics) Register(m metrics.Meter) error { - retryCount, err := m.AsyncInt64().Gauge( +func (bm *backoffMetrics) Register(m metrics.Meter) (err error) { + retryCount, err := m.Int64ObservableGauge( metricsName, metrics.WithDescription(metricsDescription), metrics.WithUnit(metrics.Dimensionless), @@ -61,18 +62,17 @@ func (bm *backoffMetrics) Register(m metrics.Meter) error { if err != nil { return err } - return m.RegisterCallback( - []metrics.AsynchronousInstrument{ - retryCount, - }, - func(ctx context.Context) { + _, err = m.RegisterCallback( + func(ctx context.Context, o api.Observer) error { ms := backoff.Metrics(ctx) if len(ms) == 0 { - return + return nil } for name, cnt := range ms { - retryCount.Observe(ctx, cnt, attribute.String(bm.backoffNameKey, name)) + o.ObserveInt64(retryCount, cnt, attribute.String(bm.backoffNameKey, name)) } - }, + return nil + }, retryCount, ) + return err } diff --git a/internal/observability/metrics/circuitbreaker/circuitbreaker.go b/internal/observability/metrics/circuitbreaker/circuitbreaker.go index 9d1cf46084b..d9119a2d154 100644 --- a/internal/observability/metrics/circuitbreaker/circuitbreaker.go +++ b/internal/observability/metrics/circuitbreaker/circuitbreaker.go @@ -19,8 +19,9 @@ import ( "github.com/vdaas/vald/internal/circuitbreaker" "github.com/vdaas/vald/internal/observability/attribute" "github.com/vdaas/vald/internal/observability/metrics" + api "go.opentelemetry.io/otel/metric" + view "go.opentelemetry.io/otel/sdk/metric" "go.opentelemetry.io/otel/sdk/metric/aggregation" - "go.opentelemetry.io/otel/sdk/metric/view" ) const ( @@ -40,23 +41,22 @@ func New() metrics.Metric { } } -func (*breakerMetrics) View() ([]*metrics.View, error) { - breakerState, err := view.New( - view.MatchInstrumentName(metricsName), - view.WithSetDescription(metricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - return []*metrics.View{ - &breakerState, +func (*breakerMetrics) View() ([]metrics.View, error) { + return []metrics.View{ + view.NewView( + view.Instrument{ + Name: metricsName, + Description: metricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), }, nil } func (bm *breakerMetrics) Register(m metrics.Meter) error { - breakerState, err := m.AsyncInt64().Gauge( + breakerState, err := m.Int64ObservableGauge( metricsName, metrics.WithDescription(metricsDescription), metrics.WithUnit(metrics.Dimensionless), @@ -65,23 +65,22 @@ func (bm *breakerMetrics) Register(m metrics.Meter) error { return err } - return m.RegisterCallback( - []metrics.AsynchronousInstrument{ - breakerState, - }, - func(ctx context.Context) { + _, err = m.RegisterCallback( + func(ctx context.Context, o api.Observer) error { ms := circuitbreaker.Metrics(ctx) if len(ms) != 0 { for name, sts := range ms { if len(sts) != 0 { for st, cnt := range sts { - breakerState.Observe(ctx, cnt, + o.ObserveInt64(breakerState, cnt, attribute.String(bm.breakerNameKey, name), attribute.String(bm.stateKey, st.String())) } } } } - }, + return nil + }, breakerState, ) + return err } diff --git a/internal/observability/metrics/grpc/grpc.go b/internal/observability/metrics/grpc/grpc.go index 2655eda3b9f..0c8f77d7b0a 100644 --- a/internal/observability/metrics/grpc/grpc.go +++ b/internal/observability/metrics/grpc/grpc.go @@ -15,8 +15,8 @@ package grpc import ( "github.com/vdaas/vald/internal/observability/metrics" + view "go.opentelemetry.io/otel/sdk/metric" "go.opentelemetry.io/otel/sdk/metric/aggregation" - "go.opentelemetry.io/otel/sdk/metric/view" ) const ( @@ -33,29 +33,28 @@ func New() metrics.Metric { return &grpcServerMetrics{} } -func (*grpcServerMetrics) View() ([]*metrics.View, error) { - latencyHistgram, err := view.New( - view.MatchInstrumentName(latencyMetricsName), - view.WithSetDescription(latencyMetricsDesctiption), - view.WithSetAggregation(aggregation.ExplicitBucketHistogram{ - Boundaries: metrics.DefaultMillisecondsDistribution, - }), - ) - if err != nil { - return nil, err - } - - completedRPCCnt, err := view.New( - view.MatchInstrumentName(completedRPCsMetricsName), - view.WithSetDescription(completedRPCsMetricsDescription), - view.WithSetAggregation(aggregation.Sum{}), - ) - if err != nil { - return nil, err - } - return []*metrics.View{ - &latencyHistgram, - &completedRPCCnt, +func (*grpcServerMetrics) View() ([]metrics.View, error) { + return []metrics.View{ + view.NewView( + view.Instrument{ + Name: latencyMetricsName, + Description: latencyMetricsDesctiption, + }, + view.Stream{ + Aggregation: aggregation.ExplicitBucketHistogram{ + Boundaries: metrics.DefaultMillisecondsDistribution, + }, + }, + ), + view.NewView( + view.Instrument{ + Name: completedRPCsMetricsName, + Description: completedRPCsMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.Sum{}, + }, + ), }, nil } diff --git a/internal/observability/metrics/info/info.go b/internal/observability/metrics/info/info.go index 705af885746..26a4944a718 100644 --- a/internal/observability/metrics/info/info.go +++ b/internal/observability/metrics/info/info.go @@ -21,8 +21,9 @@ import ( "github.com/vdaas/vald/internal/observability/attribute" "github.com/vdaas/vald/internal/observability/metrics" + api "go.opentelemetry.io/otel/metric" + view "go.opentelemetry.io/otel/sdk/metric" "go.opentelemetry.io/otel/sdk/metric/aggregation" - "go.opentelemetry.io/otel/sdk/metric/view" ) type info struct { @@ -83,23 +84,22 @@ func labelKVs(i interface{}) map[string]string { return kvs } -func (i *info) View() ([]*metrics.View, error) { - info, err := view.New( - view.MatchInstrumentName(i.name), - view.WithSetDescription(i.description), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - return []*metrics.View{ - &info, +func (i *info) View() ([]metrics.View, error) { + return []metrics.View{ + view.NewView( + view.Instrument{ + Name: i.name, + Description: i.description, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), }, nil } func (i *info) Register(m metrics.Meter) error { - info, err := m.AsyncInt64().Gauge( + info, err := m.Int64ObservableGauge( i.name, metrics.WithDescription(i.description), metrics.WithUnit(metrics.Dimensionless), @@ -107,16 +107,15 @@ func (i *info) Register(m metrics.Meter) error { if err != nil { return err } - return m.RegisterCallback( - []metrics.AsynchronousInstrument{ - info, - }, - func(ctx context.Context) { + _, err = m.RegisterCallback( + func(_ context.Context, o api.Observer) error { attrs := make([]attribute.KeyValue, 0, len(i.kvs)) for key, val := range i.kvs { attrs = append(attrs, attribute.String(key, val)) } - info.Observe(ctx, 1, attrs...) - }, + o.ObserveInt64(info, 1, attrs...) + return nil + }, info, ) + return err } diff --git a/internal/observability/metrics/manager/index/index.go b/internal/observability/metrics/manager/index/index.go index 7e32d371481..84d578dbade 100644 --- a/internal/observability/metrics/manager/index/index.go +++ b/internal/observability/metrics/manager/index/index.go @@ -18,8 +18,9 @@ import ( "github.com/vdaas/vald/internal/observability/metrics" "github.com/vdaas/vald/pkg/manager/index/service" + api "go.opentelemetry.io/otel/metric" + view "go.opentelemetry.io/otel/sdk/metric" "go.opentelemetry.io/otel/sdk/metric/aggregation" - "go.opentelemetry.io/otel/sdk/metric/view" ) const ( @@ -43,43 +44,40 @@ func New(i service.Indexer) metrics.Metric { } } -func (*indexerMetrics) View() ([]*metrics.View, error) { - uuidCount, err := view.New( - view.MatchInstrumentName(uuidCountMetricsName), - view.WithSetDescription(uuidCountMetricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - uncommittedUUIDCount, err := view.New( - view.MatchInstrumentName(uncommittedUUIDCountMetricsName), - view.WithSetDescription(uncommittedUUIDCountMetricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - isIndexing, err := view.New( - view.MatchInstrumentName(isIndexingMetricsName), - view.WithSetDescription(isIndexingMetricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - return []*metrics.View{ - &uuidCount, - &uncommittedUUIDCount, - &isIndexing, +func (*indexerMetrics) View() ([]metrics.View, error) { + return []metrics.View{ + view.NewView( + view.Instrument{ + Name: uuidCountMetricsName, + Description: uuidCountMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), + view.NewView( + view.Instrument{ + Name: uncommittedUUIDCountMetricsName, + Description: uncommittedUUIDCountMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), + view.NewView( + view.Instrument{ + Name: isIndexingMetricsName, + Description: isIndexingMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), }, nil } func (im *indexerMetrics) Register(m metrics.Meter) error { - uuidCount, err := m.AsyncInt64().Gauge( + uuidCount, err := m.Int64ObservableGauge( uuidCountMetricsName, metrics.WithDescription(uuidCountMetricsDescription), metrics.WithUnit(metrics.Dimensionless), @@ -88,7 +86,7 @@ func (im *indexerMetrics) Register(m metrics.Meter) error { return err } - uncommittedUUIDCount, err := m.AsyncInt64().Gauge( + uncommittedUUIDCount, err := m.Int64ObservableGauge( uncommittedUUIDCountMetricsName, metrics.WithDescription(uncommittedUUIDCountMetricsDescription), metrics.WithUnit(metrics.Dimensionless), @@ -97,7 +95,7 @@ func (im *indexerMetrics) Register(m metrics.Meter) error { return err } - isIndexing, err := m.AsyncInt64().Gauge( + isIndexing, err := m.Int64ObservableGauge( isIndexingMetricsName, metrics.WithDescription(isIndexingMetricsDescription), metrics.WithUnit(metrics.Dimensionless), @@ -106,20 +104,20 @@ func (im *indexerMetrics) Register(m metrics.Meter) error { return err } - return m.RegisterCallback( - []metrics.AsynchronousInstrument{ - uuidCount, - uncommittedUUIDCount, - isIndexing, - }, - func(ctx context.Context) { + _, err = m.RegisterCallback( + func(_ context.Context, o api.Observer) error { var indexing int64 if im.indexer.IsIndexing() { indexing = 1 } - uuidCount.Observe(ctx, int64(im.indexer.NumberOfUUIDs())) - uncommittedUUIDCount.Observe(ctx, int64(im.indexer.NumberOfUncommittedUUIDs())) - isIndexing.Observe(ctx, int64(indexing)) + o.ObserveInt64(uuidCount, int64(im.indexer.NumberOfUUIDs())) + o.ObserveInt64(uncommittedUUIDCount, int64(im.indexer.NumberOfUncommittedUUIDs())) + o.ObserveInt64(isIndexing, int64(indexing)) + return nil }, + uuidCount, + uncommittedUUIDCount, + isIndexing, ) + return nil } diff --git a/internal/observability/metrics/mem/index/index.go b/internal/observability/metrics/mem/index/index.go index 9da794482e4..756f69e5925 100644 --- a/internal/observability/metrics/mem/index/index.go +++ b/internal/observability/metrics/mem/index/index.go @@ -19,8 +19,9 @@ import ( "time" "github.com/vdaas/vald/internal/observability/metrics" + api "go.opentelemetry.io/otel/metric" + view "go.opentelemetry.io/otel/sdk/metric" "go.opentelemetry.io/otel/sdk/metric/aggregation" - "go.opentelemetry.io/otel/sdk/metric/view" ) const ( @@ -73,153 +74,139 @@ func New() metrics.Metric { return &memoryMetrics{} } -func (*memoryMetrics) View() ([]*metrics.View, error) { - alloc, err := view.New( - view.MatchInstrumentName(allocMetricsDescription), - view.WithSetDescription(allocMetricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - totalAlloc, err := view.New( - view.MatchInstrumentName(totalAllocMetricsDescription), - view.WithSetDescription(totalAllocMetricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - sys, err := view.New( - view.MatchInstrumentName(sysMetricsName), - view.WithSetDescription(sysMetricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - mallocs, err := view.New( - view.MatchInstrumentName(mallocsMetricsName), - view.WithSetDescription(mallocsMetricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - frees, err := view.New( - view.MatchInstrumentName(freesMetricsName), - view.WithSetDescription(freesMetricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - heapAlloc, err := view.New( - view.MatchInstrumentName(heapAllocMetricsName), - view.WithSetDescription(heapAllocMetricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - heapSys, err := view.New( - view.MatchInstrumentName(heapSysMetricsName), - view.WithSetDescription(heapSysMetricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - heapIdle, err := view.New( - view.MatchInstrumentName(heapIdleMetricsName), - view.WithSetDescription(heapIdleMetricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - heapInuse, err := view.New( - view.MatchInstrumentName(heapInuseMetricsName), - view.WithSetDescription(heapInuseMetricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - heapReleased, err := view.New( - view.MatchInstrumentName(heapReleasedMetricsName), - view.WithSetDescription(heapReleasedMetricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - stackInuse, err := view.New( - view.MatchInstrumentName(stackInuseMetricsName), - view.WithSetDescription(stackInuseMetricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - stackSys, err := view.New( - view.MatchInstrumentName(stackSysMetricsName), - view.WithSetDescription(stackSysMetricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - pauseTotalMs, err := view.New( - view.MatchInstrumentName(pauseTotalMsMetricsName), - view.WithSetDescription(pauseTotalMsMetricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - numGC, err := view.New( - view.MatchInstrumentName(numGCMetricsName), - view.WithSetDescription(numGCMetricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - return []*metrics.View{ - &alloc, - &totalAlloc, - &sys, - &mallocs, - &frees, - &heapAlloc, - &heapSys, - &heapIdle, - &heapInuse, - &heapReleased, - &stackInuse, - &stackSys, - &pauseTotalMs, - &numGC, +func (*memoryMetrics) View() ([]metrics.View, error) { + return []metrics.View{ + view.NewView( + view.Instrument{ + Name: allocMetricsName, + Description: allocMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), + view.NewView( + view.Instrument{ + Name: totalAllocMetricsDescription, + Description: totalAllocMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), + view.NewView( + view.Instrument{ + Name: sysMetricsName, + Description: sysMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), + view.NewView( + view.Instrument{ + Name: mallocsMetricsName, + Description: mallocsMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), + view.NewView( + view.Instrument{ + Name: freesMetricsName, + Description: freesMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), + view.NewView( + view.Instrument{ + Name: heapAllocMetricsName, + Description: heapAllocMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), + view.NewView( + view.Instrument{ + Name: heapSysMetricsName, + Description: heapSysMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), + view.NewView( + view.Instrument{ + Name: heapIdleMetricsName, + Description: heapIdleMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), + view.NewView( + view.Instrument{ + Name: heapInuseMetricsName, + Description: heapInuseMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), + view.NewView( + view.Instrument{ + Name: heapReleasedMetricsName, + Description: heapReleasedMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), + view.NewView( + view.Instrument{ + Name: stackInuseMetricsName, + Description: stackInuseMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), + view.NewView( + view.Instrument{ + Name: stackSysMetricsName, + Description: stackSysMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), + view.NewView( + view.Instrument{ + Name: pauseTotalMsMetricsName, + Description: pauseTotalMsMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), + view.NewView( + view.Instrument{ + Name: numGCMetricsName, + Description: numGCMetricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), }, nil } func (*memoryMetrics) Register(m metrics.Meter) error { - alloc, err := m.AsyncInt64().Gauge( + alloc, err := m.Int64ObservableGauge( allocMetricsName, metrics.WithDescription(allocMetricsDescription), metrics.WithUnit(metrics.Bytes), @@ -228,7 +215,7 @@ func (*memoryMetrics) Register(m metrics.Meter) error { return err } - totalAlloc, err := m.AsyncInt64().Gauge( + totalAlloc, err := m.Int64ObservableGauge( totalAllocMetricsDescription, metrics.WithDescription(totalAllocMetricsDescription), metrics.WithUnit(metrics.Bytes), @@ -237,7 +224,7 @@ func (*memoryMetrics) Register(m metrics.Meter) error { return err } - sys, err := m.AsyncInt64().Gauge( + sys, err := m.Int64ObservableGauge( sysMetricsName, metrics.WithDescription(sysMetricsDescription), metrics.WithUnit(metrics.Bytes), @@ -246,7 +233,7 @@ func (*memoryMetrics) Register(m metrics.Meter) error { return err } - mallocs, err := m.AsyncInt64().Gauge( + mallocs, err := m.Int64ObservableGauge( mallocsMetricsName, metrics.WithDescription(mallocsMetricsDescription), metrics.WithUnit(metrics.Dimensionless), @@ -255,7 +242,7 @@ func (*memoryMetrics) Register(m metrics.Meter) error { return err } - frees, err := m.AsyncInt64().Gauge( + frees, err := m.Int64ObservableGauge( freesMetricsName, metrics.WithDescription(freesMetricsDescription), metrics.WithUnit(metrics.Dimensionless), @@ -264,7 +251,7 @@ func (*memoryMetrics) Register(m metrics.Meter) error { return err } - heapAlloc, err := m.AsyncInt64().Gauge( + heapAlloc, err := m.Int64ObservableGauge( heapAllocMetricsName, metrics.WithDescription(heapAllocMetricsDescription), metrics.WithUnit(metrics.Bytes), @@ -273,7 +260,7 @@ func (*memoryMetrics) Register(m metrics.Meter) error { return err } - heapSys, err := m.AsyncInt64().Gauge( + heapSys, err := m.Int64ObservableGauge( heapSysMetricsName, metrics.WithDescription(heapSysMetricsDescription), metrics.WithUnit(metrics.Bytes), @@ -282,7 +269,7 @@ func (*memoryMetrics) Register(m metrics.Meter) error { return err } - heapIdle, err := m.AsyncInt64().Gauge( + heapIdle, err := m.Int64ObservableGauge( heapIdleMetricsName, metrics.WithDescription(heapIdleMetricsDescription), metrics.WithUnit(metrics.Bytes), @@ -291,7 +278,7 @@ func (*memoryMetrics) Register(m metrics.Meter) error { return err } - heapInuse, err := m.AsyncInt64().Gauge( + heapInuse, err := m.Int64ObservableGauge( heapInuseMetricsName, metrics.WithDescription(heapInuseMetricsDescription), metrics.WithUnit(metrics.Bytes), @@ -300,7 +287,7 @@ func (*memoryMetrics) Register(m metrics.Meter) error { return err } - heapReleased, err := m.AsyncInt64().Gauge( + heapReleased, err := m.Int64ObservableGauge( heapReleasedMetricsName, metrics.WithDescription(heapReleasedMetricsDescription), metrics.WithUnit(metrics.Bytes), @@ -309,7 +296,7 @@ func (*memoryMetrics) Register(m metrics.Meter) error { return err } - stackInuse, err := m.AsyncInt64().Gauge( + stackInuse, err := m.Int64ObservableGauge( stackInuseMetricsName, metrics.WithDescription(stackInuseMetricsDescription), metrics.WithUnit(metrics.Bytes), @@ -318,7 +305,7 @@ func (*memoryMetrics) Register(m metrics.Meter) error { return err } - stackSys, err := m.AsyncInt64().Gauge( + stackSys, err := m.Int64ObservableGauge( stackSysMetricsName, metrics.WithDescription(stackSysMetricsDescription), metrics.WithUnit(metrics.Bytes), @@ -327,7 +314,7 @@ func (*memoryMetrics) Register(m metrics.Meter) error { return err } - pauseTotalMs, err := m.AsyncInt64().Gauge( + pauseTotalMs, err := m.Int64ObservableGauge( pauseTotalMsMetricsName, metrics.WithDescription(pauseTotalMsMetricsDescription), metrics.WithUnit(metrics.Milliseconds), @@ -336,7 +323,7 @@ func (*memoryMetrics) Register(m metrics.Meter) error { return err } - numGC, err := m.AsyncInt64().Gauge( + numGC, err := m.Int64ObservableGauge( numGCMetricsName, metrics.WithDescription(numGCMetricsDescription), metrics.WithUnit(metrics.Bytes), @@ -345,46 +332,44 @@ func (*memoryMetrics) Register(m metrics.Meter) error { return err } - return m.RegisterCallback( - []metrics.AsynchronousInstrument{ - alloc, - totalAlloc, - sys, - mallocs, - frees, - heapAlloc, - heapSys, - heapIdle, - heapInuse, - heapReleased, - stackInuse, - stackSys, - pauseTotalMs, - numGC, - }, - func(ctx context.Context) { + _, err = m.RegisterCallback( + func(_ context.Context, o api.Observer) error { var mstats runtime.MemStats runtime.ReadMemStats(&mstats) - - alloc.Observe(ctx, int64(mstats.Alloc)) - totalAlloc.Observe(ctx, int64(mstats.TotalAlloc)) - sys.Observe(ctx, int64(mstats.Sys)) - mallocs.Observe(ctx, int64(mstats.Mallocs)) - frees.Observe(ctx, int64(mstats.Frees)) - heapAlloc.Observe(ctx, int64(mstats.HeapAlloc)) - heapSys.Observe(ctx, int64(mstats.HeapSys)) - heapIdle.Observe(ctx, int64(mstats.HeapIdle)) - heapInuse.Observe(ctx, int64(mstats.HeapInuse)) - heapReleased.Observe(ctx, int64(mstats.HeapReleased)) - stackInuse.Observe(ctx, int64(mstats.StackInuse)) - stackSys.Observe(ctx, int64(mstats.StackSys)) - - ptMs := int64(0) + o.ObserveInt64(alloc, int64(mstats.Alloc)) + o.ObserveInt64(frees, int64(mstats.Frees)) + o.ObserveInt64(heapAlloc, int64(mstats.HeapAlloc)) + o.ObserveInt64(heapIdle, int64(mstats.HeapIdle)) + o.ObserveInt64(heapInuse, int64(mstats.HeapInuse)) + o.ObserveInt64(heapReleased, int64(mstats.HeapReleased)) + o.ObserveInt64(heapSys, int64(mstats.HeapSys)) + o.ObserveInt64(mallocs, int64(mstats.Mallocs)) + o.ObserveInt64(stackInuse, int64(mstats.StackInuse)) + o.ObserveInt64(stackSys, int64(mstats.StackSys)) + o.ObserveInt64(sys, int64(mstats.Sys)) + o.ObserveInt64(totalAlloc, int64(mstats.TotalAlloc)) + var ptMs int64 if mstats.PauseTotalNs > 0 { - ptMs = int64(mstats.PauseTotalNs / uint64(time.Millisecond)) + ptMs = int64(float64(mstats.PauseTotalNs) / float64(time.Millisecond)) } - pauseTotalMs.Observe(ctx, ptMs) - numGC.Observe(ctx, int64(mstats.NextGC)) + o.ObserveInt64(pauseTotalMs, ptMs) + o.ObserveInt64(numGC, int64(mstats.NextGC)) + return nil }, + alloc, + frees, + heapAlloc, + heapIdle, + heapInuse, + heapReleased, + heapSys, + mallocs, + stackInuse, + stackSys, + sys, + totalAlloc, + pauseTotalMs, + numGC, ) + return err } diff --git a/internal/observability/metrics/metrics.go b/internal/observability/metrics/metrics.go index 9e4e35b8679..3d061431bea 100644 --- a/internal/observability/metrics/metrics.go +++ b/internal/observability/metrics/metrics.go @@ -17,13 +17,43 @@ import ( "go.opentelemetry.io/otel/metric" "go.opentelemetry.io/otel/metric/global" "go.opentelemetry.io/otel/metric/instrument" - "go.opentelemetry.io/otel/metric/unit" - "go.opentelemetry.io/otel/sdk/metric/view" + view "go.opentelemetry.io/otel/sdk/metric" ) -const ValdOrg = "vald.vdaas.org" +type ( + // AsynchronousInstrument is type alias of instrument.Asynchronous. + AsynchronousInstrument = instrument.Asynchronous + // SynchronousInstrument is type alias of instrument.Synchronous. + SynchronousInstrument = instrument.Synchronous + + View = view.View + + // Meter is type alias of metrics.Meter. + Meter = metric.Meter + // Metric represents an interface for metric. + Metric interface { + View() ([]View, error) + Register(Meter) error + } +) + +const ( + ValdOrg = "vald.vdaas.org" + // Units defined by OpenTelemetry. + // Dimensionless is a type alias of unit.Dimensionless. + Dimensionless = "1" + // Bytes is a type alias of unit.Bytes. + Bytes = "By" + // Milliseconds is a type alias of unit.Milliseconds. + Milliseconds = "ms" +) var ( + // WithUnit returns an instrument.WithUnit option. + WithUnit = instrument.WithUnit + // WithDescription returns an instrument.WithDescription option. + WithDescription = instrument.WithDescription + RoughMillisecondsDistribution = []float64{ 1, 5, @@ -111,52 +141,7 @@ var ( } ) -// Meter is type alias of metrics.Meter. -type Meter = metric.Meter - // GetMeter returns the Meter object to record metrics. func GetMeter() Meter { return global.MeterProvider().Meter(ValdOrg) } - -// Unit is type alias of unit.Unit. -type Unit = unit.Unit - -// Units defined by OpenTelemetry. -const ( - // Dimensionless is a type alias of unit.Dimensionless. - Dimensionless = unit.Dimensionless - // Bytes is a type alias of unit.Bytes. - Bytes = unit.Bytes - // Milliseconds is a type alias of unit.Milliseconds. - Milliseconds = unit.Milliseconds -) - -type ( - // AsynchronousInstrument is type alias of instrument.Asynchronous. - AsynchronousInstrument = instrument.Asynchronous - // SynchronousInstrument is type alias of instrument.Synchronous. - SynchronousInstrument = instrument.Synchronous -) - -// WithUnit returns an instrument.WithUnit option. -func WithUnit(u Unit) instrument.Option { - return instrument.WithUnit(u) -} - -// WithDescription returns an instrument.WithDescription option. -func WithDescription(desc string) instrument.Option { - return instrument.WithDescription(desc) -} - -type View = view.View - -type Viewer interface { - View() ([]*View, error) -} - -// Metric represents an interface for metric. -type Metric interface { - Viewer - Register(Meter) error -} diff --git a/internal/observability/metrics/runtime/cgo/cgo.go b/internal/observability/metrics/runtime/cgo/cgo.go index 3faf6be70cd..57b2d935f2f 100644 --- a/internal/observability/metrics/runtime/cgo/cgo.go +++ b/internal/observability/metrics/runtime/cgo/cgo.go @@ -18,8 +18,9 @@ import ( "runtime" "github.com/vdaas/vald/internal/observability/metrics" + api "go.opentelemetry.io/otel/metric" + view "go.opentelemetry.io/otel/sdk/metric" "go.opentelemetry.io/otel/sdk/metric/aggregation" - "go.opentelemetry.io/otel/sdk/metric/view" ) const ( @@ -33,22 +34,22 @@ func New() metrics.Metric { return &cgo{} } -func (*cgo) View() ([]*metrics.View, error) { - count, err := view.New( - view.MatchInstrumentName(metricsName), - view.WithSetDescription(metricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - return []*metrics.View{ - &count, +func (*cgo) View() ([]metrics.View, error) { + return []metrics.View{ + view.NewView( + view.Instrument{ + Name: metricsName, + Description: metricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), }, nil } func (*cgo) Register(m metrics.Meter) error { - count, err := m.AsyncInt64().Gauge( + count, err := m.Int64ObservableGauge( metricsName, metrics.WithDescription(metricsDescription), metrics.WithUnit(metrics.Dimensionless), @@ -56,12 +57,11 @@ func (*cgo) Register(m metrics.Meter) error { if err != nil { return err } - return m.RegisterCallback( - []metrics.AsynchronousInstrument{ - count, - }, - func(ctx context.Context) { - count.Observe(ctx, int64(runtime.NumGoroutine())) - }, + _, err = m.RegisterCallback( + func(_ context.Context, o api.Observer) error { + o.ObserveInt64(count, runtime.NumCgoCall()) + return nil + }, count, ) + return err } diff --git a/internal/observability/metrics/runtime/goroutine/goroutine.go b/internal/observability/metrics/runtime/goroutine/goroutine.go index b094f4feadc..5349d89ed9b 100644 --- a/internal/observability/metrics/runtime/goroutine/goroutine.go +++ b/internal/observability/metrics/runtime/goroutine/goroutine.go @@ -18,8 +18,9 @@ import ( "runtime" "github.com/vdaas/vald/internal/observability/metrics" + api "go.opentelemetry.io/otel/metric" + view "go.opentelemetry.io/otel/sdk/metric" "go.opentelemetry.io/otel/sdk/metric/aggregation" - "go.opentelemetry.io/otel/sdk/metric/view" ) const ( @@ -33,23 +34,22 @@ func New() metrics.Metric { return &goroutine{} } -func (*goroutine) View() ([]*metrics.View, error) { - count, err := view.New( - view.MatchInstrumentName(metricsName), - view.WithSetDescription(metricsDescription), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - - return []*metrics.View{ - &count, +func (*goroutine) View() ([]metrics.View, error) { + return []metrics.View{ + view.NewView( + view.Instrument{ + Name: metricsName, + Description: metricsDescription, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), }, nil } -func (*goroutine) Register(m metrics.Meter) error { - conter, err := m.AsyncInt64().Gauge( +func (*goroutine) Register(m metrics.Meter) (err error) { + counter, err := m.Int64ObservableGauge( metricsName, metrics.WithDescription(metricsDescription), metrics.WithUnit(metrics.Dimensionless), @@ -57,12 +57,11 @@ func (*goroutine) Register(m metrics.Meter) error { if err != nil { return err } - return m.RegisterCallback( - []metrics.AsynchronousInstrument{ - conter, - }, - func(ctx context.Context) { - conter.Observe(ctx, int64(runtime.NumGoroutine())) - }, + _, err = m.RegisterCallback( + func(_ context.Context, o api.Observer) error { + o.ObserveInt64(counter, int64(runtime.NumGoroutine())) + return nil + }, counter, ) + return err } diff --git a/internal/observability/metrics/version/version.go b/internal/observability/metrics/version/version.go index 01eeced31f8..d1cda42eb4f 100644 --- a/internal/observability/metrics/version/version.go +++ b/internal/observability/metrics/version/version.go @@ -22,8 +22,9 @@ import ( "github.com/vdaas/vald/internal/observability/attribute" "github.com/vdaas/vald/internal/observability/metrics" "github.com/vdaas/vald/internal/strings" + api "go.opentelemetry.io/otel/metric" + view "go.opentelemetry.io/otel/sdk/metric" "go.opentelemetry.io/otel/sdk/metric/aggregation" - "go.opentelemetry.io/otel/sdk/metric/view" ) const ( @@ -76,22 +77,22 @@ func labelKVs(labels ...string) map[string]string { return info } -func (*version) View() ([]*metrics.View, error) { - otlv, err := view.New( - view.MatchInstrumentName(name), - view.WithSetDescription(description), - view.WithSetAggregation(aggregation.LastValue{}), - ) - if err != nil { - return nil, err - } - return []*metrics.View{ - &otlv, +func (*version) View() ([]metrics.View, error) { + return []metrics.View{ + view.NewView( + view.Instrument{ + Name: name, + Description: description, + }, + view.Stream{ + Aggregation: aggregation.LastValue{}, + }, + ), }, nil } -func (v *version) Register(m metrics.Meter) error { - info, err := m.AsyncInt64().Gauge( +func (v *version) Register(m metrics.Meter) (err error) { + info, err := m.Int64ObservableGauge( name, metrics.WithDescription(description), metrics.WithUnit(metrics.Dimensionless), @@ -99,16 +100,15 @@ func (v *version) Register(m metrics.Meter) error { if err != nil { return err } - return m.RegisterCallback( - []metrics.AsynchronousInstrument{ - info, - }, - func(ctx context.Context) { + _, err = m.RegisterCallback( + func(_ context.Context, o api.Observer) error { attrs := make([]attribute.KeyValue, 0, len(v.kvs)) for key, val := range v.kvs { attrs = append(attrs, attribute.String(key, val)) } - info.Observe(ctx, 1, attrs...) - }, + o.ObserveInt64(info, 1, attrs...) + return nil + }, info, ) + return err } diff --git a/internal/observability/trace/status.go b/internal/observability/trace/status.go index 199d4175a00..f8338df4603 100644 --- a/internal/observability/trace/status.go +++ b/internal/observability/trace/status.go @@ -21,7 +21,7 @@ import ( "github.com/vdaas/vald/internal/net/grpc/codes" "go.opentelemetry.io/otel/attribute" ocodes "go.opentelemetry.io/otel/codes" - semconv "go.opentelemetry.io/otel/semconv/v1.12.0" + semconv "go.opentelemetry.io/otel/semconv/v1.17.0" ) type Attributes = []attribute.KeyValue diff --git a/k8s/agent/faiss/configmap.yaml b/k8s/agent/faiss/configmap.yaml new file mode 100644 index 00000000000..511a3e5dd6a --- /dev/null +++ b/k8s/agent/faiss/configmap.yaml @@ -0,0 +1,198 @@ +--- +# +# Copyright (C) 2019-2023 vdaas.org vald team +# +# 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 +# +# https://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. +# +apiVersion: v1 +kind: ConfigMap +metadata: + name: vald-agent-config + labels: + app.kubernetes.io/name: vald + helm.sh/chart: vald-v1.7.3 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: v1.7.3 + app.kubernetes.io/component: agent +data: + config.yaml: | + --- + version: v0.0.0 + time_zone: UTC + logging: + format: raw + level: debug + logger: glg + server_config: + servers: + - name: grpc + host: 0.0.0.0 + port: 8081 + grpc: + bidirectional_stream_concurrency: 20 + connection_timeout: "" + enable_admin: true + enable_reflection: true + header_table_size: 0 + initial_conn_window_size: 0 + initial_window_size: 0 + interceptors: + - RecoverInterceptor + keepalive: + max_conn_age: "" + max_conn_age_grace: "" + max_conn_idle: "" + min_time: 60s + permit_without_stream: true + time: 120s + timeout: 30s + max_header_list_size: 0 + max_receive_message_size: 0 + max_send_message_size: 0 + read_buffer_size: 0 + write_buffer_size: 0 + mode: GRPC + network: tcp + probe_wait_time: 3s + restart: true + socket_option: + ip_recover_destination_addr: false + ip_transparent: false + reuse_addr: true + reuse_port: true + tcp_cork: false + tcp_defer_accept: true + tcp_fast_open: true + tcp_no_delay: true + tcp_quick_ack: true + socket_path: "" + health_check_servers: + - name: liveness + host: 0.0.0.0 + port: 3000 + http: + handler_timeout: "" + idle_timeout: "" + read_header_timeout: "" + read_timeout: "" + shutdown_duration: 5s + write_timeout: "" + mode: "" + network: tcp + probe_wait_time: 3s + socket_option: + ip_recover_destination_addr: false + ip_transparent: false + reuse_addr: true + reuse_port: true + tcp_cork: false + tcp_defer_accept: true + tcp_fast_open: true + tcp_no_delay: true + tcp_quick_ack: true + socket_path: "" + - name: readiness + host: 0.0.0.0 + port: 3001 + http: + handler_timeout: "" + idle_timeout: "" + read_header_timeout: "" + read_timeout: "" + shutdown_duration: 0s + write_timeout: "" + mode: "" + network: tcp + probe_wait_time: 3s + socket_option: + ip_recover_destination_addr: false + ip_transparent: false + reuse_addr: true + reuse_port: true + tcp_cork: false + tcp_defer_accept: true + tcp_fast_open: true + tcp_no_delay: true + tcp_quick_ack: true + socket_path: "" + metrics_servers: + - name: pprof + host: 0.0.0.0 + port: 6060 + http: + handler_timeout: 5s + idle_timeout: 2s + read_header_timeout: 1s + read_timeout: 1s + shutdown_duration: 5s + write_timeout: 1m + mode: REST + network: tcp + probe_wait_time: 3s + socket_option: + ip_recover_destination_addr: false + ip_transparent: false + reuse_addr: true + reuse_port: true + tcp_cork: false + tcp_defer_accept: true + tcp_fast_open: true + tcp_no_delay: true + tcp_quick_ack: true + socket_path: "" + startup_strategy: + - liveness + - pprof + - grpc + - readiness + full_shutdown_duration: 600s + tls: + ca: /path/to/ca + cert: /path/to/cert + enabled: false + insecure_skip_verify: false + key: /path/to/key + observability: + enabled: false + otlp: + collector_endpoint: "" + trace_batch_timeout: "1s" + trace_export_timeout: "1m" + trace_max_export_batch_size: 1024 + trace_max_queue_size: 256 + metrics_export_interval: "1s" + metrics_export_timeout: "1m" + attribute: + namespace: "_MY_POD_NAMESPACE_" + pod_name: "_MY_POD_NAME_" + node_name: "_MY_NODE_NAME_" + service_name: "vald-agent" + metrics: + enable_cgo: true + enable_goroutine: true + enable_memory: true + enable_version_info: true + version_info_labels: + - vald_version + - server_name + - git_commit + - build_time + - go_version + - go_os + - go_arch + - algorithm_info + trace: + enabled: false + faiss: + null diff --git a/k8s/agent/configmap.yaml b/k8s/agent/ngt/configmap.yaml similarity index 98% rename from k8s/agent/configmap.yaml rename to k8s/agent/ngt/configmap.yaml index 6efa7aead50..ecb58b9901a 100644 --- a/k8s/agent/configmap.yaml +++ b/k8s/agent/ngt/configmap.yaml @@ -17,7 +17,7 @@ apiVersion: v1 kind: ConfigMap metadata: - name: vald-agent-ngt-config + name: vald-agent-config labels: app.kubernetes.io/name: vald helm.sh/chart: vald-v1.7.4 @@ -42,6 +42,7 @@ data: grpc: bidirectional_stream_concurrency: 20 connection_timeout: "" + enable_admin: true enable_reflection: true header_table_size: 0 initial_conn_window_size: 0 @@ -176,7 +177,7 @@ data: namespace: "_MY_POD_NAMESPACE_" pod_name: "_MY_POD_NAME_" node_name: "_MY_NODE_NAME_" - service_name: "vald-agent-ngt" + service_name: "vald-agent" metrics: enable_cgo: true enable_goroutine: true @@ -190,7 +191,7 @@ data: - go_version - go_os - go_arch - - ngt_version + - algorithm_info trace: enabled: false ngt: diff --git a/k8s/agent/pdb.yaml b/k8s/agent/pdb.yaml index ac053225108..cccd5d96be9 100644 --- a/k8s/agent/pdb.yaml +++ b/k8s/agent/pdb.yaml @@ -17,7 +17,7 @@ apiVersion: policy/v1 kind: PodDisruptionBudget metadata: - name: vald-agent-ngt + name: vald-agent labels: app.kubernetes.io/name: vald helm.sh/chart: vald-v1.7.4 @@ -29,4 +29,4 @@ spec: maxUnavailable: 1 selector: matchLabels: - app: vald-agent-ngt + app: vald-agent diff --git a/k8s/agent/priorityclass.yaml b/k8s/agent/priorityclass.yaml index 365b88f418c..ff3702a0c42 100644 --- a/k8s/agent/priorityclass.yaml +++ b/k8s/agent/priorityclass.yaml @@ -17,7 +17,7 @@ apiVersion: scheduling.k8s.io/v1 kind: PriorityClass metadata: - name: default-vald-agent-ngt-priority + name: default-vald-agent-priority labels: app.kubernetes.io/name: vald helm.sh/chart: vald-v1.7.4 diff --git a/k8s/agent/qbg/configmap.yaml b/k8s/agent/qbg/configmap.yaml new file mode 100644 index 00000000000..c2b63374dc0 --- /dev/null +++ b/k8s/agent/qbg/configmap.yaml @@ -0,0 +1,198 @@ +--- +# +# Copyright (C) 2019-2023 vdaas.org vald team +# +# 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 +# +# https://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. +# +apiVersion: v1 +kind: ConfigMap +metadata: + name: vald-agent-config + labels: + app.kubernetes.io/name: vald + helm.sh/chart: vald-v1.7.3 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: v1.7.3 + app.kubernetes.io/component: agent +data: + config.yaml: | + --- + version: v0.0.0 + time_zone: UTC + logging: + format: raw + level: debug + logger: glg + server_config: + servers: + - name: grpc + host: 0.0.0.0 + port: 8081 + grpc: + bidirectional_stream_concurrency: 20 + connection_timeout: "" + enable_admin: true + enable_reflection: true + header_table_size: 0 + initial_conn_window_size: 0 + initial_window_size: 0 + interceptors: + - RecoverInterceptor + keepalive: + max_conn_age: "" + max_conn_age_grace: "" + max_conn_idle: "" + min_time: 60s + permit_without_stream: true + time: 120s + timeout: 30s + max_header_list_size: 0 + max_receive_message_size: 0 + max_send_message_size: 0 + read_buffer_size: 0 + write_buffer_size: 0 + mode: GRPC + network: tcp + probe_wait_time: 3s + restart: true + socket_option: + ip_recover_destination_addr: false + ip_transparent: false + reuse_addr: true + reuse_port: true + tcp_cork: false + tcp_defer_accept: true + tcp_fast_open: true + tcp_no_delay: true + tcp_quick_ack: true + socket_path: "" + health_check_servers: + - name: liveness + host: 0.0.0.0 + port: 3000 + http: + handler_timeout: "" + idle_timeout: "" + read_header_timeout: "" + read_timeout: "" + shutdown_duration: 5s + write_timeout: "" + mode: "" + network: tcp + probe_wait_time: 3s + socket_option: + ip_recover_destination_addr: false + ip_transparent: false + reuse_addr: true + reuse_port: true + tcp_cork: false + tcp_defer_accept: true + tcp_fast_open: true + tcp_no_delay: true + tcp_quick_ack: true + socket_path: "" + - name: readiness + host: 0.0.0.0 + port: 3001 + http: + handler_timeout: "" + idle_timeout: "" + read_header_timeout: "" + read_timeout: "" + shutdown_duration: 0s + write_timeout: "" + mode: "" + network: tcp + probe_wait_time: 3s + socket_option: + ip_recover_destination_addr: false + ip_transparent: false + reuse_addr: true + reuse_port: true + tcp_cork: false + tcp_defer_accept: true + tcp_fast_open: true + tcp_no_delay: true + tcp_quick_ack: true + socket_path: "" + metrics_servers: + - name: pprof + host: 0.0.0.0 + port: 6060 + http: + handler_timeout: 5s + idle_timeout: 2s + read_header_timeout: 1s + read_timeout: 1s + shutdown_duration: 5s + write_timeout: 1m + mode: REST + network: tcp + probe_wait_time: 3s + socket_option: + ip_recover_destination_addr: false + ip_transparent: false + reuse_addr: true + reuse_port: true + tcp_cork: false + tcp_defer_accept: true + tcp_fast_open: true + tcp_no_delay: true + tcp_quick_ack: true + socket_path: "" + startup_strategy: + - liveness + - pprof + - grpc + - readiness + full_shutdown_duration: 600s + tls: + ca: /path/to/ca + cert: /path/to/cert + enabled: false + insecure_skip_verify: false + key: /path/to/key + observability: + enabled: false + otlp: + collector_endpoint: "" + trace_batch_timeout: "1s" + trace_export_timeout: "1m" + trace_max_export_batch_size: 1024 + trace_max_queue_size: 256 + metrics_export_interval: "1s" + metrics_export_timeout: "1m" + attribute: + namespace: "_MY_POD_NAMESPACE_" + pod_name: "_MY_POD_NAME_" + node_name: "_MY_NODE_NAME_" + service_name: "vald-agent" + metrics: + enable_cgo: true + enable_goroutine: true + enable_memory: true + enable_version_info: true + version_info_labels: + - vald_version + - server_name + - git_commit + - build_time + - go_version + - go_os + - go_arch + - algorithm_info + trace: + enabled: false + qbg: + null diff --git a/k8s/agent/sidecar-configmap.yaml b/k8s/agent/sidecar-configmap.yaml deleted file mode 100644 index ed97d539c09..00000000000 --- a/k8s/agent/sidecar-configmap.yaml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/k8s/agent/sidecar-svc.yaml b/k8s/agent/sidecar-svc.yaml deleted file mode 100644 index ed97d539c09..00000000000 --- a/k8s/agent/sidecar-svc.yaml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/k8s/agent/daemonset.yaml b/k8s/agent/sidecar/configmap.yaml similarity index 100% rename from k8s/agent/daemonset.yaml rename to k8s/agent/sidecar/configmap.yaml diff --git a/k8s/agent/deployment.yaml b/k8s/agent/sidecar/svc.yaml similarity index 100% rename from k8s/agent/deployment.yaml rename to k8s/agent/sidecar/svc.yaml diff --git a/k8s/agent/statefulset.yaml b/k8s/agent/statefulset.yaml index 5e0eedf7765..0aaf8a0f78e 100644 --- a/k8s/agent/statefulset.yaml +++ b/k8s/agent/statefulset.yaml @@ -17,9 +17,9 @@ apiVersion: apps/v1 kind: StatefulSet metadata: - name: vald-agent-ngt + name: vald-agent labels: - app: vald-agent-ngt + app: vald-agent app.kubernetes.io/name: vald helm.sh/chart: vald-v1.7.4 app.kubernetes.io/managed-by: Helm @@ -27,13 +27,13 @@ metadata: app.kubernetes.io/version: v1.7.4 app.kubernetes.io/component: agent spec: - serviceName: vald-agent-ngt + serviceName: vald-agent podManagementPolicy: Parallel replicas: 5 revisionHistoryLimit: 2 selector: matchLabels: - app: vald-agent-ngt + app: vald-agent updateStrategy: type: RollingUpdate rollingUpdate: @@ -42,7 +42,7 @@ spec: metadata: creationTimestamp: null labels: - app: vald-agent-ngt + app: vald-agent app.kubernetes.io/name: vald app.kubernetes.io/instance: release-name app.kubernetes.io/component: agent @@ -51,7 +51,7 @@ spec: profefe.com/port: "6060" profefe.com/service: vald-agent-ngt pyroscope.io/scrape: "true" - pyroscope.io/application-name: vald-agent-ngt + pyroscope.io/application-name: vald-agent pyroscope.io/profile-cpu-enabled: "true" pyroscope.io/profile-mem-enabled: "true" pyroscope.io/port: "6060" @@ -70,12 +70,12 @@ spec: - key: app operator: In values: - - vald-agent-ngt + - vald-agent topologyKey: kubernetes.io/hostname weight: 100 requiredDuringSchedulingIgnoredDuringExecution: [] containers: - - name: vald-agent-ngt + - name: vald-agent image: "vdaas/vald-agent-ngt:nightly" imagePullPolicy: Always livenessProbe: @@ -151,7 +151,7 @@ spec: fieldRef: fieldPath: metadata.namespace volumeMounts: - - name: vald-agent-ngt-config + - name: vald-agent-config mountPath: /etc/server/ dnsPolicy: ClusterFirst restartPolicy: Always @@ -164,9 +164,9 @@ spec: runAsUser: 65532 terminationGracePeriodSeconds: 120 volumes: - - name: vald-agent-ngt-config + - name: vald-agent-config configMap: defaultMode: 420 - name: vald-agent-ngt-config - priorityClassName: default-vald-agent-ngt-priority + name: vald-agent-config + priorityClassName: default-vald-agent-priority status: diff --git a/k8s/agent/svc.yaml b/k8s/agent/svc.yaml index 4da4f5c1bd3..9f28b1bfad3 100644 --- a/k8s/agent/svc.yaml +++ b/k8s/agent/svc.yaml @@ -17,7 +17,7 @@ apiVersion: v1 kind: Service metadata: - name: vald-agent-ngt + name: vald-agent labels: app.kubernetes.io/name: vald helm.sh/chart: vald-v1.7.4 diff --git a/k8s/discoverer/configmap.yaml b/k8s/discoverer/configmap.yaml index 9fa643471db..f1916419b64 100644 --- a/k8s/discoverer/configmap.yaml +++ b/k8s/discoverer/configmap.yaml @@ -42,6 +42,7 @@ data: grpc: bidirectional_stream_concurrency: 20 connection_timeout: "" + enable_admin: true enable_reflection: true header_table_size: 0 initial_conn_window_size: 0 @@ -190,7 +191,7 @@ data: - go_version - go_os - go_arch - - ngt_version + - algorithm_info trace: enabled: false discoverer: @@ -210,7 +211,7 @@ data: pod_metrics: labels: {} fields: - containers.name: vald-agent-ngt + containers.name: vald-agent node_metrics: labels: {} fields: {} diff --git a/k8s/discoverer/deployment.yaml b/k8s/discoverer/deployment.yaml index b66744de3ca..881ad03505e 100644 --- a/k8s/discoverer/deployment.yaml +++ b/k8s/discoverer/deployment.yaml @@ -47,7 +47,11 @@ spec: app.kubernetes.io/instance: release-name app.kubernetes.io/component: discoverer annotations: +<<<<<<< HEAD checksum/configmap: 75db873fe333c268ceb88898ea2705362a8f9dbfa9494f70b909949fc563fe9e +======= + checksum/configmap: f12e01ec7208ab6a2aee6ce541026e9fa82e23fa7c5bcb5ea44d359eb941349d +>>>>>>> feature/agent/new-agents-helm-template-base profefe.com/enable: "true" profefe.com/port: "6060" profefe.com/service: vald-discoverer diff --git a/k8s/gateway/lb/configmap.yaml b/k8s/gateway/lb/configmap.yaml index ee5369c713d..38e38be4ca7 100644 --- a/k8s/gateway/lb/configmap.yaml +++ b/k8s/gateway/lb/configmap.yaml @@ -42,6 +42,7 @@ data: grpc: bidirectional_stream_concurrency: 20 connection_timeout: "" + enable_admin: true enable_reflection: true header_table_size: 0 initial_conn_window_size: 0 @@ -190,13 +191,13 @@ data: - go_version - go_os - go_arch - - ngt_version + - algorithm_info trace: enabled: false gateway: agent_port: 8081 - agent_name: "vald-agent-ngt" - agent_dns: vald-agent-ngt.default.svc.cluster.local + agent_name: "vald-agent" + agent_dns: vald-agent.default.svc.cluster.local agent_namespace: "_MY_POD_NAMESPACE_" node_name: "" index_replica: 3 diff --git a/k8s/gateway/lb/deployment.yaml b/k8s/gateway/lb/deployment.yaml index 338cd87b580..cf6310a451a 100644 --- a/k8s/gateway/lb/deployment.yaml +++ b/k8s/gateway/lb/deployment.yaml @@ -46,7 +46,11 @@ spec: app.kubernetes.io/instance: release-name app.kubernetes.io/component: gateway-lb annotations: +<<<<<<< HEAD checksum/configmap: 4f57b405ff930189d0a7af663799c53bd861a08adfc413282ad51aa6187dacf6 +======= + checksum/configmap: 6e7ca132e0876b15f667e266f4b3e193e97971ee468e5b9432af5f413cc72cce +>>>>>>> feature/agent/new-agents-helm-template-base profefe.com/enable: "true" profefe.com/port: "6060" profefe.com/service: vald-lb-gateway @@ -75,7 +79,7 @@ spec: - -e - -c - | - until [ "$(wget --server-response --spider --quiet http://vald-agent-ngt.default.svc.cluster.local:3001/readiness 2>&1 | awk 'NR==1{print $2}')" == "200" ]; do + until [ "$(wget --server-response --spider --quiet http://vald-agent.default.svc.cluster.local:3001/readiness 2>&1 | awk 'NR==1{print $2}')" == "200" ]; do echo "waiting for agent to be ready..." sleep 2; done diff --git a/k8s/gateway/lb/ing.yaml b/k8s/gateway/lb/ing.yaml index ed97d539c09..c6cacc0b825 100644 --- a/k8s/gateway/lb/ing.yaml +++ b/k8s/gateway/lb/ing.yaml @@ -1 +1,47 @@ --- +# +# Copyright (C) 2019-2023 vdaas.org vald team +# +# 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 +# +# https://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. +# +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + annotations: + nginx.ingress.kubernetes.io/grpc-backend: "true" + labels: + name: vald-lb-gateway-ingress + app: vald-lb-gateway-ingress + app.kubernetes.io/name: vald + helm.sh/chart: vald-v1.7.3 + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/instance: release-name + app.kubernetes.io/version: v1.7.3 + app.kubernetes.io/component: gateway-lb + name: vald-lb-gateway-ingress +spec: + defaultBackend: + service: + name: vald-lb-gateway + port: + name: grpc + rules: + - host: lb.gateway.vald.vdaas.org + http: + paths: + - backend: + service: + name: vald-lb-gateway + port: + name: grpc + pathType: ImplementationSpecific diff --git a/k8s/manager/index/configmap.yaml b/k8s/manager/index/configmap.yaml index 2790ca53e10..76a2b97bf12 100644 --- a/k8s/manager/index/configmap.yaml +++ b/k8s/manager/index/configmap.yaml @@ -42,6 +42,7 @@ data: grpc: bidirectional_stream_concurrency: 20 connection_timeout: "" + enable_admin: true enable_reflection: true header_table_size: 0 initial_conn_window_size: 0 @@ -190,13 +191,13 @@ data: - go_version - go_os - go_arch - - ngt_version + - algorithm_info trace: enabled: false indexer: agent_port: 8081 - agent_name: "vald-agent-ngt" - agent_dns: vald-agent-ngt.default.svc.cluster.local + agent_name: "vald-agent" + agent_dns: vald-agent.default.svc.cluster.local agent_namespace: "_MY_POD_NAMESPACE_" node_name: "" discoverer: diff --git a/k8s/manager/index/deployment.yaml b/k8s/manager/index/deployment.yaml index b85b96cf958..175b87890c5 100644 --- a/k8s/manager/index/deployment.yaml +++ b/k8s/manager/index/deployment.yaml @@ -47,7 +47,11 @@ spec: app.kubernetes.io/instance: release-name app.kubernetes.io/component: manager-index annotations: +<<<<<<< HEAD checksum/configmap: 46ee9fc16e0baf0480fe9f62a3c0133086f86c09728bf12ea060ed021cfb6f65 +======= + checksum/configmap: 2af59d92bfd4e586ad201b355e1456ed6b927f922e76f2bf8dde9b6e5c1f76f3 +>>>>>>> feature/agent/new-agents-helm-template-base profefe.com/enable: "true" profefe.com/port: "6060" profefe.com/service: vald-manager-index @@ -65,7 +69,7 @@ spec: - -e - -c - | - until [ "$(wget --server-response --spider --quiet http://vald-agent-ngt.default.svc.cluster.local:3001/readiness 2>&1 | awk 'NR==1{print $2}')" == "200" ]; do + until [ "$(wget --server-response --spider --quiet http://vald-agent.default.svc.cluster.local:3001/readiness 2>&1 | awk 'NR==1{print $2}')" == "200" ]; do echo "waiting for agent to be ready..." sleep 2; done diff --git a/k8s/metrics/grafana/dashboards/01-vald-agent.yaml b/k8s/metrics/grafana/dashboards/01-vald-agent.yaml index f91f7037fa0..f758e4ed007 100644 --- a/k8s/metrics/grafana/dashboards/01-vald-agent.yaml +++ b/k8s/metrics/grafana/dashboards/01-vald-agent.yaml @@ -1066,7 +1066,7 @@ data: "calcs": [ "lastNotNull" ], - "fields": "/^ngt_version$/", + "fields": "/^algorithm_info$/", "values": false }, "text": {}, @@ -1080,7 +1080,7 @@ data: "uid": "prometheus" }, "editorMode": "code", - "expr": "label_replace(app_version_info{exported_kubernetes_namespace=\"$Namespace\", kubernetes_name=~\"$ReplicaSet\", target_pod=~\"$PodName\"}, \"ngt_version\", \"v$1\", \"ngt_version\", \"([^v].*)\")", + "expr": "label_replace(app_version_info{exported_kubernetes_namespace=\"$Namespace\", kubernetes_name=~\"$ReplicaSet\", target_pod=~\"$PodName\"}, \"algorithm_info\", \"v$1\", \"algorithm_info\", \"([^v].*)\")", "format": "table", "instant": true, "interval": "", diff --git a/k8s/operator/helm/crds/valdrelease.yaml b/k8s/operator/helm/crds/valdrelease.yaml index 370c0faa555..d10e94dd0e6 100644 --- a/k8s/operator/helm/crds/valdrelease.yaml +++ b/k8s/operator/helm/crds/valdrelease.yaml @@ -116,6 +116,12 @@ spec: items: type: object x-kubernetes-preserve-unknown-fields: true + algorithm: + type: string + enum: + - ngt + - qbg + - faiss annotations: type: object x-kubernetes-preserve-unknown-fields: true @@ -311,7 +317,7 @@ spec: - go_os - go_arch - cgo_enabled - - ngt_version + - algorithm_info - build_cpu_info_flags otlp: type: object @@ -729,6 +735,8 @@ spec: type: integer connection_timeout: type: string + enable_admin: + type: boolean enable_reflection: type: boolean header_table_size: @@ -1219,7 +1227,7 @@ spec: - go_os - go_arch - cgo_enabled - - ngt_version + - algorithm_info - build_cpu_info_flags otlp: type: object @@ -1589,6 +1597,8 @@ spec: type: integer connection_timeout: type: string + enable_admin: + type: boolean enable_reflection: type: boolean header_table_size: @@ -2051,7 +2061,7 @@ spec: - go_os - go_arch - cgo_enabled - - ngt_version + - algorithm_info - build_cpu_info_flags otlp: type: object @@ -2412,6 +2422,8 @@ spec: type: integer connection_timeout: type: string + enable_admin: + type: boolean enable_reflection: type: boolean header_table_size: @@ -2862,7 +2874,7 @@ spec: - go_os - go_arch - cgo_enabled - - ngt_version + - algorithm_info - build_cpu_info_flags otlp: type: object @@ -3260,6 +3272,8 @@ spec: type: integer connection_timeout: type: string + enable_admin: + type: boolean enable_reflection: type: boolean header_table_size: @@ -4218,7 +4232,7 @@ spec: - go_os - go_arch - cgo_enabled - - ngt_version + - algorithm_info - build_cpu_info_flags otlp: type: object @@ -4616,6 +4630,8 @@ spec: type: integer connection_timeout: type: string + enable_admin: + type: boolean enable_reflection: type: boolean header_table_size: @@ -5372,7 +5388,7 @@ spec: - go_os - go_arch - cgo_enabled - - ngt_version + - algorithm_info - build_cpu_info_flags otlp: type: object @@ -5770,6 +5786,8 @@ spec: type: integer connection_timeout: type: string + enable_admin: + type: boolean enable_reflection: type: boolean header_table_size: @@ -6509,7 +6527,7 @@ spec: - go_os - go_arch - cgo_enabled - - ngt_version + - algorithm_info - build_cpu_info_flags otlp: type: object @@ -6910,6 +6928,8 @@ spec: type: integer connection_timeout: type: string + enable_admin: + type: boolean enable_reflection: type: boolean header_table_size: diff --git a/pkg/gateway/lb/handler/grpc/handler.go b/pkg/gateway/lb/handler/grpc/handler.go index 500b62c5c1e..83b7083fc6c 100644 --- a/pkg/gateway/lb/handler/grpc/handler.go +++ b/pkg/gateway/lb/handler/grpc/handler.go @@ -499,7 +499,7 @@ func (s *server) doSearch(ctx context.Context, cfg *payload.Search_Config, timeout = s.timeout } - var maxDist atomic.Value + var maxDist atomic.Pointer[big.Float] maxDist.Store(big.NewFloat(math.MaxFloat64)) ectx, cancel = context.WithTimeout(ectx, timeout) eg.Go(safety.RecoverFunc(func() error { @@ -568,8 +568,18 @@ func (s *server) doSearch(ctx context.Context, cfg *payload.Search_Config, sspan.SetAttributes(trace.StatusCodeNotFound(err.Error())...) sspan.SetStatus(trace.StatusError, err.Error()) } +<<<<<<< HEAD r, err = f(sctx, vc, copts...) if err != nil || r == nil || len(r.GetResults()) == 0 { +======= + } + for _, dist := range r.GetResults() { + if dist == nil { + continue + } + fdist := big.NewFloat(float64(dist.GetDistance())) + if fdist.Cmp(maxDist.Load()) >= 0 { +>>>>>>> feature/agent/new-agents-helm-template-base return nil } } @@ -594,11 +604,7 @@ func (s *server) doSearch(ctx context.Context, cfg *payload.Search_Config, })) add := func(distance *big.Float, dist *payload.Object_Distance) { rl := len(res.GetResults()) // result length - fmax, ok := maxDist.Load().(*big.Float) - if !ok { - return - } - if rl >= num && distance.Cmp(fmax) >= 0 { + if rl >= num && distance.Cmp(maxDist.Load()) >= 0 { return } switch rl { @@ -636,7 +642,7 @@ func (s *server) doSearch(ctx context.Context, cfg *payload.Search_Config, rl = len(res.GetResults()) } if distEnd := big.NewFloat(float64(res.GetResults()[rl-1].GetDistance())); rl >= num && - distEnd.Cmp(fmax) < 0 { + distEnd.Cmp(maxDist.Load()) < 0 { maxDist.Store(distEnd) } }