diff --git a/go.mod b/go.mod
index f1cff2081be2399b01e5c01810ae8f685a55c828..5d436f649d2b0bb570ce62c384f29c67f35555a2 100644
--- a/go.mod
+++ b/go.mod
@@ -3,75 +3,42 @@ module github.com/zilliztech/milvus-distributed
 go 1.15
 
 require (
-	code.cloudfoundry.org/bytefmt v0.0.0-20200131002437-cf55d5288a48 // indirect
-	github.com/99designs/keyring v1.1.5 // indirect
-	github.com/HdrHistogram/hdrhistogram-go v1.0.1 // indirect
-	github.com/akamensky/argparse v1.2.2 // indirect
 	github.com/apache/pulsar-client-go v0.3.0
-	github.com/apache/thrift v0.13.0
-	github.com/aws/aws-sdk-go v1.30.8 // indirect
-	github.com/coreos/etcd v3.3.25+incompatible // indirect
-	github.com/cznic/mathutil v0.0.0-20181122101859-297441e03548 // indirect
-	github.com/datadog/zstd v1.4.6-0.20200617134701-89f69fb7df32 // indirect
 	github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c // indirect
 	github.com/facebookgo/stack v0.0.0-20160209184415-751773369052 // indirect
 	github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4 // indirect
 	github.com/frankban/quicktest v1.10.2 // indirect
-	github.com/fsnotify/fsnotify v1.4.9 // indirect
 	github.com/go-basic/ipv4 v1.0.0
-	github.com/go-kit/kit v0.9.0 // indirect
 	github.com/gogo/protobuf v1.3.1
 	github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e // indirect
-	github.com/golang/mock v1.3.1
 	github.com/golang/protobuf v1.4.2
 	github.com/google/btree v1.0.0
-	github.com/ilyakaznacheev/cleanenv v1.2.5 // indirect
 	github.com/klauspost/compress v1.10.11 // indirect
 	github.com/kr/text v0.2.0 // indirect
-	github.com/linkedin/goavro/v2 v2.9.8 // indirect
 	github.com/minio/minio-go/v7 v7.0.5
 	github.com/mitchellh/mapstructure v1.1.2
-	github.com/modern-go/reflect2 v1.0.1 // indirect
 	github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect
-	github.com/oklog/run v1.1.0 // indirect
 	github.com/onsi/gomega v1.10.5 // indirect
-	github.com/opentracing/opentracing-go v1.2.0 // indirect
 	github.com/pierrec/lz4 v2.5.2+incompatible // indirect
-	github.com/pingcap/check v0.0.0-20200212061837-5e12011dc712 // indirect
-	github.com/pingcap/errors v0.11.4 // indirect
-	github.com/pingcap/log v0.0.0-20200828042413-fce0951f1463 // indirect
-	github.com/pivotal-golang/bytefmt v0.0.0-20200131002437-cf55d5288a48 // indirect
-	github.com/pkg/errors v0.9.1 // indirect
-	github.com/prometheus/common v0.10.0 // indirect
-	github.com/prometheus/procfs v0.1.3 // indirect
-	github.com/quasilyte/go-ruleguard v0.2.1 // indirect
 	github.com/sirupsen/logrus v1.6.0 // indirect
 	github.com/spaolacci/murmur3 v1.1.0
 	github.com/spf13/cast v1.3.0
 	github.com/spf13/viper v1.7.1
 	github.com/stretchr/testify v1.6.1
 	github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c
-	github.com/uber/jaeger-client-go v2.25.0+incompatible // indirect
-	github.com/uber/jaeger-lib v2.4.0+incompatible // indirect
-	github.com/urfave/cli v1.22.5 // indirect
-	github.com/valyala/gozstd v1.7.0 // indirect
 	github.com/yahoo/athenz v1.9.16 // indirect
 	go.etcd.io/etcd v0.5.0-alpha.5.0.20191023171146-3cf2f69b5738
 	go.uber.org/zap v1.15.0
 	golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a // indirect
 	golang.org/x/lint v0.0.0-20200302205851-738671d3881b // indirect
 	golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb
-	golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d // indirect
-	golang.org/x/text v0.3.3 // indirect
 	golang.org/x/time v0.0.0-20191024005414-555d28b269f0 // indirect
 	golang.org/x/tools v0.0.0-20200825202427-b303f430e36d // indirect
 	golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
 	google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150 // indirect
 	google.golang.org/grpc v1.31.0
-	gopkg.in/alecthomas/kingpin.v2 v2.2.6 // indirect
 	gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect
 	gopkg.in/natefinch/lumberjack.v2 v2.0.0
-	gopkg.in/yaml.v2 v2.3.0 // indirect
 	honnef.co/go/tools v0.0.1-2020.1.4 // indirect
 	sigs.k8s.io/yaml v1.2.0 // indirect
 )
diff --git a/go.sum b/go.sum
index f22abee87c1e3c657225697707505c27af0ed0e9..3b797242d51c0ecd5b60bb250eabf05942e67a82 100644
--- a/go.sum
+++ b/go.sum
@@ -9,37 +9,23 @@ cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7
 cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk=
 cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
 cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
-code.cloudfoundry.org/bytefmt v0.0.0-20200131002437-cf55d5288a48 h1:/EMHruHCFXR9xClkGV/t0rmHrdhX4+trQUcBqjwc9xE=
-code.cloudfoundry.org/bytefmt v0.0.0-20200131002437-cf55d5288a48/go.mod h1:wN/zk7mhREp/oviagqUXY3EwuHhWyOvAdsn5Y4CzOrc=
 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
 github.com/99designs/keyring v1.1.5 h1:wLv7QyzYpFIyMSwOADq1CLTF9KbjbBfcnfmOGJ64aO4=
 github.com/99designs/keyring v1.1.5/go.mod h1:7hsVvt2qXgtadGevGJ4ujg+u8m6SpJ5TpHqTozIPqf0=
 github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
-github.com/DataDog/zstd v1.4.6-0.20200617134701-89f69fb7df32/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo=
-github.com/HdrHistogram/hdrhistogram-go v1.0.1 h1:GX8GAYDuhlFQnI2fRDHQhTlkHMz8bEn0jTI6LJU0mpw=
-github.com/HdrHistogram/hdrhistogram-go v1.0.1/go.mod h1:BWJ+nMSHY3L41Zj7CA3uXnloDp7xxV0YvstAE7nKTaM=
 github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
-github.com/akamensky/argparse v1.2.2 h1:P17T0ZjlUNJuWTPPJ2A5dM1wxarHgHqfYH+AZTo2xQA=
-github.com/akamensky/argparse v1.2.2/go.mod h1:S5kwC7IuDcEr5VeXtGPRVZ5o/FdhcMlQz4IZQuw64xA=
 github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
 github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM=
 github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
 github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
 github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4 h1:Hs82Z41s6SdL1CELW+XaDYmOH4hkBN4/N9og/AsOv7E=
 github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/apache/pulsar-client-go v0.1.1 h1:v/kU+2ZCC6yFIcbZrFtWa9/nvVzVr18L+xYJUvZSxEQ=
-github.com/apache/pulsar-client-go v0.1.1/go.mod h1:mlxC65KL1BLhGO2bnT9zWMttVzR2czVPb27D477YpyU=
-github.com/apache/pulsar-client-go v0.2.0-candidate-1/go.mod h1:POSPPmXv1RuoM7FzHaS3NurCSOopwin2ekGK2PcOgVM=
-github.com/apache/pulsar-client-go v0.2.0/go.mod h1:POSPPmXv1RuoM7FzHaS3NurCSOopwin2ekGK2PcOgVM=
-github.com/apache/pulsar-client-go v0.3.0-candidate-1/go.mod h1:9eSgOadVhCfb2DfWtS1SCYaYIMk9VDOZztr4u3FO8cQ=
 github.com/apache/pulsar-client-go v0.3.0 h1:rNhJ/ENwoEfZPHHwUHNxPBTNqNQE2LQEm7DXu043giM=
 github.com/apache/pulsar-client-go v0.3.0/go.mod h1:9eSgOadVhCfb2DfWtS1SCYaYIMk9VDOZztr4u3FO8cQ=
 github.com/apache/pulsar-client-go/oauth2 v0.0.0-20200715083626-b9f8c5cedefb h1:E1P0FudxDdj2RhbveZC9i3PwukLCA/4XQSkBS/dw6/I=
 github.com/apache/pulsar-client-go/oauth2 v0.0.0-20200715083626-b9f8c5cedefb/go.mod h1:0UtvvETGDdvXNDCHa8ZQpxl+w3HbdFtfYZvDHLgWGTY=
-github.com/apache/thrift v0.13.0 h1:5hryIiq9gtn+MiLVn0wP37kb/uTeRZgN08WoCsAhIhI=
-github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
 github.com/ardielle/ardielle-go v1.5.2 h1:TilHTpHIQJ27R1Tl/iITBzMwiUGSlVfiVhwDNGM3Zj4=
 github.com/ardielle/ardielle-go v1.5.2/go.mod h1:I4hy1n795cUhaVt/ojz83SNVCYIGsAFAONtv2Dr7HUI=
 github.com/ardielle/ardielle-tools v1.5.4/go.mod h1:oZN+JRMnqGiIhrzkRN9l26Cej9dEx4jeNG6A+AdkShk=
@@ -72,18 +58,13 @@ github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee
 github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM=
 github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
 github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
-github.com/coreos/go-systemd v0.0.0-20190212144455-93d5ec2c7f76 h1:FE783w8WFh+Rvg+7bZ5g8p7gP4SeVS4AoNwkvazlsBg=
-github.com/coreos/go-systemd v0.0.0-20190212144455-93d5ec2c7f76/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
 github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8=
 github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
 github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
 github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg=
 github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
-github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
 github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
 github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
-github.com/cznic/mathutil v0.0.0-20181122101859-297441e03548 h1:iwZdTE0PVqJCos1vaoKsclOGD3ADKpshg3SRtYBbwso=
-github.com/cznic/mathutil v0.0.0-20181122101859-297441e03548/go.mod h1:e6NPNENfs9mPDVNRekM7lKScauxd5kXTr1Mfyig6TDM=
 github.com/danieljoos/wincred v1.0.2 h1:zf4bhty2iLuwgjgpraD2E9UbvO+fe54XXGJbOwe23fU=
 github.com/danieljoos/wincred v1.0.2/go.mod h1:SnuYRW9lp1oJrZX/dXJqr0cPK5gYXqx3EJbmjhLdK9U=
 github.com/datadog/zstd v1.4.6-0.20200617134701-89f69fb7df32 h1:QWqadCIHYA5zja4b6h9uGQn93u1vL+G/aewImumdg/M=
@@ -98,12 +79,8 @@ github.com/dimfeld/httptreemux v5.0.1+incompatible h1:Qj3gVcDNoOthBAqftuD596rm4w
 github.com/dimfeld/httptreemux v5.0.1+incompatible/go.mod h1:rbUlSV+CCpv/SuqUTP/8Bk2O3LyUV436/yaRGkhP6Z0=
 github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4 h1:qk/FSDDxo05wdJH28W+p5yivv7LuLYLRXPPD8KQCtZs=
 github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
-github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
-github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
 github.com/dvsekhvalnov/jose2go v0.0.0-20180829124132-7f401d37b68a h1:mq+R6XEM6lJX5VlLyZIrUSP8tSuJp82xTK89hvBwJbU=
 github.com/dvsekhvalnov/jose2go v0.0.0-20180829124132-7f401d37b68a/go.mod h1:7BvyPhdbLxMXIYTFPLsyJRFMsKmOZnQmzh6Gb+uquuM=
-github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385 h1:clC1lXBpe2kTj2VHdaIu9ajZQe4kcEY9j0NsnDDBZ3o=
-github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM=
 github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
 github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c h1:8ISkoahWXwZR41ois5lSJBSVw4D0OV19Ht/JSTzvSv0=
@@ -133,7 +110,6 @@ github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
 github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
 github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0=
 github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4=
-github.com/gogo/protobuf v0.0.0-20180717141946-636bf0302bc9/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
 github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
 github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE=
 github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
@@ -149,7 +125,6 @@ github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfb
 github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
 github.com/golang/mock v1.3.1 h1:qGJ6qTW+x6xX/my+8YUVl4WNpX9B7+/l2tRsHGZ7f2s=
 github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
-github.com/golang/protobuf v0.0.0-20180814211427-aa810b61a9c7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs=
@@ -185,12 +160,9 @@ github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5m
 github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8=
 github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
 github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
-github.com/gorilla/mux v1.7.0/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
 github.com/gorilla/mux v1.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw=
 github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
 github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
-github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q=
-github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
 github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
 github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
 github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
@@ -198,11 +170,9 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de
 github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho=
 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
-github.com/grpc-ecosystem/grpc-gateway v1.8.1/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
 github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
 github.com/grpc-ecosystem/grpc-gateway v1.9.5 h1:UImYN5qQ8tuGpGE16ZmjvcTtTw24zw1QAp/SlnNrZhI=
 github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
-github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw=
 github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c h1:6rhixN/i8ZofjG1Y75iExal34USq5p+wiN1tpie8IrU=
 github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c/go.mod h1:NMPJylDgVpX0MLRlPy15sqSwOFv/U1GZ2m21JhFfek0=
 github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q=
@@ -227,21 +197,16 @@ github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0m
 github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
 github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
 github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
-github.com/ilyakaznacheev/cleanenv v1.2.5 h1:/SlcF9GaIvefWqFJzsccGG/NJdoaAwb7Mm7ImzhO3DM=
-github.com/ilyakaznacheev/cleanenv v1.2.5/go.mod h1:/i3yhzwZ3s7hacNERGFwvlhwXMDcaqwIzmayEhbRplk=
 github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
 github.com/jawher/mow.cli v1.0.4/go.mod h1:5hQj2V8g+qYmLUVWqu4Wuja1pI57M83EChYLVZ0sMKk=
 github.com/jawher/mow.cli v1.1.0/go.mod h1:aNaQlc7ozF3vw6IJ2dHjp2ZFiA4ozMIYY6PyuRJwlUg=
 github.com/jawher/mow.cli v1.2.0/go.mod h1:y+pcA3jBAdo/GIZx/0rFjw/K2bVEODP9rfZOfaiq8Ko=
 github.com/jmespath/go-jmespath v0.3.0 h1:OS12ieG61fsCg5+qLJ+SsW9NicxNkg3b25OyT2yCeUc=
 github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik=
-github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc=
-github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
 github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo=
 github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
 github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
 github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
-github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68=
 github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
 github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
@@ -305,8 +270,6 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ
 github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
 github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI=
 github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
-github.com/montanaflynn/stats v0.5.0 h1:2EkzeTSqBB4V4bJwWrt5gIIrZmpJBcoIRGS2kWLgzmk=
-github.com/montanaflynn/stats v0.5.0/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
 github.com/mtibben/percent v0.2.1 h1:5gssi8Nqo8QU/r2pynCm+hBQHpkB/uNK7BJCFogWdzs=
 github.com/mtibben/percent v0.2.1/go.mod h1:KG9uO+SZkUp+VkRHsCdYQV3XSZrrSpR3O9ibNBTZrns=
 github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
@@ -314,30 +277,18 @@ github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWb
 github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
 github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78=
 github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
-github.com/oklog/run v1.1.0 h1:GEenZ1cK0+q0+wsJew9qUg/DyD8k3JzYsZAi5gYi2mA=
-github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU=
 github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
 github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
 github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
 github.com/onsi/ginkgo v1.12.1 h1:mFwc4LvZ0xpSvDZ3E+k8Yte0hLOMxXUlP+yXtJqkYfQ=
 github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
-github.com/onsi/ginkgo v1.12.2/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
-github.com/onsi/ginkgo v1.12.3/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
-github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0=
 github.com/onsi/ginkgo v1.14.0 h1:2mOpI4JVVPBN+WQRa0WKH2eXR+Ey+uK4n7Zj0aYpIQA=
 github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY=
-github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
 github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
-github.com/onsi/gomega v1.10.0 h1:Gwkk+PTu/nfOwNMtUB/mRUv0X7ewW5dO4AERT1ThVKo=
-github.com/onsi/gomega v1.10.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA=
 github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE=
 github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
 github.com/onsi/gomega v1.10.5 h1:7n6FEkpFmfCoo2t+YYqXH0evK+a9ICQz0xcAy9dYcaQ=
 github.com/onsi/gomega v1.10.5/go.mod h1:gza4q3jKQJijlu05nKWRCW/GavJumGt8aNRxWg7mt48=
-github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
-github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
-github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
 github.com/ozonru/etcd v3.3.20-grpc1.27-origmodule+incompatible h1:CAG0PUvo1fen+ZEfxKJjFIc8GuuN5RuaBuCAuaP2Hno=
 github.com/ozonru/etcd v3.3.20-grpc1.27-origmodule+incompatible/go.mod h1:iIubILNIN6Jq9h8uiSLrN9L1tuj3iSSFwz3R61skm/A=
 github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
@@ -346,26 +297,6 @@ github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/9
 github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
 github.com/pierrec/lz4 v2.5.2+incompatible h1:WCjObylUIOlKy/+7Abdn34TLIkXiA4UWUMhxq9m9ZXI=
 github.com/pierrec/lz4 v2.5.2+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
-github.com/pingcap/check v0.0.0-20190102082844-67f458068fc8 h1:USx2/E1bX46VG32FIw034Au6seQ2fY9NEILmNh/UlQg=
-github.com/pingcap/check v0.0.0-20190102082844-67f458068fc8/go.mod h1:B1+S9LNcuMyLH/4HMTViQOJevkGiik3wW2AN9zb2fNQ=
-github.com/pingcap/check v0.0.0-20200212061837-5e12011dc712 h1:R8gStypOBmpnHEx1qi//SaqxJVI4inOqljg/Aj5/390=
-github.com/pingcap/check v0.0.0-20200212061837-5e12011dc712/go.mod h1:PYMCGwN0JHjoqGr3HrZoD+b8Tgx8bKnArhSq8YVzUMc=
-github.com/pingcap/errors v0.11.0/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8=
-github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4=
-github.com/pingcap/errors v0.11.4/go.mod h1:Oi8TUi2kEtXXLMJk9l1cGmz20kV3TaQ0usTwv5KuLY8=
-github.com/pingcap/gofail v0.0.0-20181217135706-6a951c1e42c3 h1:04yuCf5NMvLU8rB2m4Qs3rynH7EYpMno3lHkewIOdMo=
-github.com/pingcap/gofail v0.0.0-20181217135706-6a951c1e42c3/go.mod h1:DazNTg0PTldtpsQiT9I5tVJwV1onHMKBBgXzmJUlMns=
-github.com/pingcap/goleveldb v0.0.0-20171020122428-b9ff6c35079e h1:P73/4dPCL96rGrobssy1nVy2VaVpNCuLpCbr+FEaTA8=
-github.com/pingcap/goleveldb v0.0.0-20171020122428-b9ff6c35079e/go.mod h1:O17XtbryoCJhkKGbT62+L2OlrniwqiGLSqrmdHCMzZw=
-github.com/pingcap/kvproto v0.0.0-20190305055742-ab7debc182d9 h1:EsTt42btov+tFchxOFKnxBNmXOWyPKiddOwvr/WO90g=
-github.com/pingcap/kvproto v0.0.0-20190305055742-ab7debc182d9/go.mod h1:QMdbTAXCHzzygQzqcG9uVUgU2fKeSN1GmfMiykdSzzY=
-github.com/pingcap/log v0.0.0-20191012051959-b742a5d432e9/go.mod h1:4rbK1p9ILyIfb6hU7OG2CiWSqMXnp3JMbiaVJ6mvoY8=
-github.com/pingcap/log v0.0.0-20200828042413-fce0951f1463 h1:Jboj+s4jSCp5E1WDgmRUv5rIFKFHaaSWuSZ4wMwXIcc=
-github.com/pingcap/log v0.0.0-20200828042413-fce0951f1463/go.mod h1:4rbK1p9ILyIfb6hU7OG2CiWSqMXnp3JMbiaVJ6mvoY8=
-github.com/pingcap/pd v2.1.5+incompatible h1:vOLV2tSQdRjjmxaTXtJULoC94dYQOd+6fzn2yChODHc=
-github.com/pingcap/pd v2.1.5+incompatible/go.mod h1:nD3+EoYes4+aNNODO99ES59V83MZSI+dFbhyr667a0E=
-github.com/pivotal-golang/bytefmt v0.0.0-20200131002437-cf55d5288a48 h1:2JCf+JCLBs7IUZzYdIrSDN+GWYacKOdToIAt5zcga54=
-github.com/pivotal-golang/bytefmt v0.0.0-20200131002437-cf55d5288a48/go.mod h1:43j3yLP9UiXa0z95/W3hN7yTjoxsQoOll5rrGBgBcnE=
 github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
@@ -374,14 +305,9 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
 github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
-github.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM=
 github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
 github.com/prometheus/client_golang v1.0.0 h1:vrDKnkGzuGvhNAL56c7DBz29ZL+KxnoR0x7enabFceM=
 github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
-github.com/prometheus/client_golang v1.5.1 h1:bdHYieyGlH+6OLEk2YQha8THib30KP0/yD0YH9m6xcA=
-github.com/prometheus/client_golang v1.5.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
-github.com/prometheus/client_golang v1.6.0/go.mod h1:ZLOG9ck3JLRdB5MgO8f+lLTe83AXG6ro35rLTxvnIl4=
-github.com/prometheus/client_golang v1.7.0/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
 github.com/prometheus/client_golang v1.7.1 h1:NTGy1Ja9pByO+xAeH/qiWnLrKtr3hJPNjaVUwnjpdpA=
 github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
 github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
@@ -391,39 +317,25 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:
 github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M=
 github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
 github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
-github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
 github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
 github.com/prometheus/common v0.4.1 h1:K0MGApIoQvMw27RTdJkPbr3JZ7DNbtxQNyi5STVM6Kw=
 github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
-github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4=
 github.com/prometheus/common v0.10.0 h1:RyRA7RzGXQZiW+tGMr7sxa85G1z0yOpM1qq5c8lNawc=
 github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
 github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
-github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
 github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
 github.com/prometheus/procfs v0.0.2 h1:6LJUbpNm42llc4HRCuvApCSWB/WfhuNo9K98Q9sNGfs=
 github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
-github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
 github.com/prometheus/procfs v0.1.3 h1:F0+tqvhOksq22sc6iCHF5WGlWjdwj92p0udFh1VFBS8=
 github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
 github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
-github.com/protocolbuffers/protobuf v3.14.0+incompatible h1:8r0H76h/Q/lEnFFY60AuM23NOnaDMi6bd7zuboSYM+o=
-github.com/quasilyte/go-ruleguard v0.2.1 h1:56eRm0daAyny9UhJnmtJW/UyLZQusukBAB8oT8AHKHo=
-github.com/quasilyte/go-ruleguard v0.2.1/go.mod h1:hN2rVc/uS4bQhQKTio2XaSJSafJwqBUWWwtssT3cQmc=
-github.com/quasilyte/go-ruleguard/dsl v0.0.0-20210108021830-2a284c158646 h1:ShKMENtS4KYekn92z5vdicyR7wBOgpxFNj5h0M2rNKg=
-github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446 h1:/NRJ5vAYoqz+7sG51ubIDHXeWO8DlTSrToPu6q11ziA=
-github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M=
 github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
 github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
 github.com/rs/xid v1.2.1 h1:mhH9Nq+C1fY2l1XIpgxIiUOfNpRBYH1kKcr+qfKgjRc=
 github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
-github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
 github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
 github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
-github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
 github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
-github.com/sirupsen/logrus v1.3.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
-github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
 github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
 github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I=
 github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
@@ -463,25 +375,10 @@ github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s
 github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
 github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c h1:g+WoO5jjkqGAzHWCjJB1zZfXPIAaDpzXIEJ0eS6B5Ok=
 github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c/go.mod h1:ahpPrc7HpcfEWDQRZEmnXMzHY03mLDYMCxeDzy46i+8=
-github.com/tikv/client-go v0.0.0-20200824032810-95774393107b h1:VOG2GkM7RpRrT0St7HIIwCWrc3mVdf+DjcT8r2ucusI=
-github.com/tikv/client-go v0.0.0-20200824032810-95774393107b/go.mod h1:K0NcdVNrXDq92YPLytsrAwRMyuXi7GZCO6dXNH7OzQc=
 github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
 github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 h1:LnC5Kc/wtumK+WB441p7ynQJzVuNRJiqddSIE3IlSEQ=
 github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
-github.com/uber/jaeger-client-go v1.6.0 h1:3+zLlq+4npI5fg8IsgAje3YsP7TcEdNzJScyqFIzxEQ=
-github.com/uber/jaeger-client-go v2.25.0+incompatible h1:IxcNZ7WRY1Y3G4poYlx24szfsn/3LvK9QHCq9oQw8+U=
-github.com/uber/jaeger-client-go v2.25.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk=
-github.com/uber/jaeger-lib v1.5.0 h1:OHbgr8l656Ub3Fw5k9SWnBfIEwvoHQ+W2y+Aa9D1Uyo=
-github.com/uber/jaeger-lib v2.4.0+incompatible h1:fY7QsGQWiCt8pajv4r7JEvmATdCVaWxXbjwyYwsNaLQ=
-github.com/uber/jaeger-lib v2.4.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
-github.com/ugorji/go v1.1.2/go.mod h1:hnLbHMwcvSihnDhEfx2/BzKp2xb0Y+ErdfYcrs9tkJQ=
-github.com/ugorji/go/codec v0.0.0-20190204201341-e444a5086c43/go.mod h1:iT03XoTwV7xq/+UGwKO3UbC1nNNlopQiY61beSdrtOA=
-github.com/unrolled/render v1.0.0 h1:XYtvhA3UkpB7PqkvhUFYmpKD55OudoIeygcfus4vcd4=
-github.com/unrolled/render v1.0.0/go.mod h1:tu82oB5W2ykJRVioYsB+IQKcft7ryBr7w12qMBUPyXg=
 github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
-github.com/urfave/cli v1.22.5/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
-github.com/valyala/gozstd v1.7.0 h1:Ljh5c9zboqLhwTI33al32R72iCZfn0mCbVGcFWbGwRQ=
-github.com/valyala/gozstd v1.7.0/go.mod h1:y5Ew47GLlP37EkTB+B4s7r6A5rdaeB7ftbl9zoYiIPQ=
 github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8=
 github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
 github.com/yahoo/athenz v1.8.55/go.mod h1:G7LLFUH7Z/r4QAB7FfudfuA7Am/eCzO1GlzBhDL6Kv0=
@@ -496,19 +393,14 @@ go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
 go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
 go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
 go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
-go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
 go.uber.org/atomic v1.6.0 h1:Ezj3JGmsOnG1MoRWQkPBsKLe9DwWD9QeXzTRzzldNVk=
 go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
 go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
-go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
-go.uber.org/multierr v1.4.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
 go.uber.org/multierr v1.5.0 h1:KCa4XfM8CWFCpxXRGok+Q0SS/0XBhMDbHHGABQLvD2A=
 go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU=
 go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4=
 go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
-go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
 go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
-go.uber.org/zap v1.12.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM=
 go.uber.org/zap v1.15.0 h1:ZZCA22JRF2gQE5FoNmhmrf7jeJJ2uhqDUNRYKm8dvmM=
 go.uber.org/zap v1.15.0/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc=
 golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
@@ -545,7 +437,6 @@ golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4=
 golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
 golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -565,8 +456,6 @@ golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLL
 golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
 golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
-golang.org/x/net v0.0.0-20200904194848-62affa334b73 h1:MXfv8rhZWmFeqX3GNZRsd6vOLoaCHjYEX3qkRo3YBUA=
-golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
 golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb h1:eBmm0M9fYhWpKZLjQUUKka/LtIxf46G4fxeEz5KJr9U=
 golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
@@ -602,14 +491,11 @@ golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f h1:Fqb3ao1hUmOR3GkUOg/Y+BadLwykBIzs5q8Ez2SbHyc=
-golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f h1:+Nyd8tzPX9R7BWHguqsrbFdRx3WQ/1ib8I44HXV5yTA=
 golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -641,12 +527,10 @@ golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtn
 golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191107010934-f79515f33823/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
 golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
-golang.org/x/tools v0.0.0-20200812195022-5ae4c3c160a0/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
 golang.org/x/tools v0.0.0-20200825202427-b303f430e36d h1:W07d4xkoAUSNOkOzdzXCdFGxT7o2rW4q8M34tB2i//k=
 golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -659,13 +543,11 @@ google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E
 google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
 google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
 google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
-google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
 google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
 google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
 google.golang.org/appengine v1.6.1 h1:QzqyMA1tlu6CgqCDUtU9V+ZKhLFT2dkJuANu5QaxI3I=
 google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
 google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
-google.golang.org/genproto v0.0.0-20181004005441-af9cb2a35e7f/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
 google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
 google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
 google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
@@ -681,11 +563,8 @@ google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8
 google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
 google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
 google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
-google.golang.org/protobuf v1.20.0/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
 google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
-google.golang.org/protobuf v1.20.1/go.mod h1:KqelGeouBkcbcuB3HCk4/YH2tmNLk6YSWA5LIWeI/lY=
 google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
-google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
 google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM=
 google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
 gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc=
@@ -724,8 +603,6 @@ honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWh
 honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
 honnef.co/go/tools v0.0.1-2020.1.4 h1:UoveltGrhghAA7ePc+e+QYDHXrBps2PqFZiHkGR/xK8=
 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
-olympos.io/encoding/edn v0.0.0-20200308123125-93e3b8dd0e24 h1:sreVOrDp0/ezb0CHKVek/l7YwpxPJqv+jT3izfSphA4=
-olympos.io/encoding/edn v0.0.0-20200308123125-93e3b8dd0e24/go.mod h1:oVgVk4OWVDi43qWBEyGhXgYxt7+ED4iYNpTngSLX2Iw=
 rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
 sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
 sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
diff --git a/internal/core/src/pb/common.pb.cc b/internal/core/src/pb/common.pb.cc
index 7484059c0e323900ac0ad7bb52cba81cad2d65f5..12c2da3b6c5ded4de1f33e347c552a8c1080d1b4 100644
--- a/internal/core/src/pb/common.pb.cc
+++ b/internal/core/src/pb/common.pb.cc
@@ -252,7 +252,7 @@ const char descriptor_table_protodef_common_2eproto[] PROTOBUF_SECTION_VARIABLE(
   "LED\020\004\022\013\n\007DELETED\020\005*o\n\014SegmentState\022\017\n\013Se"
   "gmentNone\020\000\022\023\n\017SegmentNotExist\020\001\022\022\n\016Segm"
   "entGrowing\020\002\022\021\n\rSegmentSealed\020\003\022\022\n\016Segme"
-  "ntFlushed\020\004*\204\006\n\007MsgType\022\t\n\005kNone\020\000\022\025\n\021kC"
+  "ntFlushed\020\004*\225\006\n\007MsgType\022\t\n\005kNone\020\000\022\025\n\021kC"
   "reateCollection\020d\022\023\n\017kDropCollection\020e\022\022"
   "\n\016kHasCollection\020f\022\027\n\023kDescribeCollectio"
   "n\020g\022\024\n\020kShowCollections\020h\022\022\n\016kGetSysConf"
@@ -263,17 +263,17 @@ const char descriptor_table_protodef_common_2eproto[] PROTOBUF_SECTION_VARIABLE(
   "\001\022\023\n\016kLoadPartition\020\315\001\022\026\n\021kReleasePartit"
   "ion\020\316\001\022\021\n\014kShowSegment\020\372\001\022\025\n\020kDescribeSe"
   "gment\020\373\001\022\021\n\014kCreateIndex\020\254\002\022\023\n\016kDescribe"
-  "Index\020\255\002\022\014\n\007kInsert\020\220\003\022\014\n\007kDelete\020\221\003\022\013\n\006"
-  "kFlush\020\222\003\022\014\n\007kSearch\020\364\003\022\022\n\rkSearchResult"
-  "\020\365\003\022\023\n\016kGetIndexState\020\366\003\022\035\n\030kGetCollecti"
-  "onStatistics\020\367\003\022\034\n\027kGetPartitionStatisti"
-  "cs\020\370\003\022\021\n\014kSegmentInfo\020\330\004\022\016\n\tkTimeTick\020\260\t"
-  "\022\024\n\017kQueryNodeStats\020\261\t\022\017\n\nkLoadIndex\020\262\t\022"
-  "\017\n\nkRequestID\020\263\t\022\020\n\013kRequestTSO\020\264\t\022\025\n\020kA"
-  "llocateSegment\020\265\t\022\027\n\022kSegmentStatistics\020"
-  "\266\t\022\026\n\021kSegmentFlushDone\020\267\tBBZ@github.com"
-  "/zilliztech/milvus-distributed/internal/"
-  "proto/commonpbb\006proto3"
+  "Index\020\255\002\022\017\n\nkDropIndex\020\256\002\022\014\n\007kInsert\020\220\003\022"
+  "\014\n\007kDelete\020\221\003\022\013\n\006kFlush\020\222\003\022\014\n\007kSearch\020\364\003"
+  "\022\022\n\rkSearchResult\020\365\003\022\023\n\016kGetIndexState\020\366"
+  "\003\022\035\n\030kGetCollectionStatistics\020\367\003\022\034\n\027kGet"
+  "PartitionStatistics\020\370\003\022\021\n\014kSegmentInfo\020\330"
+  "\004\022\016\n\tkTimeTick\020\260\t\022\024\n\017kQueryNodeStats\020\261\t\022"
+  "\017\n\nkLoadIndex\020\262\t\022\017\n\nkRequestID\020\263\t\022\020\n\013kRe"
+  "questTSO\020\264\t\022\025\n\020kAllocateSegment\020\265\t\022\027\n\022kS"
+  "egmentStatistics\020\266\t\022\026\n\021kSegmentFlushDone"
+  "\020\267\tBBZ@github.com/zilliztech/milvus-dist"
+  "ributed/internal/proto/commonpbb\006proto3"
   ;
 static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_common_2eproto_deps[1] = {
 };
@@ -289,7 +289,7 @@ static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_com
 static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_common_2eproto_once;
 static bool descriptor_table_common_2eproto_initialized = false;
 const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_common_2eproto = {
-  &descriptor_table_common_2eproto_initialized, descriptor_table_protodef_common_2eproto, "common.proto", 2022,
+  &descriptor_table_common_2eproto_initialized, descriptor_table_protodef_common_2eproto, "common.proto", 2039,
   &descriptor_table_common_2eproto_once, descriptor_table_common_2eproto_sccs, descriptor_table_common_2eproto_deps, 7, 0,
   schemas, file_default_instances, TableStruct_common_2eproto::offsets,
   file_level_metadata_common_2eproto, 7, file_level_enum_descriptors_common_2eproto, file_level_service_descriptors_common_2eproto,
@@ -398,6 +398,7 @@ bool MsgType_IsValid(int value) {
     case 251:
     case 300:
     case 301:
+    case 302:
     case 400:
     case 401:
     case 402:
diff --git a/internal/core/src/pb/common.pb.h b/internal/core/src/pb/common.pb.h
index cf1509d84045f3a48e7c3aef37d9cd0ee1d914ad..9bf4a626cbc8cf8dc60b3157645fc445dc8518db 100644
--- a/internal/core/src/pb/common.pb.h
+++ b/internal/core/src/pb/common.pb.h
@@ -221,6 +221,7 @@ enum MsgType : int {
   kDescribeSegment = 251,
   kCreateIndex = 300,
   kDescribeIndex = 301,
+  kDropIndex = 302,
   kInsert = 400,
   kDelete = 401,
   kFlush = 402,
diff --git a/internal/distributed/indexservice/client/client.go b/internal/distributed/indexservice/client/client.go
index b84177a44bfc56d6aafbfae62fbf1d04ec9dfd66..c67b4165a711b1ccc4cae9ee41dbd5372bfaacb0 100644
--- a/internal/distributed/indexservice/client/client.go
+++ b/internal/distributed/indexservice/client/client.go
@@ -78,6 +78,11 @@ func (c *Client) BuildIndex(req *indexpb.BuildIndexRequest) (*indexpb.BuildIndex
 	return c.grpcClient.BuildIndex(ctx, req)
 }
 
+func (c *Client) DropIndex(req *indexpb.DropIndexRequest) (*commonpb.Status, error) {
+	ctx := context.TODO()
+	return c.grpcClient.DropIndex(ctx, req)
+}
+
 func (c *Client) GetIndexStates(req *indexpb.IndexStatesRequest) (*indexpb.IndexStatesResponse, error) {
 	ctx := context.TODO()
 	return c.grpcClient.GetIndexStates(ctx, req)
diff --git a/internal/distributed/masterservice/client.go b/internal/distributed/masterservice/client.go
index f0d272be525241e001251b4b0aca0dc58114107c..2bc46f445718d522d9dafcd89d2aa9ca6b41e888 100644
--- a/internal/distributed/masterservice/client.go
+++ b/internal/distributed/masterservice/client.go
@@ -123,6 +123,13 @@ func (c *GrpcClient) CreateIndex(in *milvuspb.CreateIndexRequest) (*commonpb.Sta
 	defer cancel()
 	return c.grpcClient.CreateIndex(ctx, in)
 }
+
+func (c *GrpcClient) DropIndex(in *milvuspb.DropIndexRequest) (*commonpb.Status, error) {
+	ctx, cancel := context.WithTimeout(context.Background(), time.Second*time.Duration(cms.Params.Timeout))
+	defer cancel()
+	return c.grpcClient.DropIndex(ctx, in)
+}
+
 func (c *GrpcClient) DescribeIndex(in *milvuspb.DescribeIndexRequest) (*milvuspb.DescribeIndexResponse, error) {
 	ctx, cancel := context.WithTimeout(context.Background(), time.Second*time.Duration(cms.Params.Timeout))
 	defer cancel()
diff --git a/internal/distributed/masterservice/masterservice_test.go b/internal/distributed/masterservice/masterservice_test.go
index 48e616098e47c68a843901631bb01c8ce5c6660f..400dffda26ba5645a7f52c1fb74e47cb3fea6053 100644
--- a/internal/distributed/masterservice/masterservice_test.go
+++ b/internal/distributed/masterservice/masterservice_test.go
@@ -107,6 +107,15 @@ func TestGrpcService(t *testing.T) {
 		return 2000, nil
 	}
 
+	var dropIDLock sync.Mutex
+	dropID := make([]typeutil.UniqueID, 0, 16)
+	core.DropIndexReq = func(indexID typeutil.UniqueID) error {
+		dropIDLock.Lock()
+		defer dropIDLock.Unlock()
+		dropID = append(dropID, indexID)
+		return nil
+	}
+
 	collectionMetaCache := make([]string, 0, 16)
 	core.InvalidateCollectionMetaCache = func(ts typeutil.Timestamp, dbName string, collectionName string) error {
 		collectionMetaCache = append(collectionMetaCache, collectionName)
@@ -522,6 +531,33 @@ func TestGrpcService(t *testing.T) {
 
 	})
 
+	t.Run("drop index", func(t *testing.T) {
+		req := &milvuspb.DropIndexRequest{
+			Base: &commonpb.MsgBase{
+				MsgType:   commonpb.MsgType_kDropIndex,
+				MsgID:     215,
+				Timestamp: 215,
+				SourceID:  215,
+			},
+			DbName:         "",
+			CollectionName: "testColl",
+			FieldName:      "vector",
+			IndexName:      cms.Params.DefaultIndexName,
+		}
+		idx, err := core.MetaTable.GetIndexByName("testColl", "vector", cms.Params.DefaultIndexName)
+		assert.Nil(t, err)
+		assert.Equal(t, len(idx), 1)
+		rsp, err := cli.DropIndex(req)
+		assert.Nil(t, err)
+		assert.Equal(t, rsp.ErrorCode, commonpb.ErrorCode_SUCCESS)
+
+		dropIDLock.Lock()
+		assert.Equal(t, len(dropID), 1)
+		assert.Equal(t, dropID[0], idx[0].IndexID)
+		dropIDLock.Unlock()
+
+	})
+
 	t.Run("drop partition", func(t *testing.T) {
 		req := &milvuspb.DropPartitionRequest{
 			Base: &commonpb.MsgBase{
diff --git a/internal/distributed/masterservice/server.go b/internal/distributed/masterservice/server.go
index 6c3e3d34a46bc613960e7ecc614fc68b07f8f55b..fceb859b01fd43bf9837529b811acc14a8ed23cc 100644
--- a/internal/distributed/masterservice/server.go
+++ b/internal/distributed/masterservice/server.go
@@ -27,10 +27,6 @@ type GrpcServer struct {
 	cancel context.CancelFunc
 }
 
-func (s *GrpcServer) DropIndex(ctx context.Context, request *milvuspb.DropIndexRequest) (*commonpb.Status, error) {
-	panic("implement me")
-}
-
 func NewGrpcServer(ctx context.Context, factory msgstream.Factory) (*GrpcServer, error) {
 	s := &GrpcServer{}
 	var err error
@@ -157,6 +153,10 @@ func (s *GrpcServer) CreateIndex(ctx context.Context, in *milvuspb.CreateIndexRe
 	return s.core.CreateIndex(in)
 }
 
+func (s *GrpcServer) DropIndex(ctx context.Context, in *milvuspb.DropIndexRequest) (*commonpb.Status, error) {
+	return s.core.DropIndex(in)
+}
+
 func (s *GrpcServer) DescribeIndex(ctx context.Context, in *milvuspb.DescribeIndexRequest) (*milvuspb.DescribeIndexResponse, error) {
 	return s.core.DescribeIndex(in)
 }
diff --git a/internal/distributed/proxynode/service.go b/internal/distributed/proxynode/service.go
index b04ac95d97540595b6c1e8a36728f41f1f23e8a4..43a1e27c0bfc1d543df206ab2378dcb8f1903727 100644
--- a/internal/distributed/proxynode/service.go
+++ b/internal/distributed/proxynode/service.go
@@ -48,10 +48,6 @@ type Server struct {
 	indexServiceClient  *grpcindexserviceclient.Client
 }
 
-func (s *Server) DropIndex(ctx context.Context, request *milvuspb.DropIndexRequest) (*commonpb.Status, error) {
-	panic("implement me")
-}
-
 func NewServer(ctx context.Context, factory msgstream.Factory) (*Server, error) {
 
 	server := &Server{
@@ -307,6 +303,10 @@ func (s *Server) CreateIndex(ctx context.Context, request *milvuspb.CreateIndexR
 	return s.impl.CreateIndex(request)
 }
 
+func (s *Server) DropIndex(ctx context.Context, request *milvuspb.DropIndexRequest) (*commonpb.Status, error) {
+	return s.impl.DropIndex(request)
+}
+
 func (s *Server) DescribeIndex(ctx context.Context, request *milvuspb.DescribeIndexRequest) (*milvuspb.DescribeIndexResponse, error) {
 	return s.impl.DescribeIndex(request)
 }
diff --git a/internal/masterservice/master_service.go b/internal/masterservice/master_service.go
index 7d1e1d1aebccd25386bcdd483b84caafde73bab7..caa08b1ede037565f51192474a19a20599b1e7c3 100644
--- a/internal/masterservice/master_service.go
+++ b/internal/masterservice/master_service.go
@@ -45,6 +45,7 @@ type DataServiceInterface interface {
 
 type IndexServiceInterface interface {
 	BuildIndex(req *indexpb.BuildIndexRequest) (*indexpb.BuildIndexResponse, error)
+	DropIndex(req *indexpb.DropIndexRequest) (*commonpb.Status, error)
 }
 
 type QueryServiceInterface interface {
@@ -72,6 +73,7 @@ type Interface interface {
 	//index builder service
 	CreateIndex(in *milvuspb.CreateIndexRequest) (*commonpb.Status, error)
 	DescribeIndex(in *milvuspb.DescribeIndexRequest) (*milvuspb.DescribeIndexResponse, error)
+	DropIndex(in *milvuspb.DropIndexRequest) (*commonpb.Status, error)
 
 	//global timestamp allocator
 	AllocTimestamp(in *masterpb.TsoRequest) (*masterpb.TsoResponse, error)
@@ -156,6 +158,7 @@ type Core struct {
 
 	//call index builder's client to build index, return build id
 	BuildIndexReq func(binlog []string, typeParams []*commonpb.KeyValuePair, indexParams []*commonpb.KeyValuePair, indexID typeutil.UniqueID, indexName string) (typeutil.UniqueID, error)
+	DropIndexReq  func(indexID typeutil.UniqueID) error
 
 	//proxy service interface, notify proxy service to drop collection
 	InvalidateCollectionMetaCache func(ts typeutil.Timestamp, dbName string, collectionName string) error
@@ -246,6 +249,9 @@ func (c *Core) checkInit() error {
 	if c.BuildIndexReq == nil {
 		return errors.Errorf("BuildIndexReq is nil")
 	}
+	if c.DropIndexReq == nil {
+		return errors.Errorf("DropIndexReq is nil")
+	}
 	if c.InvalidateCollectionMetaCache == nil {
 		return errors.Errorf("InvalidateCollectionMetaCache is nil")
 	}
@@ -374,11 +380,13 @@ func (c *Core) startSegmentFlushCompletedLoop() {
 			coll, err := c.MetaTable.GetCollectionBySegmentID(seg)
 			if err != nil {
 				log.Printf("GetCollectionBySegmentID, error = %s ", err.Error())
+				break
 			}
 			for _, f := range coll.FieldIndexes {
 				idxInfo, err := c.MetaTable.GetIndexByID(f.IndexID)
 				if err != nil {
 					log.Printf("index id = %d not found", f.IndexID)
+					continue
 				}
 
 				fieldSch, err := GetFieldSchemaByID(coll, f.FiledID)
@@ -716,6 +724,20 @@ func (c *Core) SetIndexService(s IndexServiceInterface) error {
 		}
 		return rsp.IndexBuildID, nil
 	}
+
+	c.DropIndexReq = func(indexID typeutil.UniqueID) error {
+		rsp, err := s.DropIndex(&indexpb.DropIndexRequest{
+			IndexID: indexID,
+		})
+		if err != nil {
+			return err
+		}
+		if rsp.ErrorCode != commonpb.ErrorCode_SUCCESS {
+			return errors.Errorf("%s", rsp.Reason)
+		}
+		return nil
+	}
+
 	return nil
 }
 
@@ -1232,6 +1254,36 @@ func (c *Core) DescribeIndex(in *milvuspb.DescribeIndexRequest) (*milvuspb.Descr
 	return t.Rsp, nil
 }
 
+func (c *Core) DropIndex(in *milvuspb.DropIndexRequest) (*commonpb.Status, error) {
+	code := c.stateCode.Load().(internalpb2.StateCode)
+	if code != internalpb2.StateCode_HEALTHY {
+		return &commonpb.Status{
+			ErrorCode: commonpb.ErrorCode_UNEXPECTED_ERROR,
+			Reason:    fmt.Sprintf("state code = %s", internalpb2.StateCode_name[int32(code)]),
+		}, nil
+	}
+	log.Printf("DropIndex : collection : %s, filed : %s , index : %s", in.CollectionName, in.FieldName, in.IndexName)
+	t := &DropIndexReqTask{
+		baseReqTask: baseReqTask{
+			cv:   make(chan error),
+			core: c,
+		},
+		Req: in,
+	}
+	c.ddReqQueue <- t
+	err := t.WaitToFinish()
+	if err != nil {
+		return &commonpb.Status{
+			ErrorCode: commonpb.ErrorCode_UNEXPECTED_ERROR,
+			Reason:    "DropIndex failed, error = %s" + err.Error(),
+		}, nil
+	}
+	return &commonpb.Status{
+		ErrorCode: commonpb.ErrorCode_SUCCESS,
+		Reason:    "",
+	}, nil
+}
+
 func (c *Core) DescribeSegment(in *milvuspb.DescribeSegmentRequest) (*milvuspb.DescribeSegmentResponse, error) {
 	code := c.stateCode.Load().(internalpb2.StateCode)
 	if code != internalpb2.StateCode_HEALTHY {
diff --git a/internal/masterservice/master_service_test.go b/internal/masterservice/master_service_test.go
index 7e612f947defe0fc50bd4ce91638d197c89aecdc..3a4231be11fb757ed3225e64862804605bbb9313 100644
--- a/internal/masterservice/master_service_test.go
+++ b/internal/masterservice/master_service_test.go
@@ -105,22 +105,35 @@ func (d *dataMock) GetSegmentInfoChannel() (*milvuspb.StringResponse, error) {
 }
 
 type indexMock struct {
-	fileArray []string
-	idxArray  []int64
-	mutex     sync.Mutex
+	fileArray  []string
+	idxBuildID []int64
+	idxID      []int64
+	idxDropID  []int64
+	mutex      sync.Mutex
 }
 
 func (idx *indexMock) BuildIndex(req *indexpb.BuildIndexRequest) (*indexpb.BuildIndexResponse, error) {
 	idx.mutex.Lock()
 	defer idx.mutex.Unlock()
 	idx.fileArray = append(idx.fileArray, req.DataPaths...)
-	idx.idxArray = append(idx.idxArray, rand.Int63())
+	idx.idxBuildID = append(idx.idxBuildID, rand.Int63())
+	idx.idxID = append(idx.idxID, req.IndexID)
 	return &indexpb.BuildIndexResponse{
 		Status: &commonpb.Status{
 			ErrorCode: commonpb.ErrorCode_SUCCESS,
 			Reason:    "",
 		},
-		IndexBuildID: idx.idxArray[len(idx.idxArray)-1],
+		IndexBuildID: idx.idxBuildID[len(idx.idxBuildID)-1],
+	}, nil
+}
+
+func (idx *indexMock) DropIndex(req *indexpb.DropIndexRequest) (*commonpb.Status, error) {
+	idx.mutex.Lock()
+	defer idx.mutex.Unlock()
+	idx.idxDropID = append(idx.idxDropID, req.IndexID)
+	return &commonpb.Status{
+		ErrorCode: commonpb.ErrorCode_SUCCESS,
+		Reason:    "",
 	}, nil
 }
 
@@ -173,9 +186,11 @@ func TestMasterService(t *testing.T) {
 	assert.Nil(t, err)
 
 	im := &indexMock{
-		fileArray: []string{},
-		idxArray:  []int64{},
-		mutex:     sync.Mutex{},
+		fileArray:  []string{},
+		idxBuildID: []int64{},
+		idxID:      []int64{},
+		idxDropID:  []int64{},
+		mutex:      sync.Mutex{},
 	}
 	err = core.SetIndexService(im)
 	assert.Nil(t, err)
@@ -741,6 +756,37 @@ func TestMasterService(t *testing.T) {
 		})
 	})
 
+	t.Run("drop index", func(t *testing.T) {
+		req := &milvuspb.DropIndexRequest{
+			Base: &commonpb.MsgBase{
+				MsgType:   commonpb.MsgType_kDropIndex,
+				MsgID:     215,
+				Timestamp: 215,
+				SourceID:  215,
+			},
+			DbName:         "",
+			CollectionName: "testColl",
+			FieldName:      "vector",
+			IndexName:      Params.DefaultIndexName,
+		}
+		idx, err := core.MetaTable.GetIndexByName("testColl", "vector", Params.DefaultIndexName)
+		assert.Nil(t, err)
+		assert.Equal(t, len(idx), 1)
+
+		rsp, err := core.DropIndex(req)
+		assert.Nil(t, err)
+		assert.Equal(t, rsp.ErrorCode, commonpb.ErrorCode_SUCCESS)
+
+		im.mutex.Lock()
+		assert.Equal(t, len(im.idxDropID), 1)
+		assert.Equal(t, im.idxDropID[0], idx[0].IndexID)
+		im.mutex.Unlock()
+
+		idx, err = core.MetaTable.GetIndexByName("testColl", "vector", Params.DefaultIndexName)
+		assert.Nil(t, err)
+		assert.Equal(t, len(idx), 0)
+	})
+
 	t.Run("drop partition", func(t *testing.T) {
 		req := &milvuspb.DropPartitionRequest{
 			Base: &commonpb.MsgBase{
diff --git a/internal/masterservice/meta_table.go b/internal/masterservice/meta_table.go
index d187f3288caf84c6d19a0623e835e955600850f8..bece3621b45ac9596e9bd35cc7c62bb724720ab6 100644
--- a/internal/masterservice/meta_table.go
+++ b/internal/masterservice/meta_table.go
@@ -563,6 +563,81 @@ func (mt *metaTable) AddIndex(seg *pb.SegmentIndexInfo) error {
 	return nil
 }
 
+func (mt *metaTable) DropIndex(collName, fieldName, indexName string) (typeutil.UniqueID, bool, error) {
+	mt.ddLock.Lock()
+	defer mt.ddLock.Unlock()
+
+	collID, ok := mt.collName2ID[collName]
+	if !ok {
+		return 0, false, errors.Errorf("collection name = %s not exist", collName)
+	}
+	collMeta, ok := mt.collID2Meta[collID]
+	if !ok {
+		return 0, false, errors.Errorf("collection name  = %s not has meta", collName)
+	}
+	fieldSch, err := mt.unlockGetFieldSchema(collName, fieldName)
+	if err != nil {
+		return 0, false, err
+	}
+	fieldIdxInfo := make([]*pb.FieldIndexInfo, 0, len(collMeta.FieldIndexes))
+	var dropIdxID typeutil.UniqueID
+	for i, info := range collMeta.FieldIndexes {
+		if info.FiledID != fieldSch.FieldID {
+			fieldIdxInfo = append(fieldIdxInfo, info)
+			continue
+		}
+		idxMeta, ok := mt.indexID2Meta[info.IndexID]
+		if !ok {
+			fieldIdxInfo = append(fieldIdxInfo, info)
+			log.Printf("index id = %d not has meta", info.IndexID)
+			continue
+		}
+		if idxMeta.IndexName != indexName {
+			fieldIdxInfo = append(fieldIdxInfo, info)
+			continue
+		}
+		dropIdxID = info.IndexID
+		fieldIdxInfo = append(fieldIdxInfo, collMeta.FieldIndexes[i+1:]...)
+		break
+	}
+	if len(fieldIdxInfo) == len(collMeta.FieldIndexes) {
+		log.Printf("collection = %s, field = %s, index = %s not found", collName, fieldName, indexName)
+		return 0, false, nil
+	}
+	collMeta.FieldIndexes = fieldIdxInfo
+	mt.collID2Meta[collID] = collMeta
+	saveMeta := map[string]string{path.Join(CollectionMetaPrefix, strconv.FormatInt(collID, 10)): proto.MarshalTextString(&collMeta)}
+
+	delete(mt.indexID2Meta, dropIdxID)
+	delMeta := []string{path.Join(IndexMetaPrefix, strconv.FormatInt(dropIdxID, 10))}
+
+	for _, partID := range collMeta.PartitionIDs {
+		partMeta, ok := mt.partitionID2Meta[partID]
+		if !ok {
+			log.Printf("partition id = %d not exist", partID)
+			continue
+		}
+		for _, segID := range partMeta.SegmentIDs {
+			segInfo, ok := mt.segID2IndexMeta[segID]
+			if ok {
+				_, ok := (*segInfo)[dropIdxID]
+				if ok {
+					delete(*segInfo, dropIdxID)
+					delMeta = append(delMeta, path.Join(SegmentIndexMetaPrefix, strconv.FormatInt(segID, 10), strconv.FormatInt(dropIdxID, 10)))
+				}
+			}
+		}
+	}
+
+	err = mt.client.MultiSaveAndRemove(saveMeta, delMeta)
+	if err != nil {
+		_ = mt.reloadFromKV()
+		return 0, false, err
+	}
+
+	return dropIdxID, true, nil
+}
+
 func (mt *metaTable) GetSegmentIndexInfoByID(segID typeutil.UniqueID, filedID int64, idxName string) (pb.SegmentIndexInfo, error) {
 	mt.ddLock.RLock()
 	defer mt.ddLock.RUnlock()
diff --git a/internal/masterservice/meta_table_test.go b/internal/masterservice/meta_table_test.go
index 27397955f4c354b0c2f5deda641996baf8b6d073..a45b7fbb115a4d71b44df9c02f40e5e274924f58 100644
--- a/internal/masterservice/meta_table_test.go
+++ b/internal/masterservice/meta_table_test.go
@@ -215,4 +215,28 @@ func TestMetaTable(t *testing.T) {
 		assert.Zero(t, len(idx))
 	})
 
+	t.Run("drop index", func(t *testing.T) {
+		idx, ok, err := mt.DropIndex("testColl", "field110", "field110")
+		assert.Nil(t, err)
+		assert.True(t, ok)
+		assert.Equal(t, idx, int64(10000))
+
+		_, ok, err = mt.DropIndex("testColl", "field110", "field110-error")
+		assert.Nil(t, err)
+		assert.False(t, ok)
+
+		idxs, err := mt.GetIndexByName("testColl", "field110", "field110")
+		assert.Nil(t, err)
+		assert.Zero(t, len(idxs))
+
+		idxs, err = mt.GetIndexByName("testColl", "field110", "field110-1")
+		assert.Nil(t, err)
+		assert.Equal(t, len(idxs), 1)
+		assert.Equal(t, idxs[0].IndexID, int64(2001))
+
+		_, err = mt.GetSegmentIndexInfoByID(100, -1, "")
+		assert.NotNil(t, err)
+
+	})
+
 }
diff --git a/internal/masterservice/task.go b/internal/masterservice/task.go
index 722f030044bc6dcadfc64a8b6544ab37c12a0783..269397618981ecc011c086a86e626d10f7c613e2 100644
--- a/internal/masterservice/task.go
+++ b/internal/masterservice/task.go
@@ -659,6 +659,34 @@ func (t *DescribeIndexReqTask) Execute() error {
 	return nil
 }
 
+type DropIndexReqTask struct {
+	baseReqTask
+	Req *milvuspb.DropIndexRequest
+}
+
+func (t *DropIndexReqTask) Type() commonpb.MsgType {
+	return t.Req.Base.MsgType
+}
+
+func (t *DropIndexReqTask) Ts() (typeutil.Timestamp, error) {
+	return t.Req.Base.Timestamp, nil
+}
+
+func (t *DropIndexReqTask) IgnoreTimeStamp() bool {
+	return false
+}
+
+func (t *DropIndexReqTask) Execute() error {
+	dropID, isDropped, err := t.core.MetaTable.DropIndex(t.Req.CollectionName, t.Req.FieldName, t.Req.IndexName)
+	if err != nil {
+		return err
+	}
+	if isDropped {
+		return t.core.DropIndexReq(dropID)
+	}
+	return nil
+}
+
 type CreateIndexTask struct {
 	core        *Core
 	segmentID   typeutil.UniqueID
diff --git a/internal/proto/common.proto b/internal/proto/common.proto
index 85537b849d988facd953008b2c32e6c914d4b765..8f93332e315178f61b0d25747113dcfdf738cf88 100644
--- a/internal/proto/common.proto
+++ b/internal/proto/common.proto
@@ -103,6 +103,7 @@ enum MsgType {
     /* Definition Requests: Index */
     kCreateIndex = 300;
     kDescribeIndex = 301;
+    kDropIndex = 302;
 
     /* Manipulation Requests */
     kInsert = 400;
diff --git a/internal/proto/commonpb/common.pb.go b/internal/proto/commonpb/common.pb.go
index 860f794266eeba8c5c8b932fe960e7edf1f0d07c..a7b6cb73e8956d40c60a7e2aec701dcaa89d4335 100644
--- a/internal/proto/commonpb/common.pb.go
+++ b/internal/proto/commonpb/common.pb.go
@@ -213,6 +213,7 @@ const (
 	// Definition Requests: Index
 	MsgType_kCreateIndex   MsgType = 300
 	MsgType_kDescribeIndex MsgType = 301
+	MsgType_kDropIndex     MsgType = 302
 	// Manipulation Requests
 	MsgType_kInsert MsgType = 400
 	MsgType_kDelete MsgType = 401
@@ -257,6 +258,7 @@ var MsgType_name = map[int32]string{
 	251:  "kDescribeSegment",
 	300:  "kCreateIndex",
 	301:  "kDescribeIndex",
+	302:  "kDropIndex",
 	400:  "kInsert",
 	401:  "kDelete",
 	402:  "kFlush",
@@ -297,6 +299,7 @@ var MsgType_value = map[string]int32{
 	"kDescribeSegment":         251,
 	"kCreateIndex":             300,
 	"kDescribeIndex":           301,
+	"kDropIndex":               302,
 	"kInsert":                  400,
 	"kDelete":                  401,
 	"kFlush":                   402,
@@ -655,81 +658,82 @@ func init() {
 func init() { proto.RegisterFile("common.proto", fileDescriptor_555bd8c177793206) }
 
 var fileDescriptor_555bd8c177793206 = []byte{
-	// 1214 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x55, 0xcb, 0x6e, 0xdb, 0x46,
-	0x17, 0x8e, 0x2e, 0xb6, 0xcc, 0x23, 0x45, 0x1e, 0x8f, 0x6f, 0xfa, 0xff, 0xba, 0x45, 0xe0, 0x55,
-	0x60, 0x20, 0x76, 0xd1, 0x02, 0xed, 0x2a, 0x40, 0x65, 0x72, 0x64, 0x13, 0xa1, 0x48, 0x65, 0x48,
-	0xa5, 0x49, 0xbb, 0x20, 0x28, 0x69, 0x22, 0xb3, 0xa2, 0x44, 0x95, 0x33, 0x4a, 0xa2, 0xac, 0xfb,
-	0x00, 0x6d, 0x9e, 0xa3, 0x05, 0x7a, 0x6f, 0x1f, 0xa1, 0xf7, 0x75, 0x1f, 0xa1, 0x0f, 0xd0, 0x1b,
-	0xda, 0x4d, 0x31, 0x43, 0x52, 0x22, 0x8a, 0x74, 0xc7, 0xf3, 0x9d, 0x39, 0xdf, 0x9c, 0xef, 0x9b,
-	0x33, 0x1c, 0x68, 0x0c, 0xe3, 0xe9, 0x34, 0x9e, 0x9d, 0xce, 0x93, 0x58, 0xc4, 0x78, 0x77, 0x1a,
-	0x46, 0x8f, 0x16, 0x3c, 0x8d, 0x4e, 0xd3, 0xd4, 0x71, 0x0d, 0x36, 0xc8, 0x74, 0x2e, 0x96, 0xc7,
-	0x3e, 0x6c, 0xba, 0x22, 0x10, 0x0b, 0x8e, 0x6f, 0x03, 0xb0, 0x24, 0x89, 0x13, 0x7f, 0x18, 0x8f,
-	0x58, 0xab, 0x74, 0xa3, 0x74, 0xb3, 0xf9, 0xca, 0x4b, 0xa7, 0xcf, 0x29, 0x3e, 0x25, 0x72, 0x99,
-	0x1e, 0x8f, 0x18, 0xd5, 0x58, 0xfe, 0x89, 0x0f, 0x60, 0x33, 0x61, 0x01, 0x8f, 0x67, 0xad, 0xf2,
-	0x8d, 0xd2, 0x4d, 0x8d, 0x66, 0xd1, 0xf1, 0x6b, 0xd0, 0xb8, 0xc3, 0x96, 0xf7, 0x82, 0x68, 0xc1,
-	0x7a, 0x41, 0x98, 0x60, 0x04, 0x95, 0x09, 0x5b, 0x2a, 0x7e, 0x8d, 0xca, 0x4f, 0xbc, 0x07, 0x1b,
-	0x8f, 0x64, 0x3a, 0x2b, 0x4c, 0x83, 0xe3, 0x23, 0xa8, 0x9e, 0x47, 0xf1, 0x60, 0x9d, 0x95, 0x15,
-	0x8d, 0x3c, 0x7b, 0x0b, 0x6a, 0xed, 0xd1, 0x28, 0x61, 0x9c, 0xe3, 0x26, 0x94, 0xc3, 0x79, 0xc6,
-	0x57, 0x0e, 0xe7, 0x18, 0x43, 0x75, 0x1e, 0x27, 0x42, 0xb1, 0x55, 0xa8, 0xfa, 0x3e, 0x7e, 0x56,
-	0x82, 0x5a, 0x97, 0x8f, 0xcf, 0x03, 0xce, 0xf0, 0xeb, 0xb0, 0x35, 0xe5, 0x63, 0x5f, 0x2c, 0xe7,
-	0xb9, 0xca, 0xa3, 0xe7, 0xaa, 0xec, 0xf2, 0xb1, 0xb7, 0x9c, 0x33, 0x5a, 0x9b, 0xa6, 0x1f, 0xb2,
-	0x93, 0x29, 0x1f, 0x9b, 0x46, 0xc6, 0x9c, 0x06, 0xf8, 0x08, 0x34, 0x11, 0x4e, 0x19, 0x17, 0xc1,
-	0x74, 0xde, 0xaa, 0xdc, 0x28, 0xdd, 0xac, 0xd2, 0x35, 0x80, 0xff, 0x0f, 0x5b, 0x3c, 0x5e, 0x24,
-	0x43, 0x66, 0x1a, 0xad, 0xaa, 0x2a, 0x5b, 0xc5, 0xc7, 0xb7, 0x41, 0xeb, 0xf2, 0xf1, 0x25, 0x0b,
-	0x46, 0x2c, 0xc1, 0x2f, 0x43, 0x75, 0x10, 0xf0, 0xb4, 0xa3, 0xfa, 0x7f, 0x77, 0x24, 0x15, 0x50,
-	0xb5, 0xf2, 0xe4, 0xeb, 0x2a, 0x68, 0xab, 0x93, 0xc0, 0x75, 0xa8, 0xb9, 0x7d, 0x5d, 0x27, 0xae,
-	0x8b, 0xae, 0xe1, 0x3d, 0x40, 0x7d, 0x9b, 0xdc, 0xef, 0x11, 0xdd, 0x23, 0x86, 0x4f, 0x28, 0x75,
-	0x28, 0x2a, 0x61, 0x0c, 0x4d, 0xdd, 0xb1, 0x6d, 0xa2, 0x7b, 0x7e, 0xa7, 0x6d, 0x5a, 0xc4, 0x40,
-	0x65, 0xbc, 0x0f, 0x3b, 0x3d, 0x42, 0xbb, 0xa6, 0xeb, 0x9a, 0x8e, 0xed, 0x1b, 0xc4, 0x36, 0x89,
-	0x81, 0x2a, 0xf8, 0x7f, 0xb0, 0xaf, 0x3b, 0x96, 0x45, 0x74, 0x4f, 0xc2, 0xb6, 0xe3, 0xf9, 0xe4,
-	0xbe, 0xe9, 0x7a, 0x2e, 0xaa, 0x4a, 0x6e, 0xd3, 0xb2, 0xc8, 0x45, 0xdb, 0xf2, 0xdb, 0xf4, 0xa2,
-	0xdf, 0x25, 0xb6, 0x87, 0x36, 0x24, 0x4f, 0x8e, 0x1a, 0x66, 0x97, 0xd8, 0x92, 0x0e, 0xd5, 0xf0,
-	0x01, 0xe0, 0x1c, 0x36, 0x6d, 0x83, 0xdc, 0xf7, 0xbd, 0x07, 0x3d, 0x82, 0xb6, 0xf0, 0x0b, 0x70,
-	0x98, 0xe3, 0xc5, 0x7d, 0xda, 0x5d, 0x82, 0x34, 0x8c, 0xa0, 0x91, 0x27, 0x3d, 0xa7, 0x77, 0x07,
-	0x41, 0x91, 0x9d, 0x3a, 0x6f, 0x52, 0xa2, 0x3b, 0xd4, 0x40, 0xf5, 0x22, 0x7c, 0x8f, 0xe8, 0x9e,
-	0x43, 0x7d, 0xd3, 0x40, 0x0d, 0xd9, 0x7c, 0x0e, 0xbb, 0xa4, 0x4d, 0xf5, 0x4b, 0x9f, 0x12, 0xb7,
-	0x6f, 0x79, 0xe8, 0xba, 0xb4, 0xa0, 0x63, 0x5a, 0x44, 0x29, 0xea, 0x38, 0x7d, 0xdb, 0x40, 0x4d,
-	0xbc, 0x0d, 0xf5, 0x2e, 0xf1, 0xda, 0xb9, 0x27, 0xdb, 0x72, 0x7f, 0xbd, 0xad, 0x5f, 0x92, 0x1c,
-	0x41, 0xb8, 0x05, 0x7b, 0x7a, 0xdb, 0x96, 0x45, 0x3a, 0x25, 0x6d, 0x8f, 0xf8, 0x1d, 0xc7, 0x32,
-	0x08, 0x45, 0x3b, 0x52, 0xe0, 0xbf, 0x32, 0xa6, 0x45, 0x10, 0x2e, 0x54, 0x18, 0xc4, 0x22, 0xeb,
-	0x8a, 0xdd, 0x42, 0x45, 0x9e, 0x91, 0x15, 0x7b, 0x52, 0xcc, 0x79, 0xdf, 0xb4, 0x8c, 0xcc, 0xa8,
-	0xf4, 0xd0, 0xf6, 0xf1, 0x0e, 0x5c, 0xcf, 0xc5, 0xd8, 0x96, 0xe9, 0x7a, 0xe8, 0x00, 0x1f, 0xc2,
-	0x6e, 0x0e, 0x75, 0x89, 0x47, 0x4d, 0x3d, 0x75, 0xf5, 0x50, 0xae, 0x75, 0xfa, 0x9e, 0xef, 0x74,
-	0xfc, 0x2e, 0xe9, 0x3a, 0xf4, 0x01, 0x6a, 0xe1, 0x3d, 0xd8, 0x36, 0x0c, 0x9f, 0x92, 0xbb, 0x7d,
-	0xe2, 0x7a, 0x3e, 0x6d, 0xeb, 0x04, 0xfd, 0x52, 0x3b, 0x79, 0x1b, 0xc0, 0x9c, 0x8d, 0xd8, 0x13,
-	0x79, 0xf3, 0x19, 0xde, 0x82, 0xaa, 0xed, 0xd8, 0x04, 0x5d, 0xc3, 0x0d, 0xd8, 0xea, 0xdb, 0xa6,
-	0xeb, 0xf6, 0x89, 0x81, 0x4a, 0xb8, 0x09, 0x60, 0xda, 0x3d, 0xea, 0x5c, 0x50, 0x39, 0x55, 0x65,
-	0x99, 0xed, 0x98, 0xb6, 0xe9, 0x5e, 0xaa, 0x11, 0x01, 0xd8, 0xcc, 0xfc, 0xa9, 0xca, 0xe1, 0x4b,
-	0xc5, 0x18, 0x68, 0xe3, 0x24, 0x86, 0x86, 0xcb, 0xc6, 0x53, 0x36, 0x13, 0x29, 0xfd, 0x36, 0xd4,
-	0xb3, 0xd8, 0x8e, 0x67, 0x0c, 0x5d, 0xc3, 0xbb, 0xb0, 0xbd, 0x02, 0x04, 0x79, 0x12, 0x72, 0x91,
-	0x0e, 0x67, 0x06, 0x5e, 0x24, 0xf1, 0xe3, 0x70, 0x36, 0x46, 0x65, 0xa9, 0x27, 0x67, 0x62, 0x41,
-	0xc4, 0x46, 0xa8, 0x52, 0x58, 0xd6, 0x89, 0x16, 0xfc, 0x8a, 0x8d, 0x50, 0xf5, 0xe4, 0xbd, 0x4d,
-	0x75, 0xb9, 0xd5, 0x1d, 0xd5, 0x60, 0x63, 0x92, 0x6d, 0xb3, 0x0f, 0x3b, 0x13, 0x3d, 0x61, 0x81,
-	0x60, 0x7a, 0x1c, 0x45, 0x6c, 0x28, 0xc2, 0x78, 0x86, 0x46, 0x72, 0xf7, 0x89, 0x91, 0xc4, 0xf3,
-	0x02, 0xc8, 0x24, 0xed, 0xe4, 0x32, 0xe0, 0x05, 0xec, 0xa1, 0xb4, 0x79, 0x62, 0x30, 0x3e, 0x4c,
-	0xc2, 0x41, 0x91, 0x61, 0x2c, 0x6f, 0xc0, 0xc4, 0xbd, 0x8a, 0x1f, 0xaf, 0x41, 0x8e, 0xae, 0x14,
-	0xc5, 0x05, 0x13, 0xee, 0x92, 0xeb, 0xf1, 0xec, 0x61, 0x38, 0xe6, 0x28, 0x54, 0x7b, 0x59, 0x71,
-	0x30, 0x2a, 0x94, 0xbf, 0x23, 0x07, 0x60, 0x42, 0x59, 0xc4, 0x02, 0x5e, 0xa4, 0x9d, 0xe0, 0x7d,
-	0x40, 0x59, 0xbf, 0xbd, 0x20, 0x11, 0xa1, 0x42, 0xbf, 0x29, 0xe1, 0x5d, 0x68, 0xaa, 0x7e, 0xd7,
-	0xe0, 0xb7, 0xd2, 0xad, 0xeb, 0xb2, 0xdf, 0x35, 0xf6, 0x5d, 0x09, 0x1f, 0x02, 0x5e, 0xf5, 0xbb,
-	0x4e, 0x7c, 0x5f, 0x92, 0x33, 0xa0, 0xfa, 0x5d, 0x81, 0x1c, 0xfd, 0x90, 0xf2, 0xca, 0xde, 0xd6,
-	0x4b, 0x7f, 0x2c, 0xe1, 0x03, 0xd8, 0xc9, 0x7b, 0x5b, 0xe3, 0x3f, 0x95, 0xf0, 0x0e, 0x34, 0x14,
-	0x45, 0xe6, 0x3d, 0xfa, 0xab, 0xa4, 0xda, 0xcd, 0xb7, 0xcb, 0xe1, 0xbf, 0xd3, 0x95, 0xa9, 0x0a,
-	0x35, 0x61, 0xe8, 0xc3, 0x72, 0xaa, 0x20, 0x5b, 0x99, 0x82, 0x1f, 0xc9, 0x61, 0xaa, 0x4d, 0xcc,
-	0x19, 0x67, 0x89, 0x40, 0xef, 0x57, 0x54, 0x64, 0xb0, 0x88, 0x09, 0x86, 0x3e, 0xa8, 0xe0, 0x3a,
-	0x6c, 0x4e, 0xd4, 0xf1, 0xa2, 0x67, 0x69, 0xca, 0x65, 0x41, 0x32, 0xbc, 0x42, 0xbf, 0x56, 0x94,
-	0xf0, 0x34, 0xa2, 0x8c, 0x2f, 0x22, 0x81, 0x7e, 0xab, 0x28, 0xfe, 0x0b, 0x26, 0xd6, 0x13, 0x8d,
-	0x7e, 0xaf, 0xe0, 0x17, 0xa1, 0x25, 0xc1, 0xb5, 0xc3, 0x32, 0x13, 0x72, 0x11, 0x0e, 0x39, 0xfa,
-	0xa3, 0x82, 0x8f, 0xe0, 0x50, 0xa6, 0x57, 0x22, 0x0b, 0xd9, 0x3f, 0x2b, 0xa9, 0xdc, 0x54, 0x93,
-	0x39, 0x7b, 0x18, 0xa3, 0x9f, 0xab, 0xb8, 0x09, 0xda, 0xc4, 0x0b, 0xa7, 0xcc, 0x0b, 0x87, 0x13,
-	0xf4, 0xb1, 0xa6, 0x4c, 0xbd, 0xbb, 0x60, 0xc9, 0xd2, 0x8e, 0x47, 0x4c, 0x56, 0x73, 0xf4, 0x89,
-	0x86, 0xb7, 0x01, 0x94, 0xa9, 0xa9, 0xcc, 0x4f, 0x53, 0x80, 0xb2, 0x77, 0x17, 0x8c, 0x0b, 0xd3,
-	0x40, 0x9f, 0xc9, 0x9f, 0x5b, 0x3d, 0x07, 0x3c, 0xd7, 0x41, 0x9f, 0x6b, 0xca, 0xc8, 0x76, 0x14,
-	0xc5, 0xc3, 0x40, 0xac, 0x8c, 0xfc, 0x42, 0x53, 0xc7, 0x59, 0xb8, 0x47, 0x59, 0x73, 0x5f, 0x6a,
-	0xea, 0x8c, 0x8a, 0x77, 0xc0, 0x90, 0xe3, 0xfe, 0x95, 0x76, 0x7e, 0xfe, 0xd6, 0x1b, 0xe3, 0x50,
-	0x5c, 0x2d, 0x06, 0xf2, 0xb9, 0x38, 0x7b, 0x1a, 0x46, 0x51, 0xf8, 0x54, 0xb0, 0xe1, 0xd5, 0x59,
-	0xfa, 0x94, 0xdc, 0x1a, 0x85, 0x5c, 0x24, 0xe1, 0x60, 0x21, 0xd8, 0xe8, 0x2c, 0x9c, 0x09, 0x96,
-	0xcc, 0x82, 0xe8, 0x4c, 0xbd, 0x2f, 0x67, 0xe9, 0xfb, 0x32, 0x1f, 0x0c, 0x36, 0x55, 0xfc, 0xea,
-	0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x87, 0x60, 0x0f, 0x2d, 0x42, 0x08, 0x00, 0x00,
+	// 1222 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x55, 0xdb, 0x6e, 0xdb, 0xc6,
+	0x16, 0x8d, 0x2e, 0xb6, 0xcc, 0x2d, 0x45, 0x1e, 0x8f, 0x6f, 0x3a, 0xe7, 0xf8, 0x14, 0x81, 0x9f,
+	0x02, 0x03, 0xb1, 0x8b, 0x16, 0x68, 0x9f, 0x02, 0x54, 0x26, 0x47, 0x36, 0x11, 0x8a, 0x54, 0x86,
+	0x54, 0x9a, 0xb4, 0x0f, 0x04, 0x25, 0x4d, 0x64, 0x56, 0x94, 0xa8, 0x72, 0x46, 0x49, 0x94, 0xaf,
+	0x68, 0x03, 0xf4, 0x2f, 0xda, 0xa2, 0xf7, 0xf6, 0x13, 0x7a, 0x7f, 0xee, 0x27, 0xf4, 0x03, 0x7a,
+	0x43, 0xfb, 0x52, 0xcc, 0x90, 0x94, 0x88, 0x22, 0x7d, 0xe3, 0x5e, 0x7b, 0xf6, 0x9a, 0xbd, 0xd6,
+	0xec, 0xe1, 0x40, 0x63, 0x18, 0x4f, 0xa7, 0xf1, 0xec, 0x74, 0x9e, 0xc4, 0x22, 0xc6, 0xbb, 0xd3,
+	0x30, 0x7a, 0xb4, 0xe0, 0x69, 0x74, 0x9a, 0xa6, 0x8e, 0x6b, 0xb0, 0x41, 0xa6, 0x73, 0xb1, 0x3c,
+	0xf6, 0x61, 0xd3, 0x15, 0x81, 0x58, 0x70, 0x7c, 0x1b, 0x80, 0x25, 0x49, 0x9c, 0xf8, 0xc3, 0x78,
+	0xc4, 0x5a, 0xa5, 0x1b, 0xa5, 0x9b, 0xcd, 0x97, 0x5e, 0x38, 0x7d, 0x4e, 0xf1, 0x29, 0x91, 0xcb,
+	0xf4, 0x78, 0xc4, 0xa8, 0xc6, 0xf2, 0x4f, 0x7c, 0x00, 0x9b, 0x09, 0x0b, 0x78, 0x3c, 0x6b, 0x95,
+	0x6f, 0x94, 0x6e, 0x6a, 0x34, 0x8b, 0x8e, 0x5f, 0x81, 0xc6, 0x1d, 0xb6, 0xbc, 0x17, 0x44, 0x0b,
+	0xd6, 0x0b, 0xc2, 0x04, 0x23, 0xa8, 0x4c, 0xd8, 0x52, 0xf1, 0x6b, 0x54, 0x7e, 0xe2, 0x3d, 0xd8,
+	0x78, 0x24, 0xd3, 0x59, 0x61, 0x1a, 0x1c, 0x1f, 0x41, 0xf5, 0x3c, 0x8a, 0x07, 0xeb, 0xac, 0xac,
+	0x68, 0xe4, 0xd9, 0x5b, 0x50, 0x6b, 0x8f, 0x46, 0x09, 0xe3, 0x1c, 0x37, 0xa1, 0x1c, 0xce, 0x33,
+	0xbe, 0x72, 0x38, 0xc7, 0x18, 0xaa, 0xf3, 0x38, 0x11, 0x8a, 0xad, 0x42, 0xd5, 0xf7, 0xf1, 0xb3,
+	0x12, 0xd4, 0xba, 0x7c, 0x7c, 0x1e, 0x70, 0x86, 0x5f, 0x85, 0xad, 0x29, 0x1f, 0xfb, 0x62, 0x39,
+	0xcf, 0x55, 0x1e, 0x3d, 0x57, 0x65, 0x97, 0x8f, 0xbd, 0xe5, 0x9c, 0xd1, 0xda, 0x34, 0xfd, 0x90,
+	0x9d, 0x4c, 0xf9, 0xd8, 0x34, 0x32, 0xe6, 0x34, 0xc0, 0x47, 0xa0, 0x89, 0x70, 0xca, 0xb8, 0x08,
+	0xa6, 0xf3, 0x56, 0xe5, 0x46, 0xe9, 0x66, 0x95, 0xae, 0x01, 0xfc, 0x5f, 0xd8, 0xe2, 0xf1, 0x22,
+	0x19, 0x32, 0xd3, 0x68, 0x55, 0x55, 0xd9, 0x2a, 0x3e, 0xbe, 0x0d, 0x5a, 0x97, 0x8f, 0x2f, 0x59,
+	0x30, 0x62, 0x09, 0x7e, 0x11, 0xaa, 0x83, 0x80, 0xa7, 0x1d, 0xd5, 0xff, 0xbd, 0x23, 0xa9, 0x80,
+	0xaa, 0x95, 0x27, 0x5f, 0x55, 0x41, 0x5b, 0x9d, 0x04, 0xae, 0x43, 0xcd, 0xed, 0xeb, 0x3a, 0x71,
+	0x5d, 0x74, 0x0d, 0xef, 0x01, 0xea, 0xdb, 0xe4, 0x7e, 0x8f, 0xe8, 0x1e, 0x31, 0x7c, 0x42, 0xa9,
+	0x43, 0x51, 0x09, 0x63, 0x68, 0xea, 0x8e, 0x6d, 0x13, 0xdd, 0xf3, 0x3b, 0x6d, 0xd3, 0x22, 0x06,
+	0x2a, 0xe3, 0x7d, 0xd8, 0xe9, 0x11, 0xda, 0x35, 0x5d, 0xd7, 0x74, 0x6c, 0xdf, 0x20, 0xb6, 0x49,
+	0x0c, 0x54, 0xc1, 0xff, 0x81, 0x7d, 0xdd, 0xb1, 0x2c, 0xa2, 0x7b, 0x12, 0xb6, 0x1d, 0xcf, 0x27,
+	0xf7, 0x4d, 0xd7, 0x73, 0x51, 0x55, 0x72, 0x9b, 0x96, 0x45, 0x2e, 0xda, 0x96, 0xdf, 0xa6, 0x17,
+	0xfd, 0x2e, 0xb1, 0x3d, 0xb4, 0x21, 0x79, 0x72, 0xd4, 0x30, 0xbb, 0xc4, 0x96, 0x74, 0xa8, 0x86,
+	0x0f, 0x00, 0xe7, 0xb0, 0x69, 0x1b, 0xe4, 0xbe, 0xef, 0x3d, 0xe8, 0x11, 0xb4, 0x85, 0xff, 0x07,
+	0x87, 0x39, 0x5e, 0xdc, 0xa7, 0xdd, 0x25, 0x48, 0xc3, 0x08, 0x1a, 0x79, 0xd2, 0x73, 0x7a, 0x77,
+	0x10, 0x14, 0xd9, 0xa9, 0xf3, 0x3a, 0x25, 0xba, 0x43, 0x0d, 0x54, 0x2f, 0xc2, 0xf7, 0x88, 0xee,
+	0x39, 0xd4, 0x37, 0x0d, 0xd4, 0x90, 0xcd, 0xe7, 0xb0, 0x4b, 0xda, 0x54, 0xbf, 0xf4, 0x29, 0x71,
+	0xfb, 0x96, 0x87, 0xae, 0x4b, 0x0b, 0x3a, 0xa6, 0x45, 0x94, 0xa2, 0x8e, 0xd3, 0xb7, 0x0d, 0xd4,
+	0xc4, 0xdb, 0x50, 0xef, 0x12, 0xaf, 0x9d, 0x7b, 0xb2, 0x2d, 0xf7, 0xd7, 0xdb, 0xfa, 0x25, 0xc9,
+	0x11, 0x84, 0x5b, 0xb0, 0xa7, 0xb7, 0x6d, 0x59, 0xa4, 0x53, 0xd2, 0xf6, 0x88, 0xdf, 0x71, 0x2c,
+	0x83, 0x50, 0xb4, 0x23, 0x05, 0xfe, 0x23, 0x63, 0x5a, 0x04, 0xe1, 0x42, 0x85, 0x41, 0x2c, 0xb2,
+	0xae, 0xd8, 0x2d, 0x54, 0xe4, 0x19, 0x59, 0xb1, 0x27, 0xc5, 0x9c, 0xf7, 0x4d, 0xcb, 0xc8, 0x8c,
+	0x4a, 0x0f, 0x6d, 0x1f, 0xef, 0xc0, 0xf5, 0x5c, 0x8c, 0x6d, 0x99, 0xae, 0x87, 0x0e, 0xf0, 0x21,
+	0xec, 0xe6, 0x50, 0x97, 0x78, 0xd4, 0xd4, 0x53, 0x57, 0x0f, 0xe5, 0x5a, 0xa7, 0xef, 0xf9, 0x4e,
+	0xc7, 0xef, 0x92, 0xae, 0x43, 0x1f, 0xa0, 0x16, 0xde, 0x83, 0x6d, 0xc3, 0xf0, 0x29, 0xb9, 0xdb,
+	0x27, 0xae, 0xe7, 0xd3, 0xb6, 0x4e, 0xd0, 0xcf, 0xb5, 0x93, 0x37, 0x01, 0xcc, 0xd9, 0x88, 0x3d,
+	0x91, 0x37, 0x9f, 0xe1, 0x2d, 0xa8, 0xda, 0x8e, 0x4d, 0xd0, 0x35, 0xdc, 0x80, 0xad, 0xbe, 0x6d,
+	0xba, 0x6e, 0x9f, 0x18, 0xa8, 0x84, 0x9b, 0x00, 0xa6, 0xdd, 0xa3, 0xce, 0x05, 0x95, 0x53, 0x55,
+	0x96, 0xd9, 0x8e, 0x69, 0x9b, 0xee, 0xa5, 0x1a, 0x11, 0x80, 0xcd, 0xcc, 0x9f, 0xaa, 0x1c, 0xbe,
+	0x54, 0x8c, 0x81, 0x36, 0x4e, 0x62, 0x68, 0xb8, 0x6c, 0x3c, 0x65, 0x33, 0x91, 0xd2, 0x6f, 0x43,
+	0x3d, 0x8b, 0xed, 0x78, 0xc6, 0xd0, 0x35, 0xbc, 0x0b, 0xdb, 0x2b, 0x40, 0x90, 0x27, 0x21, 0x17,
+	0xe9, 0x70, 0x66, 0xe0, 0x45, 0x12, 0x3f, 0x0e, 0x67, 0x63, 0x54, 0x96, 0x7a, 0x72, 0x26, 0x16,
+	0x44, 0x6c, 0x84, 0x2a, 0x85, 0x65, 0x9d, 0x68, 0xc1, 0xaf, 0xd8, 0x08, 0x55, 0x4f, 0xde, 0xdb,
+	0x54, 0x97, 0x5b, 0xdd, 0x51, 0x0d, 0x36, 0x26, 0xd9, 0x36, 0xfb, 0xb0, 0x33, 0xd1, 0x13, 0x16,
+	0x08, 0xa6, 0xc7, 0x51, 0xc4, 0x86, 0x22, 0x8c, 0x67, 0x68, 0x24, 0x77, 0x9f, 0x18, 0x49, 0x3c,
+	0x2f, 0x80, 0x4c, 0xd2, 0x4e, 0x2e, 0x03, 0x5e, 0xc0, 0x1e, 0x4a, 0x9b, 0x27, 0x06, 0xe3, 0xc3,
+	0x24, 0x1c, 0x14, 0x19, 0xc6, 0xf2, 0x06, 0x4c, 0xdc, 0xab, 0xf8, 0xf1, 0x1a, 0xe4, 0xe8, 0x4a,
+	0x51, 0x5c, 0x30, 0xe1, 0x2e, 0xb9, 0x1e, 0xcf, 0x1e, 0x86, 0x63, 0x8e, 0x42, 0xb5, 0x97, 0x15,
+	0x07, 0xa3, 0x42, 0xf9, 0x5b, 0x72, 0x00, 0x26, 0x94, 0x45, 0x2c, 0xe0, 0x45, 0xda, 0x09, 0xde,
+	0x07, 0x94, 0xf5, 0xdb, 0x0b, 0x12, 0x11, 0x2a, 0xf4, 0xeb, 0x12, 0xde, 0x85, 0xa6, 0xea, 0x77,
+	0x0d, 0x7e, 0x23, 0xdd, 0xba, 0x2e, 0xfb, 0x5d, 0x63, 0xdf, 0x96, 0xf0, 0x21, 0xe0, 0x55, 0xbf,
+	0xeb, 0xc4, 0x77, 0x25, 0x39, 0x03, 0xaa, 0xdf, 0x15, 0xc8, 0xd1, 0xf7, 0x29, 0xaf, 0xec, 0x6d,
+	0xbd, 0xf4, 0x87, 0x12, 0x3e, 0x80, 0x9d, 0xbc, 0xb7, 0x35, 0xfe, 0x63, 0x09, 0xef, 0x40, 0x43,
+	0x51, 0x64, 0xde, 0xa3, 0x3f, 0x4b, 0xaa, 0xdd, 0x7c, 0xbb, 0x1c, 0xfe, 0x2b, 0x5d, 0x99, 0xaa,
+	0x50, 0x13, 0x86, 0xde, 0x2f, 0xa7, 0x0a, 0xb2, 0x95, 0x29, 0xf8, 0x41, 0x19, 0x6f, 0x03, 0x28,
+	0x59, 0x29, 0xf0, 0xa1, 0x9c, 0xae, 0xda, 0xc4, 0x9c, 0x71, 0x96, 0x08, 0xf4, 0x4e, 0x45, 0x45,
+	0x06, 0x8b, 0x98, 0x60, 0xe8, 0xdd, 0x0a, 0xae, 0xc3, 0xe6, 0x44, 0x9d, 0x37, 0x7a, 0x96, 0xa6,
+	0x5c, 0x16, 0x24, 0xc3, 0x2b, 0xf4, 0x4b, 0x45, 0x39, 0x91, 0x46, 0x94, 0xf1, 0x45, 0x24, 0xd0,
+	0xaf, 0x15, 0xb5, 0xe1, 0x05, 0x13, 0xeb, 0x11, 0x47, 0xbf, 0x55, 0xf0, 0xff, 0xa1, 0x25, 0xc1,
+	0xb5, 0xe5, 0x32, 0x13, 0x72, 0x11, 0x0e, 0x39, 0xfa, 0xbd, 0x82, 0x8f, 0xe0, 0x50, 0xa6, 0x57,
+	0xaa, 0x0b, 0xd9, 0x3f, 0x2a, 0xa9, 0xfe, 0x54, 0xa4, 0x39, 0x7b, 0x18, 0xa3, 0x9f, 0xaa, 0xb8,
+	0x09, 0xda, 0xc4, 0x0b, 0xa7, 0xcc, 0x0b, 0x87, 0x13, 0xf4, 0x91, 0xa6, 0x5c, 0xbe, 0xbb, 0x60,
+	0xc9, 0xd2, 0x8e, 0x47, 0x4c, 0x56, 0x73, 0xf4, 0xb1, 0xa6, 0x64, 0x4a, 0x97, 0x53, 0x99, 0x9f,
+	0xa4, 0x00, 0x65, 0x6f, 0x2f, 0x18, 0x17, 0xa6, 0x81, 0x3e, 0x95, 0x7f, 0xbb, 0x7a, 0x0e, 0x78,
+	0xae, 0x83, 0x3e, 0xd3, 0x94, 0xb3, 0xed, 0x28, 0x8a, 0x87, 0x81, 0x58, 0x39, 0xfb, 0xb9, 0xa6,
+	0xce, 0xb7, 0x70, 0xb1, 0xb2, 0xe6, 0xbe, 0xd0, 0xd4, 0xa1, 0x15, 0x2f, 0x85, 0x21, 0xe7, 0xff,
+	0x4b, 0xed, 0xfc, 0xfc, 0x8d, 0xd7, 0xc6, 0xa1, 0xb8, 0x5a, 0x0c, 0xe4, 0xfb, 0x71, 0xf6, 0x34,
+	0x8c, 0xa2, 0xf0, 0xa9, 0x60, 0xc3, 0xab, 0xb3, 0xf4, 0x6d, 0xb9, 0x35, 0x0a, 0xb9, 0x48, 0xc2,
+	0xc1, 0x42, 0xb0, 0xd1, 0x59, 0x38, 0x13, 0x2c, 0x99, 0x05, 0xd1, 0x99, 0x7a, 0x70, 0xce, 0xd2,
+	0x07, 0x67, 0x3e, 0x18, 0x6c, 0xaa, 0xf8, 0xe5, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0xb5, 0x3d,
+	0x8c, 0x4b, 0x53, 0x08, 0x00, 0x00,
 }
diff --git a/internal/proto/index_service.proto b/internal/proto/index_service.proto
index 70236566dc47849fcb8451bf79bb98d1d72bf75e..a3d78f4df45b3ab20ff1c559b87277783a64bec5 100644
--- a/internal/proto/index_service.proto
+++ b/internal/proto/index_service.proto
@@ -85,7 +85,7 @@ message IndexMeta {
 }
 
 message DropIndexRequest {
-  int64 indexBuildIDs = 1;
+  int64 indexID = 1;
 }
 
 /****************IndexService************************/
diff --git a/internal/proto/indexpb/index_service.pb.go b/internal/proto/indexpb/index_service.pb.go
index a23ac978382edccd34c10a4054773f1f16f12c74..37f3def6693792477f6b531d788660de8e8d3264 100644
--- a/internal/proto/indexpb/index_service.pb.go
+++ b/internal/proto/indexpb/index_service.pb.go
@@ -719,7 +719,7 @@ func (m *IndexMeta) GetIndexFilePaths() []string {
 }
 
 type DropIndexRequest struct {
-	IndexBuildIDs        int64    `protobuf:"varint,1,opt,name=indexBuildIDs,proto3" json:"indexBuildIDs,omitempty"`
+	IndexID              int64    `protobuf:"varint,1,opt,name=indexID,proto3" json:"indexID,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
 	XXX_unrecognized     []byte   `json:"-"`
 	XXX_sizecache        int32    `json:"-"`
@@ -750,9 +750,9 @@ func (m *DropIndexRequest) XXX_DiscardUnknown() {
 
 var xxx_messageInfo_DropIndexRequest proto.InternalMessageInfo
 
-func (m *DropIndexRequest) GetIndexBuildIDs() int64 {
+func (m *DropIndexRequest) GetIndexID() int64 {
 	if m != nil {
-		return m.IndexBuildIDs
+		return m.IndexID
 	}
 	return 0
 }
@@ -780,16 +780,16 @@ var fileDescriptor_a5d2036b4df73e0a = []byte{
 	// 921 bytes of a gzipped FileDescriptorProto
 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0x5f, 0x6f, 0xdb, 0x54,
 	0x14, 0xaf, 0xeb, 0x36, 0x53, 0x4e, 0xb2, 0xaa, 0xbd, 0x1d, 0x55, 0x14, 0x98, 0xd6, 0x9a, 0xfd,
-	0x09, 0x93, 0x48, 0x50, 0xa6, 0x01, 0x42, 0x42, 0x68, 0x6d, 0xa0, 0x8a, 0xd0, 0xaa, 0xea, 0x6e,
+	0x09, 0x13, 0x24, 0x28, 0xd3, 0x40, 0x42, 0x42, 0x68, 0x6d, 0xa0, 0x8a, 0xd0, 0xaa, 0xea, 0x6e,
 	0x02, 0x31, 0x09, 0x55, 0x37, 0xf6, 0x49, 0x7b, 0x85, 0x7d, 0xed, 0xf9, 0xde, 0x4c, 0x74, 0x2f,
 	0x88, 0x4f, 0xc0, 0x03, 0x12, 0x5f, 0x84, 0x07, 0xbe, 0x11, 0x0f, 0xf0, 0xcc, 0x3b, 0xf2, 0xbd,
-	0xb6, 0x63, 0x27, 0x5e, 0x92, 0xaa, 0x20, 0x5e, 0x78, 0xcb, 0x39, 0xf7, 0xfc, 0xfd, 0x9d, 0xdf,
-	0x39, 0x0e, 0xec, 0x72, 0xe1, 0xe1, 0xf7, 0x67, 0x12, 0xe3, 0x57, 0xdc, 0xc5, 0x6e, 0x14, 0x87,
+	0xb6, 0x63, 0x27, 0x5e, 0x92, 0xaa, 0x20, 0x5e, 0x78, 0xcb, 0x39, 0x3e, 0x7f, 0x7f, 0xe7, 0x77,
+	0xce, 0x0d, 0xec, 0x72, 0xe1, 0xe1, 0xf7, 0x67, 0x12, 0xe3, 0x57, 0xdc, 0xc5, 0x6e, 0x14, 0x87,
 	0x2a, 0x24, 0x24, 0xe0, 0xfe, 0xab, 0x89, 0x34, 0x52, 0x57, 0x5b, 0xb4, 0x9b, 0x6e, 0x18, 0x04,
 	0xa1, 0x30, 0xba, 0xf6, 0x16, 0x17, 0x0a, 0x63, 0xc1, 0xfc, 0x54, 0x6e, 0x16, 0x3d, 0x9c, 0x1f,
 	0x60, 0x97, 0xe2, 0x39, 0x97, 0x0a, 0xe3, 0x93, 0xd0, 0x43, 0x8a, 0x2f, 0x27, 0x28, 0x15, 0xf9,
-	0x00, 0x36, 0x46, 0x4c, 0x62, 0xcb, 0xda, 0xb7, 0x3a, 0x8d, 0xfe, 0x3b, 0xdd, 0x52, 0x96, 0x34,
-	0xfc, 0x53, 0x79, 0x7e, 0xc8, 0x24, 0x52, 0x6d, 0x49, 0x3e, 0x84, 0x1b, 0xcc, 0xf3, 0x62, 0x94,
+	0x10, 0x36, 0x46, 0x4c, 0x62, 0xcb, 0xda, 0xb7, 0x3a, 0x8d, 0xfe, 0x3b, 0xdd, 0x52, 0x96, 0x34,
+	0xfc, 0x53, 0x79, 0x7e, 0xc8, 0x24, 0x52, 0x6d, 0x49, 0x3e, 0x82, 0x1b, 0xcc, 0xf3, 0x62, 0x94,
 	0xb2, 0xb5, 0xbe, 0xc0, 0xe9, 0x89, 0xb1, 0xa1, 0x99, 0xb1, 0xf3, 0x93, 0x05, 0xb7, 0xca, 0x15,
 	0xc8, 0x28, 0x14, 0x12, 0xc9, 0x23, 0xa8, 0x49, 0xc5, 0xd4, 0x44, 0xa6, 0x45, 0xbc, 0x5d, 0x19,
 	0xef, 0x99, 0x36, 0xa1, 0xa9, 0x29, 0x39, 0x84, 0x06, 0x17, 0x5c, 0x9d, 0x45, 0x2c, 0x66, 0x41,
@@ -798,44 +798,44 @@ var fileDescriptor_a5d2036b4df73e0a = []byte{
 	0x7b, 0x38, 0xe1, 0xbe, 0x37, 0x1c, 0x24, 0x55, 0xd9, 0x1d, 0x9b, 0x96, 0x95, 0xce, 0x6f, 0x16,
 	0xd4, 0xb5, 0xf3, 0x50, 0x8c, 0x43, 0xf2, 0x18, 0x36, 0x93, 0xba, 0x0c, 0x8c, 0x5b, 0xfd, 0x3b,
 	0x95, 0x1d, 0x4c, 0x73, 0x51, 0x63, 0x4d, 0x1c, 0x68, 0x16, 0xa3, 0xea, 0x2e, 0x6c, 0x5a, 0xd2,
-	0x91, 0x16, 0xdc, 0xd0, 0xf2, 0x70, 0xd0, 0xb2, 0xf5, 0x73, 0x26, 0x92, 0xdb, 0x00, 0x86, 0x28,
-	0x82, 0x05, 0xd8, 0xda, 0xd8, 0xb7, 0x3a, 0x75, 0x5a, 0xd7, 0x9a, 0x13, 0x16, 0x20, 0xd9, 0x83,
-	0x1a, 0x45, 0x26, 0x43, 0xd1, 0xda, 0xd4, 0x4f, 0xa9, 0xe4, 0xfc, 0x68, 0xc1, 0x6e, 0xa9, 0xed,
-	0xeb, 0x8c, 0xe1, 0xb1, 0x71, 0xc2, 0x64, 0x02, 0x76, 0xa7, 0xd1, 0xbf, 0xdd, 0x9d, 0xa7, 0x69,
-	0x37, 0xc7, 0x89, 0xa6, 0xc6, 0xce, 0x5f, 0x16, 0xec, 0x98, 0x06, 0x93, 0xa7, 0x0c, 0xf9, 0x72,
-	0x43, 0xd6, 0x6c, 0x43, 0x05, 0x24, 0xd6, 0xe7, 0x90, 0xf0, 0x98, 0x62, 0x67, 0x11, 0x53, 0x17,
-	0xb2, 0x65, 0xef, 0xdb, 0x89, 0x63, 0xa2, 0x39, 0x4d, 0x14, 0x09, 0x57, 0xd4, 0x65, 0x84, 0x19,
-	0x57, 0x36, 0x74, 0xa5, 0x07, 0x95, 0xed, 0x7d, 0x89, 0x97, 0x5f, 0x31, 0x7f, 0x82, 0xa7, 0x8c,
-	0xc7, 0x14, 0x12, 0x2f, 0xc3, 0x15, 0x32, 0x48, 0x47, 0x95, 0x05, 0xd9, 0x5c, 0x35, 0x48, 0x43,
-	0xbb, 0xa5, 0x8c, 0x0b, 0x80, 0x14, 0xdb, 0xbe, 0x0e, 0xf2, 0x2b, 0x70, 0xc7, 0xf1, 0xe1, 0xe6,
-	0x34, 0xdd, 0x51, 0xe0, 0xcd, 0x39, 0x59, 0x15, 0x84, 0xfb, 0x08, 0xec, 0x18, 0x5f, 0xa6, 0x1b,
-	0x75, 0xaf, 0x6a, 0x9e, 0x73, 0x93, 0xa3, 0x89, 0x87, 0xf3, 0xab, 0x05, 0x7b, 0xd3, 0xa7, 0x93,
-	0x50, 0xf1, 0x31, 0x77, 0x99, 0xe2, 0xa1, 0xf8, 0xd7, 0x3a, 0x24, 0x1d, 0xd8, 0x36, 0x63, 0x19,
-	0x73, 0x1f, 0x4b, 0xf3, 0xdf, 0xd2, 0xfa, 0x2f, 0xb8, 0x8f, 0x86, 0x04, 0x7b, 0x50, 0x13, 0xa1,
-	0x87, 0xc3, 0x81, 0xde, 0x14, 0x9b, 0xa6, 0x92, 0xf3, 0x29, 0xbc, 0x35, 0x2c, 0x59, 0x5e, 0xed,
-	0x0e, 0xfc, 0x62, 0xc1, 0x4e, 0xc9, 0x5f, 0xdf, 0x83, 0xff, 0xbe, 0x5f, 0xe7, 0x67, 0x0b, 0xf6,
-	0x66, 0x1b, 0xbb, 0x0e, 0xdf, 0x06, 0x00, 0x85, 0x9c, 0x66, 0xdb, 0xef, 0xbd, 0x71, 0xdb, 0x8b,
-	0x68, 0xd0, 0xfa, 0x38, 0xaf, 0xea, 0x8f, 0xec, 0x6c, 0x3e, 0x45, 0xc5, 0x56, 0xa2, 0x63, 0x7e,
-	0x5a, 0xd7, 0xaf, 0x74, 0x5a, 0xef, 0x40, 0x63, 0xcc, 0xb8, 0x7f, 0x16, 0x9b, 0x13, 0x68, 0xeb,
-	0x63, 0x02, 0x89, 0xca, 0x9c, 0xc1, 0x8c, 0xe6, 0x1b, 0x57, 0xa5, 0x79, 0xe5, 0x08, 0x36, 0x2b,
-	0x47, 0xf0, 0x31, 0x6c, 0x0f, 0xe2, 0x30, 0x2a, 0xdd, 0xb8, 0x0a, 0x56, 0x59, 0x73, 0xac, 0xea,
-	0xff, 0x5e, 0x83, 0xa6, 0xe9, 0xc9, 0xfc, 0x07, 0x20, 0x2e, 0x34, 0x8b, 0xdf, 0x4e, 0xf2, 0xa0,
-	0xaa, 0xe0, 0x8a, 0xef, 0x7b, 0xbb, 0xb3, 0xdc, 0xd0, 0xb0, 0xc2, 0x59, 0x23, 0xdf, 0x02, 0x4c,
-	0x7b, 0x26, 0xab, 0x61, 0xd2, 0xbe, 0xbf, 0xcc, 0x2c, 0x0f, 0xef, 0xc2, 0xd6, 0x31, 0xaa, 0xc2,
-	0xa7, 0x87, 0xdc, 0x7f, 0x23, 0x7f, 0x4a, 0x9f, 0xe4, 0xf6, 0x83, 0xa5, 0x76, 0x79, 0x12, 0x1f,
-	0x76, 0xb2, 0x24, 0xd3, 0xdd, 0x7f, 0x6f, 0x29, 0x4f, 0xf3, 0x54, 0x0f, 0x57, 0x31, 0x2d, 0x20,
-	0xb6, 0xad, 0xef, 0xdc, 0x65, 0x01, 0xb7, 0x87, 0x8b, 0x01, 0x29, 0xde, 0xc5, 0xf6, 0xa2, 0xcd,
-	0x73, 0xd6, 0xc8, 0x29, 0xd4, 0x73, 0x02, 0x91, 0xbb, 0x55, 0x71, 0x67, 0xf9, 0xb5, 0x2c, 0xe2,
-	0x0b, 0x20, 0xc7, 0xa8, 0x8e, 0xc2, 0x20, 0x0a, 0x05, 0x0a, 0x95, 0xce, 0xa1, 0x5d, 0xe9, 0xf4,
-	0x79, 0x10, 0xa9, 0xcb, 0xf9, 0xf9, 0xa6, 0xff, 0xa9, 0x66, 0x62, 0x38, 0x6b, 0xe4, 0x6b, 0x1d,
-	0xfb, 0x39, 0x0f, 0xf0, 0x39, 0x77, 0xbf, 0x3b, 0xba, 0x60, 0x42, 0xa0, 0xbf, 0x30, 0xf6, 0xbb,
-	0xe5, 0xb7, 0x54, 0x78, 0xa6, 0x62, 0x2e, 0xce, 0x0b, 0x28, 0x7f, 0x03, 0xb7, 0x8e, 0x51, 0xe7,
-	0xe1, 0x52, 0x71, 0x57, 0xfe, 0x73, 0xa1, 0xfb, 0x7f, 0xae, 0xa7, 0xf7, 0x48, 0x6f, 0xd5, 0x49,
+	0x91, 0x16, 0xdc, 0xd0, 0xf2, 0x70, 0xd0, 0xb2, 0xf5, 0xe7, 0x4c, 0x24, 0xb7, 0x01, 0x0c, 0x51,
+	0x04, 0x0b, 0xb0, 0xb5, 0xb1, 0x6f, 0x75, 0xea, 0xb4, 0xae, 0x35, 0x27, 0x2c, 0x40, 0xb2, 0x07,
+	0x35, 0x8a, 0x4c, 0x86, 0xa2, 0xb5, 0xa9, 0x3f, 0xa5, 0x92, 0xf3, 0xa3, 0x05, 0xbb, 0xa5, 0xb6,
+	0xaf, 0x33, 0x86, 0xc7, 0xc6, 0x09, 0x93, 0x09, 0xd8, 0x9d, 0x46, 0xff, 0x76, 0x77, 0x9e, 0xa6,
+	0xdd, 0x1c, 0x27, 0x9a, 0x1a, 0x3b, 0x7f, 0x59, 0xb0, 0x63, 0x1a, 0x4c, 0x3e, 0x65, 0xc8, 0x97,
+	0x1b, 0xb2, 0x66, 0x1b, 0x2a, 0x20, 0xb1, 0x3e, 0x87, 0x84, 0xc7, 0x14, 0x3b, 0x8b, 0x98, 0xba,
+	0x90, 0x2d, 0x7b, 0xdf, 0x4e, 0x1c, 0x13, 0xcd, 0x69, 0xa2, 0x48, 0xb8, 0xa2, 0x2e, 0x23, 0xcc,
+	0xb8, 0xb2, 0xa1, 0x2b, 0x3d, 0xa8, 0x6c, 0xef, 0x4b, 0xbc, 0xfc, 0x8a, 0xf9, 0x13, 0x3c, 0x65,
+	0x3c, 0xa6, 0x90, 0x78, 0x19, 0xae, 0x90, 0x41, 0x3a, 0xaa, 0x2c, 0xc8, 0xe6, 0xaa, 0x41, 0x1a,
+	0xda, 0x2d, 0x65, 0x5c, 0x00, 0xa4, 0xd8, 0xf6, 0x75, 0x90, 0x5f, 0x81, 0x3b, 0x8e, 0x0f, 0x37,
+	0xa7, 0xe9, 0x8e, 0x02, 0x6f, 0xce, 0xc9, 0xaa, 0x20, 0xdc, 0xc7, 0x60, 0xc7, 0xf8, 0x32, 0xdd,
+	0xa8, 0x7b, 0x55, 0xf3, 0x9c, 0x9b, 0x1c, 0x4d, 0x3c, 0x9c, 0x5f, 0x2d, 0xd8, 0x9b, 0x7e, 0x3a,
+	0x09, 0x15, 0x1f, 0x73, 0x97, 0x29, 0x1e, 0x8a, 0x7f, 0xad, 0x43, 0xd2, 0x81, 0x6d, 0x33, 0x96,
+	0x31, 0xf7, 0xb1, 0x34, 0xff, 0x2d, 0xad, 0xff, 0x82, 0xfb, 0x68, 0x48, 0xb0, 0x07, 0x35, 0x11,
+	0x7a, 0x38, 0x1c, 0xe8, 0x4d, 0xb1, 0x69, 0x2a, 0x39, 0x9f, 0xc2, 0x5b, 0xc3, 0x92, 0xe5, 0xd5,
+	0xee, 0xc0, 0x2f, 0x16, 0xec, 0x94, 0xfc, 0xf5, 0x3d, 0xf8, 0xef, 0xfb, 0x75, 0x7e, 0xb6, 0x60,
+	0x6f, 0xb6, 0xb1, 0xeb, 0xf0, 0x6d, 0x00, 0x50, 0xc8, 0x69, 0xb6, 0xfd, 0xde, 0x1b, 0xb7, 0xbd,
+	0x88, 0x06, 0xad, 0x8f, 0xf3, 0xaa, 0xfe, 0xc8, 0xce, 0xe6, 0x53, 0x54, 0x6c, 0x25, 0x3a, 0xe6,
+	0xa7, 0x75, 0xfd, 0x4a, 0xa7, 0xf5, 0x0e, 0x34, 0xc6, 0x8c, 0xfb, 0x67, 0xb1, 0x39, 0x81, 0xb6,
+	0x3e, 0x26, 0x90, 0xa8, 0xcc, 0x19, 0xcc, 0x68, 0xbe, 0x71, 0x55, 0x9a, 0x57, 0x8e, 0x60, 0xb3,
+	0x72, 0x04, 0xef, 0xc3, 0xf6, 0x20, 0x0e, 0xa3, 0xd2, 0x8d, 0x2b, 0x1c, 0x31, 0xab, 0x74, 0xc4,
+	0xfa, 0xbf, 0xd7, 0xa0, 0x69, 0xfa, 0x30, 0xef, 0x3e, 0x71, 0xa1, 0x59, 0x7c, 0x2f, 0xc9, 0x83,
+	0xaa, 0x22, 0x2b, 0xde, 0xf4, 0x76, 0x67, 0xb9, 0xa1, 0x61, 0x82, 0xb3, 0x46, 0xbe, 0x05, 0x98,
+	0xf6, 0x49, 0x56, 0xc3, 0xa1, 0x7d, 0x7f, 0x99, 0x59, 0x1e, 0xde, 0x85, 0xad, 0x63, 0x54, 0x85,
+	0xe7, 0x86, 0xdc, 0x7f, 0x23, 0x67, 0x4a, 0xcf, 0x70, 0xfb, 0xc1, 0x52, 0xbb, 0x3c, 0x89, 0x0f,
+	0x3b, 0x59, 0x92, 0xe9, 0xbe, 0xbf, 0xb7, 0x94, 0x9b, 0x79, 0xaa, 0x87, 0xab, 0x98, 0x16, 0x10,
+	0xdb, 0xd6, 0xb7, 0xed, 0xb2, 0x80, 0xdb, 0xc3, 0xc5, 0x80, 0x14, 0x6f, 0x61, 0x7b, 0xd1, 0xb6,
+	0x39, 0x6b, 0xe4, 0x14, 0xea, 0x39, 0x69, 0xc8, 0xdd, 0xaa, 0xb8, 0xb3, 0x9c, 0x5a, 0x16, 0xf1,
+	0x05, 0x90, 0x63, 0x54, 0x47, 0x61, 0x10, 0x85, 0x02, 0x85, 0x4a, 0xe7, 0xd0, 0xae, 0x74, 0xfa,
+	0x3c, 0x88, 0xd4, 0xe5, 0xfc, 0x7c, 0xd3, 0xff, 0x51, 0x33, 0x31, 0x9c, 0x35, 0xf2, 0xb5, 0x8e,
+	0xfd, 0x9c, 0x07, 0xf8, 0x9c, 0xbb, 0xdf, 0x1d, 0x5d, 0x30, 0x21, 0xd0, 0x5f, 0x18, 0xfb, 0xdd,
+	0xf2, 0xb7, 0x54, 0x78, 0xa6, 0x62, 0x2e, 0xce, 0x0b, 0x28, 0x7f, 0x03, 0xb7, 0x8e, 0x51, 0xe7,
+	0xe1, 0x52, 0x71, 0x57, 0xfe, 0x73, 0xa1, 0xfb, 0x7f, 0xae, 0xa7, 0x37, 0x48, 0x6f, 0xd5, 0x49,
 	0x69, 0x01, 0x0e, 0x16, 0x0f, 0xf2, 0x28, 0xf0, 0xfe, 0x47, 0xfb, 0x4a, 0xa1, 0x0f, 0x9f, 0xbc,
 	0xf8, 0xec, 0x9c, 0xab, 0x8b, 0xc9, 0x28, 0xf1, 0xee, 0xbd, 0xe6, 0xbe, 0xcf, 0x5f, 0x2b, 0x74,
-	0x2f, 0x7a, 0xc6, 0xe1, 0x7d, 0x8f, 0x4b, 0x15, 0xf3, 0xd1, 0x44, 0xa1, 0xd7, 0xcb, 0x5a, 0xef,
+	0x2f, 0x7a, 0xc6, 0xe1, 0x03, 0x8f, 0x4b, 0x15, 0xf3, 0xd1, 0x44, 0xa1, 0xd7, 0xcb, 0x5a, 0xef,
 	0xe9, 0x90, 0x3d, 0x8d, 0x7e, 0x34, 0x1a, 0xd5, 0xb4, 0xf8, 0xe8, 0xef, 0x00, 0x00, 0x00, 0xff,
-	0xff, 0x39, 0xbd, 0x59, 0x7a, 0x24, 0x0d, 0x00, 0x00,
+	0xff, 0x3a, 0x9f, 0x25, 0xdf, 0x18, 0x0d, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
diff --git a/internal/proxynode/impl.go b/internal/proxynode/impl.go
index c57bd0da27939a8c9b93866231f3b48c3aa456eb..8b67f2ddfb18dbe5b99d9a6823b4864137e64bab 100644
--- a/internal/proxynode/impl.go
+++ b/internal/proxynode/impl.go
@@ -540,6 +540,32 @@ func (node *NodeImpl) DescribeIndex(request *milvuspb.DescribeIndexRequest) (*mi
 	return dit.result, nil
 }
 
+func (node *NodeImpl) DropIndex(request *milvuspb.DropIndexRequest) (*commonpb.Status, error) {
+	log.Println("Drop index for: ", request)
+	ctx, cancel := context.WithTimeout(context.Background(), reqTimeoutInterval)
+	defer cancel()
+	dit := &DropIndexTask{
+		Condition:        NewTaskCondition(ctx),
+		DropIndexRequest: request,
+		masterClient:     node.masterClient,
+	}
+	err := node.sched.DdQueue.Enqueue(dit)
+	if err != nil {
+		return &commonpb.Status{
+			ErrorCode: commonpb.ErrorCode_UNEXPECTED_ERROR,
+			Reason:    err.Error(),
+		}, nil
+	}
+	err = dit.WaitToFinish()
+	if err != nil {
+		return &commonpb.Status{
+			ErrorCode: commonpb.ErrorCode_UNEXPECTED_ERROR,
+			Reason:    err.Error(),
+		}, nil
+	}
+	return dit.result, nil
+}
+
 func (node *NodeImpl) GetIndexState(request *milvuspb.IndexStateRequest) (*milvuspb.IndexStateResponse, error) {
 	// log.Println("Describe index progress for: ", request)
 	ctx, cancel := context.WithTimeout(context.Background(), reqTimeoutInterval)
diff --git a/internal/proxynode/interface.go b/internal/proxynode/interface.go
index 509c73c6cf4c3d9b204c1494bbbc60c1b03f30a5..32471183eb1bf9ade7b5d80d777a44689e6342a5 100644
--- a/internal/proxynode/interface.go
+++ b/internal/proxynode/interface.go
@@ -22,6 +22,7 @@ type MasterClient interface {
 	ShowPartitions(in *milvuspb.ShowPartitionRequest) (*milvuspb.ShowPartitionResponse, error)
 	CreateIndex(in *milvuspb.CreateIndexRequest) (*commonpb.Status, error)
 	DescribeIndex(in *milvuspb.DescribeIndexRequest) (*milvuspb.DescribeIndexResponse, error)
+	DropIndex(in *milvuspb.DropIndexRequest) (*commonpb.Status, error)
 	ShowSegments(in *milvuspb.ShowSegmentRequest) (*milvuspb.ShowSegmentResponse, error)
 	DescribeSegment(in *milvuspb.DescribeSegmentRequest) (*milvuspb.DescribeSegmentResponse, error)
 }
@@ -90,6 +91,7 @@ type ProxyNode interface {
 	CreateIndex(request *milvuspb.CreateIndexRequest) (*commonpb.Status, error)
 	DescribeIndex(request *milvuspb.DescribeIndexRequest) (*milvuspb.DescribeIndexResponse, error)
 	GetIndexState(request *milvuspb.IndexStateRequest) (*milvuspb.IndexStateResponse, error)
+	DropIndex(request *milvuspb.DropIndexRequest) (*commonpb.Status, error)
 
 	Insert(request *milvuspb.InsertRequest) (*milvuspb.InsertResponse, error)
 	Search(request *milvuspb.SearchRequest) (*milvuspb.SearchResults, error)
diff --git a/internal/proxynode/task.go b/internal/proxynode/task.go
index a051105476cb7ff642964ff1290df82df90c2f9c..cfd6ebb7b20aea4b232afd18f68f865b872cca36 100644
--- a/internal/proxynode/task.go
+++ b/internal/proxynode/task.go
@@ -1350,6 +1350,75 @@ func (dit *DescribeIndexTask) PostExecute() error {
 	return nil
 }
 
+type DropIndexTask struct {
+	Condition
+	*milvuspb.DropIndexRequest
+	masterClient MasterClient
+	result       *commonpb.Status
+}
+
+func (dit *DropIndexTask) OnEnqueue() error {
+	dit.Base = &commonpb.MsgBase{}
+	return nil
+}
+
+func (dit *DropIndexTask) ID() UniqueID {
+	return dit.Base.MsgID
+}
+
+func (dit *DropIndexTask) SetID(uid UniqueID) {
+	dit.Base.MsgID = uid
+}
+
+func (dit *DropIndexTask) Type() commonpb.MsgType {
+	return dit.Base.MsgType
+}
+
+func (dit *DropIndexTask) BeginTs() Timestamp {
+	return dit.Base.Timestamp
+}
+
+func (dit *DropIndexTask) EndTs() Timestamp {
+	return dit.Base.Timestamp
+}
+
+func (dit *DropIndexTask) SetTs(ts Timestamp) {
+	dit.Base.Timestamp = ts
+}
+
+func (dit *DropIndexTask) PreExecute() error {
+	dit.Base.MsgType = commonpb.MsgType_kDropIndex
+	dit.Base.SourceID = Params.ProxyID
+
+	collName, fieldName := dit.CollectionName, dit.FieldName
+
+	if err := ValidateCollectionName(collName); err != nil {
+		return err
+	}
+
+	if err := ValidateFieldName(fieldName); err != nil {
+		return err
+	}
+
+	return nil
+}
+
+func (dit *DropIndexTask) Execute() error {
+	var err error
+	dit.result, err = dit.masterClient.DropIndex(dit.DropIndexRequest)
+	if dit.result == nil {
+		return errors.New("drop index resp is nil")
+	}
+	if dit.result.ErrorCode != commonpb.ErrorCode_SUCCESS {
+		return errors.New(dit.result.Reason)
+	}
+	return err
+}
+
+func (dit *DropIndexTask) PostExecute() error {
+	return nil
+}
+
 type GetIndexStateTask struct {
 	Condition
 	*milvuspb.IndexStateRequest