Support AllocTimestamp api for Milvus (#25784)

Signed-off-by: cai.zhang <cai.zhang@zilliz.com>
pull/25884/head
cai.zhang 2023-07-25 10:05:00 +08:00 committed by GitHub
parent 2ff469771c
commit 760a2d9aa7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 678 additions and 1246 deletions

View File

@ -314,7 +314,7 @@ rpm: install
@QA_RPATHS="$$[ 0x001|0x0002|0x0020 ]" rpmbuild -ba ./build/rpm/milvus.spec
mock-proxy:
mockery --name=ProxyComponent --dir=$(PWD)/internal/types --output=$(PWD)/internal/mocks --filename=mock_proxy.go --structname=Proxy --with-expecter
mockery --name=ProxyComponent --dir=$(PWD)/internal/types --output=$(PWD)/internal/mocks --filename=mock_proxy.go --structname=MockProxy --with-expecter
mock-datanode:
mockery --name=DataNode --dir=$(PWD)/internal/types --output=$(PWD)/internal/mocks --filename=mock_datanode.go --with-expecter

2
go.mod
View File

@ -23,7 +23,7 @@ require (
github.com/klauspost/compress v1.16.5
github.com/lingdor/stackerror v0.0.0-20191119040541-976d8885ed76
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d
github.com/milvus-io/milvus-proto/go-api/v2 v2.3.0-dev.1
github.com/milvus-io/milvus-proto/go-api/v2 v2.3.0-dev.1.0.20230716112827-c3fe148f5e1d
github.com/minio/minio-go/v7 v7.0.17
github.com/nats-io/nats-server/v2 v2.9.17
github.com/nats-io/nats.go v1.24.0

2
go.sum
View File

@ -586,6 +586,8 @@ github.com/milvus-io/gorocksdb v0.0.0-20220624081344-8c5f4212846b h1:TfeY0NxYxZz
github.com/milvus-io/gorocksdb v0.0.0-20220624081344-8c5f4212846b/go.mod h1:iwW+9cWfIzzDseEBCCeDSN5SD16Tidvy8cwQ7ZY8Qj4=
github.com/milvus-io/milvus-proto/go-api/v2 v2.3.0-dev.1 h1:x6vhrVyK3wEuXIDHt0uk2l/UFPa/RRGWk1nkjgN5jkI=
github.com/milvus-io/milvus-proto/go-api/v2 v2.3.0-dev.1/go.mod h1:1OIl0v5PQeNxIJhCvY+K55CBUOYDZevw9g9380u1Wek=
github.com/milvus-io/milvus-proto/go-api/v2 v2.3.0-dev.1.0.20230716112827-c3fe148f5e1d h1:XsQQ/MigebXEE2VXPKKmA3K7OHC+mkEUiErWvaWMikI=
github.com/milvus-io/milvus-proto/go-api/v2 v2.3.0-dev.1.0.20230716112827-c3fe148f5e1d/go.mod h1:1OIl0v5PQeNxIJhCvY+K55CBUOYDZevw9g9380u1Wek=
github.com/milvus-io/pulsar-client-go v0.6.10 h1:eqpJjU+/QX0iIhEo3nhOqMNXL+TyInAs1IAHZCrCM/A=
github.com/milvus-io/pulsar-client-go v0.6.10/go.mod h1:lQqCkgwDF8YFYjKA+zOheTk1tev2B+bKj5j7+nm8M1w=
github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 h1:AMFGa4R4MiIpspGNG7Z948v4n35fFGB3RR3G/ry4FWs=

View File

@ -520,114 +520,116 @@ const char descriptor_table_protodef_common_2eproto[] PROTOBUF_SECTION_VARIABLE(
"\020\004\022\t\n\005Retry\020\005*\202\001\n\014SegmentState\022\024\n\020Segmen"
"tStateNone\020\000\022\014\n\010NotExist\020\001\022\013\n\007Growing\020\002\022"
"\n\n\006Sealed\020\003\022\013\n\007Flushed\020\004\022\014\n\010Flushing\020\005\022\013"
"\n\007Dropped\020\006\022\r\n\tImporting\020\007*>\n\017Placeholde"
"\n\007Dropped\020\006\022\r\n\tImporting\020\007*V\n\017Placeholde"
"rType\022\010\n\004None\020\000\022\020\n\014BinaryVector\020d\022\017\n\013Flo"
"atVector\020e*\237\020\n\007MsgType\022\r\n\tUndefined\020\000\022\024\n"
"\020CreateCollection\020d\022\022\n\016DropCollection\020e\022"
"\021\n\rHasCollection\020f\022\026\n\022DescribeCollection"
"\020g\022\023\n\017ShowCollections\020h\022\024\n\020GetSystemConf"
"igs\020i\022\022\n\016LoadCollection\020j\022\025\n\021ReleaseColl"
"ection\020k\022\017\n\013CreateAlias\020l\022\r\n\tDropAlias\020m"
"\022\016\n\nAlterAlias\020n\022\023\n\017AlterCollection\020o\022\024\n"
"\020RenameCollection\020p\022\021\n\rDescribeAlias\020q\022\017"
"\n\013ListAliases\020r\022\024\n\017CreatePartition\020\310\001\022\022\n"
"\rDropPartition\020\311\001\022\021\n\014HasPartition\020\312\001\022\026\n\021"
"DescribePartition\020\313\001\022\023\n\016ShowPartitions\020\314"
"\001\022\023\n\016LoadPartitions\020\315\001\022\026\n\021ReleasePartiti"
"ons\020\316\001\022\021\n\014ShowSegments\020\372\001\022\024\n\017DescribeSeg"
"ment\020\373\001\022\021\n\014LoadSegments\020\374\001\022\024\n\017ReleaseSeg"
"ments\020\375\001\022\024\n\017HandoffSegments\020\376\001\022\030\n\023LoadBa"
"lanceSegments\020\377\001\022\025\n\020DescribeSegments\020\200\002\022"
"\034\n\027FederListIndexedSegment\020\201\002\022\"\n\035FederDe"
"scribeSegmentIndexData\020\202\002\022\020\n\013CreateIndex"
"\020\254\002\022\022\n\rDescribeIndex\020\255\002\022\016\n\tDropIndex\020\256\002\022"
"\027\n\022GetIndexStatistics\020\257\002\022\013\n\006Insert\020\220\003\022\013\n"
"\006Delete\020\221\003\022\n\n\005Flush\020\222\003\022\027\n\022ResendSegmentS"
"tats\020\223\003\022\013\n\006Upsert\020\224\003\022\013\n\006Search\020\364\003\022\021\n\014Sea"
"rchResult\020\365\003\022\022\n\rGetIndexState\020\366\003\022\032\n\025GetI"
"ndexBuildProgress\020\367\003\022\034\n\027GetCollectionSta"
"tistics\020\370\003\022\033\n\026GetPartitionStatistics\020\371\003\022"
"\r\n\010Retrieve\020\372\003\022\023\n\016RetrieveResult\020\373\003\022\024\n\017W"
"atchDmChannels\020\374\003\022\025\n\020RemoveDmChannels\020\375\003"
"\022\027\n\022WatchQueryChannels\020\376\003\022\030\n\023RemoveQuery"
"Channels\020\377\003\022\035\n\030SealedSegmentsChangeInfo\020"
"\200\004\022\027\n\022WatchDeltaChannels\020\201\004\022\024\n\017GetShardL"
"eaders\020\202\004\022\020\n\013GetReplicas\020\203\004\022\023\n\016UnsubDmCh"
"annel\020\204\004\022\024\n\017GetDistribution\020\205\004\022\025\n\020SyncDi"
"stribution\020\206\004\022\020\n\013SegmentInfo\020\330\004\022\017\n\nSyste"
"mInfo\020\331\004\022\024\n\017GetRecoveryInfo\020\332\004\022\024\n\017GetSeg"
"mentState\020\333\004\022\r\n\010TimeTick\020\260\t\022\023\n\016QueryNode"
"Stats\020\261\t\022\016\n\tLoadIndex\020\262\t\022\016\n\tRequestID\020\263\t"
"\022\017\n\nRequestTSO\020\264\t\022\024\n\017AllocateSegment\020\265\t\022"
"\026\n\021SegmentStatistics\020\266\t\022\025\n\020SegmentFlushD"
"one\020\267\t\022\017\n\nDataNodeTt\020\270\t\022\014\n\007Connect\020\271\t\022\024\n"
"\017ListClientInfos\020\272\t\022\025\n\020CreateCredential\020"
"\334\013\022\022\n\rGetCredential\020\335\013\022\025\n\020DeleteCredenti"
"al\020\336\013\022\025\n\020UpdateCredential\020\337\013\022\026\n\021ListCred"
"Usernames\020\340\013\022\017\n\nCreateRole\020\300\014\022\r\n\010DropRol"
"e\020\301\014\022\024\n\017OperateUserRole\020\302\014\022\017\n\nSelectRole"
"\020\303\014\022\017\n\nSelectUser\020\304\014\022\023\n\016SelectResource\020\305"
"\014\022\025\n\020OperatePrivilege\020\306\014\022\020\n\013SelectGrant\020"
"\307\014\022\033\n\026RefreshPolicyInfoCache\020\310\014\022\017\n\nListP"
"olicy\020\311\014\022\030\n\023CreateResourceGroup\020\244\r\022\026\n\021Dr"
"opResourceGroup\020\245\r\022\027\n\022ListResourceGroups"
"\020\246\r\022\032\n\025DescribeResourceGroup\020\247\r\022\021\n\014Trans"
"ferNode\020\250\r\022\024\n\017TransferReplica\020\251\r\022\023\n\016Crea"
"teDatabase\020\211\016\022\021\n\014DropDatabase\020\212\016\022\022\n\rList"
"Databases\020\213\016*\"\n\007DslType\022\007\n\003Dsl\020\000\022\016\n\nBool"
"ExprV1\020\001*B\n\017CompactionState\022\021\n\rUndefiedS"
"tate\020\000\022\r\n\tExecuting\020\001\022\r\n\tCompleted\020\002*X\n\020"
"ConsistencyLevel\022\n\n\006Strong\020\000\022\013\n\007Session\020"
"\001\022\013\n\007Bounded\020\002\022\016\n\nEventually\020\003\022\016\n\nCustom"
"ized\020\004*\236\001\n\013ImportState\022\021\n\rImportPending\020"
"\000\022\020\n\014ImportFailed\020\001\022\021\n\rImportStarted\020\002\022\023"
"\n\017ImportPersisted\020\005\022\021\n\rImportFlushed\020\010\022\023"
"\n\017ImportCompleted\020\006\022\032\n\026ImportFailedAndCl"
"eaned\020\007*2\n\nObjectType\022\016\n\nCollection\020\000\022\n\n"
"\006Global\020\001\022\010\n\004User\020\002*\241\010\n\017ObjectPrivilege\022"
"\020\n\014PrivilegeAll\020\000\022\035\n\031PrivilegeCreateColl"
"ection\020\001\022\033\n\027PrivilegeDropCollection\020\002\022\037\n"
"\033PrivilegeDescribeCollection\020\003\022\034\n\030Privil"
"egeShowCollections\020\004\022\021\n\rPrivilegeLoad\020\005\022"
"\024\n\020PrivilegeRelease\020\006\022\027\n\023PrivilegeCompac"
"tion\020\007\022\023\n\017PrivilegeInsert\020\010\022\023\n\017Privilege"
"Delete\020\t\022\032\n\026PrivilegeGetStatistics\020\n\022\030\n\024"
"PrivilegeCreateIndex\020\013\022\030\n\024PrivilegeIndex"
"Detail\020\014\022\026\n\022PrivilegeDropIndex\020\r\022\023\n\017Priv"
"ilegeSearch\020\016\022\022\n\016PrivilegeFlush\020\017\022\022\n\016Pri"
"vilegeQuery\020\020\022\030\n\024PrivilegeLoadBalance\020\021\022"
"\023\n\017PrivilegeImport\020\022\022\034\n\030PrivilegeCreateO"
"wnership\020\023\022\027\n\023PrivilegeUpdateUser\020\024\022\032\n\026P"
"rivilegeDropOwnership\020\025\022\034\n\030PrivilegeSele"
"ctOwnership\020\026\022\034\n\030PrivilegeManageOwnershi"
"p\020\027\022\027\n\023PrivilegeSelectUser\020\030\022\023\n\017Privileg"
"eUpsert\020\031\022 \n\034PrivilegeCreateResourceGrou"
"p\020\032\022\036\n\032PrivilegeDropResourceGroup\020\033\022\"\n\036P"
"rivilegeDescribeResourceGroup\020\034\022\037\n\033Privi"
"legeListResourceGroups\020\035\022\031\n\025PrivilegeTra"
"nsferNode\020\036\022\034\n\030PrivilegeTransferReplica\020"
"\037\022\037\n\033PrivilegeGetLoadingProgress\020 \022\031\n\025Pr"
"ivilegeGetLoadState\020!\022\035\n\031PrivilegeRename"
"Collection\020\"\022\033\n\027PrivilegeCreateDatabase\020"
"#\022\031\n\025PrivilegeDropDatabase\020$\022\032\n\026Privileg"
"eListDatabases\020%\022\025\n\021PrivilegeFlushAll\020&*"
"S\n\tStateCode\022\020\n\014Initializing\020\000\022\013\n\007Health"
"y\020\001\022\014\n\010Abnormal\020\002\022\013\n\007StandBy\020\003\022\014\n\010Stoppi"
"ng\020\004*c\n\tLoadState\022\025\n\021LoadStateNotExist\020\000"
"\022\024\n\020LoadStateNotLoad\020\001\022\024\n\020LoadStateLoadi"
"ng\020\002\022\023\n\017LoadStateLoaded\020\003:^\n\021privilege_e"
"xt_obj\022\037.google.protobuf.MessageOptions\030"
"\351\007 \001(\0132!.milvus.proto.common.PrivilegeEx"
"tBi\n\016io.milvus.grpcB\013CommonProtoP\001Z4gith"
"ub.com/milvus-io/milvus-proto/go-api/v2/"
"commonpb\240\001\001\252\002\016IO.Milvus.Grpcb\006proto3"
"atVector\020e\022\t\n\005Int64\020\005\022\013\n\007VarChar\020\025*\264\020\n\007M"
"sgType\022\r\n\tUndefined\020\000\022\024\n\020CreateCollectio"
"n\020d\022\022\n\016DropCollection\020e\022\021\n\rHasCollection"
"\020f\022\026\n\022DescribeCollection\020g\022\023\n\017ShowCollec"
"tions\020h\022\024\n\020GetSystemConfigs\020i\022\022\n\016LoadCol"
"lection\020j\022\025\n\021ReleaseCollection\020k\022\017\n\013Crea"
"teAlias\020l\022\r\n\tDropAlias\020m\022\016\n\nAlterAlias\020n"
"\022\023\n\017AlterCollection\020o\022\024\n\020RenameCollectio"
"n\020p\022\021\n\rDescribeAlias\020q\022\017\n\013ListAliases\020r\022"
"\024\n\017CreatePartition\020\310\001\022\022\n\rDropPartition\020\311"
"\001\022\021\n\014HasPartition\020\312\001\022\026\n\021DescribePartitio"
"n\020\313\001\022\023\n\016ShowPartitions\020\314\001\022\023\n\016LoadPartiti"
"ons\020\315\001\022\026\n\021ReleasePartitions\020\316\001\022\021\n\014ShowSe"
"gments\020\372\001\022\024\n\017DescribeSegment\020\373\001\022\021\n\014LoadS"
"egments\020\374\001\022\024\n\017ReleaseSegments\020\375\001\022\024\n\017Hand"
"offSegments\020\376\001\022\030\n\023LoadBalanceSegments\020\377\001"
"\022\025\n\020DescribeSegments\020\200\002\022\034\n\027FederListInde"
"xedSegment\020\201\002\022\"\n\035FederDescribeSegmentInd"
"exData\020\202\002\022\020\n\013CreateIndex\020\254\002\022\022\n\rDescribeI"
"ndex\020\255\002\022\016\n\tDropIndex\020\256\002\022\027\n\022GetIndexStati"
"stics\020\257\002\022\013\n\006Insert\020\220\003\022\013\n\006Delete\020\221\003\022\n\n\005Fl"
"ush\020\222\003\022\027\n\022ResendSegmentStats\020\223\003\022\013\n\006Upser"
"t\020\224\003\022\013\n\006Search\020\364\003\022\021\n\014SearchResult\020\365\003\022\022\n\r"
"GetIndexState\020\366\003\022\032\n\025GetIndexBuildProgres"
"s\020\367\003\022\034\n\027GetCollectionStatistics\020\370\003\022\033\n\026Ge"
"tPartitionStatistics\020\371\003\022\r\n\010Retrieve\020\372\003\022\023"
"\n\016RetrieveResult\020\373\003\022\024\n\017WatchDmChannels\020\374"
"\003\022\025\n\020RemoveDmChannels\020\375\003\022\027\n\022WatchQueryCh"
"annels\020\376\003\022\030\n\023RemoveQueryChannels\020\377\003\022\035\n\030S"
"ealedSegmentsChangeInfo\020\200\004\022\027\n\022WatchDelta"
"Channels\020\201\004\022\024\n\017GetShardLeaders\020\202\004\022\020\n\013Get"
"Replicas\020\203\004\022\023\n\016UnsubDmChannel\020\204\004\022\024\n\017GetD"
"istribution\020\205\004\022\025\n\020SyncDistribution\020\206\004\022\020\n"
"\013SegmentInfo\020\330\004\022\017\n\nSystemInfo\020\331\004\022\024\n\017GetR"
"ecoveryInfo\020\332\004\022\024\n\017GetSegmentState\020\333\004\022\r\n\010"
"TimeTick\020\260\t\022\023\n\016QueryNodeStats\020\261\t\022\016\n\tLoad"
"Index\020\262\t\022\016\n\tRequestID\020\263\t\022\017\n\nRequestTSO\020\264"
"\t\022\024\n\017AllocateSegment\020\265\t\022\026\n\021SegmentStatis"
"tics\020\266\t\022\025\n\020SegmentFlushDone\020\267\t\022\017\n\nDataNo"
"deTt\020\270\t\022\014\n\007Connect\020\271\t\022\024\n\017ListClientInfos"
"\020\272\t\022\023\n\016AllocTimestamp\020\273\t\022\025\n\020CreateCreden"
"tial\020\334\013\022\022\n\rGetCredential\020\335\013\022\025\n\020DeleteCre"
"dential\020\336\013\022\025\n\020UpdateCredential\020\337\013\022\026\n\021Lis"
"tCredUsernames\020\340\013\022\017\n\nCreateRole\020\300\014\022\r\n\010Dr"
"opRole\020\301\014\022\024\n\017OperateUserRole\020\302\014\022\017\n\nSelec"
"tRole\020\303\014\022\017\n\nSelectUser\020\304\014\022\023\n\016SelectResou"
"rce\020\305\014\022\025\n\020OperatePrivilege\020\306\014\022\020\n\013SelectG"
"rant\020\307\014\022\033\n\026RefreshPolicyInfoCache\020\310\014\022\017\n\n"
"ListPolicy\020\311\014\022\030\n\023CreateResourceGroup\020\244\r\022"
"\026\n\021DropResourceGroup\020\245\r\022\027\n\022ListResourceG"
"roups\020\246\r\022\032\n\025DescribeResourceGroup\020\247\r\022\021\n\014"
"TransferNode\020\250\r\022\024\n\017TransferReplica\020\251\r\022\023\n"
"\016CreateDatabase\020\211\016\022\021\n\014DropDatabase\020\212\016\022\022\n"
"\rListDatabases\020\213\016*\"\n\007DslType\022\007\n\003Dsl\020\000\022\016\n"
"\nBoolExprV1\020\001*B\n\017CompactionState\022\021\n\rUnde"
"fiedState\020\000\022\r\n\tExecuting\020\001\022\r\n\tCompleted\020"
"\002*X\n\020ConsistencyLevel\022\n\n\006Strong\020\000\022\013\n\007Ses"
"sion\020\001\022\013\n\007Bounded\020\002\022\016\n\nEventually\020\003\022\016\n\nC"
"ustomized\020\004*\236\001\n\013ImportState\022\021\n\rImportPen"
"ding\020\000\022\020\n\014ImportFailed\020\001\022\021\n\rImportStarte"
"d\020\002\022\023\n\017ImportPersisted\020\005\022\021\n\rImportFlushe"
"d\020\010\022\023\n\017ImportCompleted\020\006\022\032\n\026ImportFailed"
"AndCleaned\020\007*2\n\nObjectType\022\016\n\nCollection"
"\020\000\022\n\n\006Global\020\001\022\010\n\004User\020\002*\241\010\n\017ObjectPrivi"
"lege\022\020\n\014PrivilegeAll\020\000\022\035\n\031PrivilegeCreat"
"eCollection\020\001\022\033\n\027PrivilegeDropCollection"
"\020\002\022\037\n\033PrivilegeDescribeCollection\020\003\022\034\n\030P"
"rivilegeShowCollections\020\004\022\021\n\rPrivilegeLo"
"ad\020\005\022\024\n\020PrivilegeRelease\020\006\022\027\n\023PrivilegeC"
"ompaction\020\007\022\023\n\017PrivilegeInsert\020\010\022\023\n\017Priv"
"ilegeDelete\020\t\022\032\n\026PrivilegeGetStatistics\020"
"\n\022\030\n\024PrivilegeCreateIndex\020\013\022\030\n\024Privilege"
"IndexDetail\020\014\022\026\n\022PrivilegeDropIndex\020\r\022\023\n"
"\017PrivilegeSearch\020\016\022\022\n\016PrivilegeFlush\020\017\022\022"
"\n\016PrivilegeQuery\020\020\022\030\n\024PrivilegeLoadBalan"
"ce\020\021\022\023\n\017PrivilegeImport\020\022\022\034\n\030PrivilegeCr"
"eateOwnership\020\023\022\027\n\023PrivilegeUpdateUser\020\024"
"\022\032\n\026PrivilegeDropOwnership\020\025\022\034\n\030Privileg"
"eSelectOwnership\020\026\022\034\n\030PrivilegeManageOwn"
"ership\020\027\022\027\n\023PrivilegeSelectUser\020\030\022\023\n\017Pri"
"vilegeUpsert\020\031\022 \n\034PrivilegeCreateResourc"
"eGroup\020\032\022\036\n\032PrivilegeDropResourceGroup\020\033"
"\022\"\n\036PrivilegeDescribeResourceGroup\020\034\022\037\n\033"
"PrivilegeListResourceGroups\020\035\022\031\n\025Privile"
"geTransferNode\020\036\022\034\n\030PrivilegeTransferRep"
"lica\020\037\022\037\n\033PrivilegeGetLoadingProgress\020 \022"
"\031\n\025PrivilegeGetLoadState\020!\022\035\n\031PrivilegeR"
"enameCollection\020\"\022\033\n\027PrivilegeCreateData"
"base\020#\022\031\n\025PrivilegeDropDatabase\020$\022\032\n\026Pri"
"vilegeListDatabases\020%\022\025\n\021PrivilegeFlushA"
"ll\020&*S\n\tStateCode\022\020\n\014Initializing\020\000\022\013\n\007H"
"ealthy\020\001\022\014\n\010Abnormal\020\002\022\013\n\007StandBy\020\003\022\014\n\010S"
"topping\020\004*c\n\tLoadState\022\025\n\021LoadStateNotEx"
"ist\020\000\022\024\n\020LoadStateNotLoad\020\001\022\024\n\020LoadState"
"Loading\020\002\022\023\n\017LoadStateLoaded\020\003:^\n\021privil"
"ege_ext_obj\022\037.google.protobuf.MessageOpt"
"ions\030\351\007 \001(\0132!.milvus.proto.common.Privil"
"egeExtBi\n\016io.milvus.grpcB\013CommonProtoP\001Z"
"4github.com/milvus-io/milvus-proto/go-ap"
"i/v2/commonpb\240\001\001\252\002\016IO.Milvus.Grpcb\006proto"
"3"
;
static const ::_pbi::DescriptorTable* const descriptor_table_common_2eproto_deps[1] = {
&::descriptor_table_google_2fprotobuf_2fdescriptor_2eproto,
};
static ::_pbi::once_flag descriptor_table_common_2eproto_once;
const ::_pbi::DescriptorTable descriptor_table_common_2eproto = {
false, false, 7036, descriptor_table_protodef_common_2eproto,
false, false, 7081, descriptor_table_protodef_common_2eproto,
"common.proto",
&descriptor_table_common_2eproto_once, descriptor_table_common_2eproto_deps, 1, 16,
schemas, file_default_instances, TableStruct_common_2eproto::offsets,
@ -759,6 +761,8 @@ const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* PlaceholderType_descriptor() {
bool PlaceholderType_IsValid(int value) {
switch (value) {
case 0:
case 5:
case 21:
case 100:
case 101:
return true;
@ -848,6 +852,7 @@ bool MsgType_IsValid(int value) {
case 1208:
case 1209:
case 1210:
case 1211:
case 1500:
case 1501:
case 1502:

View File

@ -271,6 +271,8 @@ enum PlaceholderType : int {
None = 0,
BinaryVector = 100,
FloatVector = 101,
Int64 = 5,
VarChar = 21,
PlaceholderType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::min(),
PlaceholderType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<int32_t>::max()
};
@ -369,6 +371,7 @@ enum MsgType : int {
DataNodeTt = 1208,
Connect = 1209,
ListClientInfos = 1210,
AllocTimestamp = 1211,
CreateCredential = 1500,
GetCredential = 1501,
DeleteCredential = 1502,

View File

@ -272,7 +272,7 @@ func (s *Server) GetIndexState(ctx context.Context, req *indexpb.GetIndexStateRe
}
s.completeIndexInfo(indexInfo, indexes[0], s.meta.SelectSegments(func(info *SegmentInfo) bool {
return isFlush(info) && info.CollectionID == req.GetCollectionID()
}), false)
}), false, indexes[0].CreateTime)
ret.State = indexInfo.State
ret.FailReason = indexInfo.IndexStateFailReason
@ -379,7 +379,7 @@ func (s *Server) countIndexedRows(indexInfo *indexpb.IndexInfo, segments []*Segm
// completeIndexInfo get the index row count and index task state
// if realTime, calculate current statistics
// if not realTime, which means get info of the prior `CreateIndex` action, skip segments created after index's create time
func (s *Server) completeIndexInfo(indexInfo *indexpb.IndexInfo, index *model.Index, segments []*SegmentInfo, realTime bool) {
func (s *Server) completeIndexInfo(indexInfo *indexpb.IndexInfo, index *model.Index, segments []*SegmentInfo, realTime bool, ts Timestamp) {
var (
cntNone = 0
cntUnissued = 0
@ -397,7 +397,7 @@ func (s *Server) completeIndexInfo(indexInfo *indexpb.IndexInfo, index *model.In
segIdx, ok := seg.segmentIndexes[index.IndexID]
if !ok {
if seg.GetStartPosition().GetTimestamp() <= index.CreateTime {
if seg.GetStartPosition().GetTimestamp() <= ts {
cntUnissued++
}
pendingIndexRows += seg.GetNumOfRows()
@ -409,7 +409,7 @@ func (s *Server) completeIndexInfo(indexInfo *indexpb.IndexInfo, index *model.In
// if realTime, calculate current statistics
// if not realTime, skip segments created after index create
if !realTime && seg.GetStartPosition().GetTimestamp() > index.CreateTime {
if !realTime && seg.GetStartPosition().GetTimestamp() > ts {
continue
}
@ -506,8 +506,9 @@ func (s *Server) GetIndexBuildProgress(ctx context.Context, req *indexpb.GetInde
}
s.completeIndexInfo(indexInfo, indexes[0], s.meta.SelectSegments(func(info *SegmentInfo) bool {
return isFlush(info) && info.CollectionID == req.GetCollectionID()
}), false)
log.Info("GetIndexBuildProgress success", zap.String("indexName", req.GetIndexName()))
}), false, indexes[0].CreateTime)
log.Info("GetIndexBuildProgress success", zap.Int64("collectionID", req.GetCollectionID()),
zap.String("indexName", req.GetIndexName()))
return &indexpb.GetIndexBuildProgressResponse{
Status: &commonpb.Status{
ErrorCode: commonpb.ErrorCode_Success,
@ -523,7 +524,8 @@ func (s *Server) DescribeIndex(ctx context.Context, req *indexpb.DescribeIndexRe
log := log.Ctx(ctx).With(
zap.Int64("collectionID", req.CollectionID),
)
log.Info("receive DescribeIndex request", zap.String("indexName", req.GetIndexName()))
log.Info("receive DescribeIndex request", zap.String("indexName", req.GetIndexName()),
zap.Uint64("timestamp", req.GetTimestamp()))
errResp := &commonpb.Status{
ErrorCode: commonpb.ErrorCode_UnexpectedError,
Reason: "",
@ -569,7 +571,11 @@ func (s *Server) DescribeIndex(ctx context.Context, req *indexpb.DescribeIndexRe
IsAutoIndex: index.IsAutoIndex,
UserIndexParams: index.UserIndexParams,
}
s.completeIndexInfo(indexInfo, index, segments, false)
createTs := index.CreateTime
if req.GetTimestamp() != 0 {
createTs = req.GetTimestamp()
}
s.completeIndexInfo(indexInfo, index, segments, false, createTs)
indexInfos = append(indexInfos, indexInfo)
}
log.Info("DescribeIndex success", zap.String("indexName", req.GetIndexName()))
@ -628,7 +634,7 @@ func (s *Server) GetIndexStatistics(ctx context.Context, req *indexpb.GetIndexSt
IsAutoIndex: index.IsAutoIndex,
UserIndexParams: index.UserIndexParams,
}
s.completeIndexInfo(indexInfo, index, segments, true)
s.completeIndexInfo(indexInfo, index, segments, true, index.CreateTime)
indexInfos = append(indexInfos, indexInfo)
}
log.Debug("GetIndexStatisticsResponse success",

View File

@ -691,6 +691,7 @@ func TestServer_DescribeIndex(t *testing.T) {
req = &indexpb.DescribeIndexRequest{
CollectionID: collID,
IndexName: "",
Timestamp: createTS,
}
)

View File

@ -958,3 +958,7 @@ func (s *Server) DropDatabase(ctx context.Context, request *milvuspb.DropDatabas
func (s *Server) ListDatabases(ctx context.Context, request *milvuspb.ListDatabasesRequest) (*milvuspb.ListDatabasesResponse, error) {
return s.proxy.ListDatabases(ctx, request)
}
func (s *Server) AllocTimestamp(ctx context.Context, req *milvuspb.AllocTimestampRequest) (*milvuspb.AllocTimestampResponse, error) {
return s.proxy.AllocTimestamp(ctx, req)
}

View File

@ -889,6 +889,10 @@ func (m *MockProxy) Connect(ctx context.Context, req *milvuspb.ConnectRequest) (
return nil, nil
}
func (m *MockProxy) AllocTimestamp(ctx context.Context, req *milvuspb.AllocTimestampRequest) (*milvuspb.AllocTimestampResponse, error) {
return nil, nil
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
type WaitOption struct {
@ -1380,6 +1384,11 @@ func Test_NewServer(t *testing.T) {
_, err := server.ListDatabases(ctx, nil)
assert.Nil(t, err)
})
t.Run("AllocTimestamp", func(t *testing.T) {
_, err := server.AllocTimestamp(ctx, nil)
assert.Nil(t, err)
})
err = server.Stop()
assert.NoError(t, err)

File diff suppressed because it is too large Load Diff

View File

@ -176,6 +176,7 @@ message DropIndexRequest {
message DescribeIndexRequest {
int64 collectionID = 1;
string index_name = 2;
uint64 timestamp = 3;
}
message DescribeIndexResponse {

View File

@ -1169,6 +1169,7 @@ func (m *DropIndexRequest) GetDropAll() bool {
type DescribeIndexRequest struct {
CollectionID int64 `protobuf:"varint,1,opt,name=collectionID,proto3" json:"collectionID,omitempty"`
IndexName string `protobuf:"bytes,2,opt,name=index_name,json=indexName,proto3" json:"index_name,omitempty"`
Timestamp uint64 `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -1213,6 +1214,13 @@ func (m *DescribeIndexRequest) GetIndexName() string {
return ""
}
func (m *DescribeIndexRequest) GetTimestamp() uint64 {
if m != nil {
return m.Timestamp
}
return 0
}
type DescribeIndexResponse struct {
Status *commonpb.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
IndexInfos []*IndexInfo `protobuf:"bytes,2,rep,name=index_infos,json=indexInfos,proto3" json:"index_infos,omitempty"`
@ -2141,148 +2149,149 @@ func init() {
func init() { proto.RegisterFile("index_coord.proto", fileDescriptor_f9e019eb3fda53c2) }
var fileDescriptor_f9e019eb3fda53c2 = []byte{
// 2249 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0xcd, 0x8f, 0x1b, 0x49,
0x15, 0x4f, 0xbb, 0x3d, 0x33, 0xee, 0xd7, 0xf6, 0x7c, 0x54, 0xb2, 0xe0, 0x38, 0x09, 0x99, 0x74,
0x36, 0xc9, 0x80, 0xc8, 0x24, 0xcc, 0xb2, 0x68, 0x41, 0x80, 0x34, 0x99, 0xd9, 0x24, 0x4e, 0x36,
0xd1, 0xd0, 0x8e, 0x56, 0x62, 0x85, 0x30, 0x6d, 0x77, 0x79, 0xa6, 0x76, 0xda, 0x5d, 0x4e, 0x57,
0x75, 0x92, 0x09, 0x12, 0x82, 0xc3, 0x1e, 0x40, 0x2b, 0x21, 0x10, 0x12, 0xff, 0x00, 0xa7, 0xe5,
0x3f, 0xe0, 0xc2, 0x85, 0x23, 0x27, 0xee, 0x5c, 0xf8, 0x27, 0xb8, 0xa2, 0xfa, 0xe8, 0x76, 0x77,
0xbb, 0x3d, 0xf6, 0x7c, 0x20, 0x24, 0xf6, 0xe6, 0x7a, 0xf5, 0xea, 0xa3, 0xdf, 0xfb, 0xbd, 0xf7,
0x7b, 0xaf, 0x0c, 0x6b, 0x24, 0xf4, 0xf1, 0x9b, 0x6e, 0x9f, 0xd2, 0xc8, 0xdf, 0x1c, 0x45, 0x94,
0x53, 0x84, 0x86, 0x24, 0x78, 0x15, 0x33, 0x35, 0xda, 0x94, 0xf3, 0xad, 0x7a, 0x9f, 0x0e, 0x87,
0x34, 0x54, 0xb2, 0xd6, 0x32, 0x09, 0x39, 0x8e, 0x42, 0x2f, 0xd0, 0xe3, 0x7a, 0x76, 0x85, 0xf3,
0xcf, 0x2a, 0x58, 0x6d, 0xb1, 0xaa, 0x1d, 0x0e, 0x28, 0x72, 0xa0, 0xde, 0xa7, 0x41, 0x80, 0xfb,
0x9c, 0xd0, 0xb0, 0xbd, 0xdb, 0x34, 0xd6, 0x8d, 0x0d, 0xd3, 0xcd, 0xc9, 0x50, 0x13, 0x96, 0x06,
0x04, 0x07, 0x7e, 0x7b, 0xb7, 0x59, 0x91, 0xd3, 0xc9, 0x10, 0x5d, 0x03, 0x50, 0x17, 0x0c, 0xbd,
0x21, 0x6e, 0x9a, 0xeb, 0xc6, 0x86, 0xe5, 0x5a, 0x52, 0xf2, 0xdc, 0x1b, 0x62, 0xb1, 0x50, 0x0e,
0xda, 0xbb, 0xcd, 0xaa, 0x5a, 0xa8, 0x87, 0xe8, 0x01, 0xd8, 0xfc, 0x68, 0x84, 0xbb, 0x23, 0x2f,
0xf2, 0x86, 0xac, 0xb9, 0xb0, 0x6e, 0x6e, 0xd8, 0x5b, 0x37, 0x36, 0x73, 0x9f, 0xa6, 0xbf, 0xe9,
0x29, 0x3e, 0xfa, 0xd8, 0x0b, 0x62, 0xbc, 0xe7, 0x91, 0xc8, 0x05, 0xb1, 0x6a, 0x4f, 0x2e, 0x42,
0xbb, 0x50, 0x57, 0x87, 0xeb, 0x4d, 0x16, 0xe7, 0xdd, 0xc4, 0x96, 0xcb, 0xf4, 0x2e, 0x37, 0xf4,
0x2e, 0xd8, 0xef, 0x46, 0xf4, 0x35, 0x6b, 0x2e, 0xc9, 0x8b, 0xda, 0x5a, 0xe6, 0xd2, 0xd7, 0x4c,
0x7c, 0x25, 0xa7, 0xdc, 0x0b, 0x94, 0x42, 0x4d, 0x2a, 0x58, 0x52, 0x22, 0xa7, 0xdf, 0x87, 0x05,
0xc6, 0x3d, 0x8e, 0x9b, 0xd6, 0xba, 0xb1, 0xb1, 0xbc, 0x75, 0xbd, 0xf4, 0x02, 0xd2, 0xe2, 0x1d,
0xa1, 0xe6, 0x2a, 0x6d, 0xf4, 0x3e, 0x7c, 0x55, 0x5d, 0x5f, 0x0e, 0xbb, 0x03, 0x8f, 0x04, 0xdd,
0x08, 0x7b, 0x8c, 0x86, 0x4d, 0x90, 0x86, 0xbc, 0x44, 0xd2, 0x35, 0x0f, 0x3d, 0x12, 0xb8, 0x72,
0x0e, 0x39, 0xd0, 0x20, 0xac, 0xeb, 0xc5, 0x9c, 0x76, 0xe5, 0x7c, 0xd3, 0x5e, 0x37, 0x36, 0x6a,
0xae, 0x4d, 0xd8, 0x76, 0xcc, 0xa9, 0x3c, 0x06, 0x3d, 0x83, 0xb5, 0x98, 0xe1, 0xa8, 0x9b, 0x33,
0x4f, 0x7d, 0x5e, 0xf3, 0xac, 0x88, 0xb5, 0xed, 0x8c, 0x89, 0xbe, 0x09, 0x68, 0x84, 0x43, 0x9f,
0x84, 0xfb, 0x7a, 0x47, 0x69, 0x87, 0x86, 0xb4, 0xc3, 0xaa, 0x9e, 0x91, 0xfa, 0xc2, 0x1c, 0xce,
0x67, 0x06, 0xc0, 0x43, 0x89, 0x0f, 0x79, 0x97, 0xef, 0x27, 0x10, 0x21, 0xe1, 0x80, 0x4a, 0x78,
0xd9, 0x5b, 0xd7, 0x36, 0x27, 0x31, 0xbc, 0x99, 0x62, 0x52, 0x23, 0x48, 0xc2, 0xb3, 0x09, 0x4b,
0x3e, 0x0e, 0x30, 0xc7, 0xbe, 0x84, 0x5e, 0xcd, 0x4d, 0x86, 0xe8, 0x3a, 0xd8, 0xfd, 0x08, 0x0b,
0xcb, 0x71, 0xa2, 0xb1, 0x57, 0x75, 0x41, 0x89, 0x5e, 0x90, 0x21, 0x76, 0x3e, 0xab, 0x42, 0xbd,
0x83, 0xf7, 0x87, 0x38, 0xe4, 0xea, 0x26, 0xf3, 0x40, 0x7d, 0x1d, 0xec, 0x91, 0x17, 0x71, 0xa2,
0x55, 0x14, 0xdc, 0xb3, 0x22, 0x74, 0x15, 0x2c, 0xa6, 0x77, 0xdd, 0x95, 0xa7, 0x9a, 0xee, 0x58,
0x80, 0x2e, 0x43, 0x2d, 0x8c, 0x87, 0xca, 0x40, 0x1a, 0xf2, 0x61, 0x3c, 0x94, 0x30, 0xc9, 0x04,
0xc3, 0x42, 0x3e, 0x18, 0x9a, 0xb0, 0xd4, 0x8b, 0x89, 0x8c, 0xaf, 0x45, 0x35, 0xa3, 0x87, 0xe8,
0x2b, 0xb0, 0x18, 0x52, 0x1f, 0xb7, 0x77, 0x35, 0x2c, 0xf5, 0x08, 0xdd, 0x84, 0x86, 0x32, 0xea,
0x2b, 0x1c, 0x31, 0x42, 0x43, 0x0d, 0x4a, 0x85, 0xe4, 0x8f, 0x95, 0xec, 0xb4, 0xb8, 0xbc, 0x0e,
0xf6, 0x24, 0x16, 0x61, 0x30, 0x46, 0xe0, 0x6d, 0x58, 0x51, 0x87, 0x0f, 0x48, 0x80, 0xbb, 0x87,
0xf8, 0x88, 0x35, 0xed, 0x75, 0x73, 0xc3, 0x72, 0xd5, 0x9d, 0x1e, 0x92, 0x00, 0x3f, 0xc5, 0x47,
0x2c, 0xeb, 0xbb, 0xfa, 0xb1, 0xbe, 0x6b, 0x14, 0x7d, 0x87, 0x6e, 0xc1, 0x32, 0xc3, 0x11, 0xf1,
0x02, 0xf2, 0x16, 0x77, 0x19, 0x79, 0x8b, 0x9b, 0xcb, 0x52, 0xa7, 0x91, 0x4a, 0x3b, 0xe4, 0x2d,
0x16, 0x66, 0x78, 0x1d, 0x11, 0x8e, 0xbb, 0x07, 0x5e, 0xe8, 0xd3, 0xc1, 0xa0, 0xb9, 0x22, 0xcf,
0xa9, 0x4b, 0xe1, 0x63, 0x25, 0x73, 0xfe, 0x68, 0xc0, 0x45, 0x17, 0xef, 0x13, 0xc6, 0x71, 0xf4,
0x9c, 0xfa, 0xd8, 0xc5, 0x2f, 0x63, 0xcc, 0x38, 0xba, 0x0f, 0xd5, 0x9e, 0xc7, 0xb0, 0x86, 0xe4,
0xd5, 0x52, 0xeb, 0x3c, 0x63, 0xfb, 0x0f, 0x3c, 0x86, 0x5d, 0xa9, 0x89, 0xbe, 0x03, 0x4b, 0x9e,
0xef, 0x47, 0x98, 0x31, 0x09, 0x8c, 0x69, 0x8b, 0xb6, 0x95, 0x8e, 0x9b, 0x28, 0x67, 0xbc, 0x68,
0x66, 0xbd, 0xe8, 0xfc, 0xd6, 0x80, 0x4b, 0xf9, 0x9b, 0xb1, 0x11, 0x0d, 0x19, 0x46, 0xef, 0xc1,
0xa2, 0xf0, 0x45, 0xcc, 0xf4, 0xe5, 0xae, 0x94, 0x9e, 0xd3, 0x91, 0x2a, 0xae, 0x56, 0x15, 0x29,
0x95, 0x84, 0x84, 0x27, 0xe1, 0xae, 0x6e, 0x78, 0xa3, 0x18, 0x69, 0x9a, 0x18, 0xda, 0x21, 0xe1,
0x2a, 0xba, 0x5d, 0x20, 0xe9, 0x6f, 0xe7, 0xc7, 0x70, 0xe9, 0x11, 0xe6, 0x19, 0x4c, 0x68, 0x5b,
0xcd, 0x13, 0x3a, 0x79, 0x2e, 0xa8, 0x14, 0xb8, 0xc0, 0xf9, 0x93, 0x01, 0xef, 0x14, 0xf6, 0x3e,
0xcb, 0xd7, 0xa6, 0xe0, 0xae, 0x9c, 0x05, 0xdc, 0x66, 0x11, 0xdc, 0xce, 0x2f, 0x0d, 0xb8, 0xf2,
0x08, 0xf3, 0x6c, 0xe2, 0x38, 0x67, 0x4b, 0xa0, 0xaf, 0x01, 0xa4, 0x09, 0x83, 0x35, 0xcd, 0x75,
0x73, 0xc3, 0x74, 0x33, 0x12, 0xe7, 0xd7, 0x06, 0xac, 0x4d, 0x9c, 0x9f, 0xcf, 0x3b, 0x46, 0x31,
0xef, 0xfc, 0xb7, 0xcc, 0xf1, 0x7b, 0x03, 0xae, 0x96, 0x9b, 0xe3, 0x2c, 0xce, 0xfb, 0x81, 0x5a,
0x84, 0x05, 0x4a, 0x05, 0x29, 0xdd, 0x2a, 0xe3, 0x83, 0xc9, 0x33, 0xf5, 0x22, 0xe7, 0x73, 0x13,
0xd0, 0x8e, 0x4c, 0x16, 0x8a, 0x75, 0x4e, 0xe0, 0x9a, 0x53, 0x97, 0x32, 0x85, 0x82, 0xa5, 0x7a,
0x1e, 0x05, 0xcb, 0xc2, 0xa9, 0x0a, 0x96, 0xab, 0x60, 0x89, 0xac, 0xc9, 0xb8, 0x37, 0x1c, 0x49,
0xbe, 0xa8, 0xba, 0x63, 0xc1, 0x64, 0x79, 0xb0, 0x34, 0x67, 0x79, 0x50, 0x3b, 0x6d, 0x79, 0xe0,
0xbc, 0x81, 0x8b, 0x49, 0x60, 0x4b, 0xfa, 0x3e, 0x81, 0x3b, 0xf2, 0xa1, 0x50, 0x29, 0x86, 0xc2,
0x0c, 0xa7, 0x38, 0xff, 0xae, 0xc0, 0x5a, 0x3b, 0xe1, 0x9c, 0x3d, 0x8f, 0x1f, 0xc8, 0x9a, 0xe1,
0xf8, 0x48, 0x99, 0x8e, 0x80, 0x0c, 0x41, 0x9b, 0x53, 0x09, 0xba, 0x9a, 0x27, 0xe8, 0xfc, 0x05,
0x17, 0x8a, 0xa8, 0x39, 0x9f, 0x12, 0x75, 0x03, 0x56, 0x33, 0x84, 0x3b, 0xf2, 0xf8, 0x81, 0x28,
0x53, 0x05, 0xe3, 0x2e, 0x93, 0xec, 0xd7, 0x33, 0x74, 0x07, 0x56, 0x52, 0x86, 0xf4, 0x15, 0x71,
0xd6, 0x24, 0x42, 0xc6, 0x74, 0xea, 0x27, 0xcc, 0x99, 0x2f, 0x20, 0xac, 0x92, 0x02, 0x22, 0x5b,
0xcc, 0x40, 0xae, 0x98, 0x71, 0xfe, 0x62, 0x80, 0x9d, 0x06, 0xe8, 0x9c, 0x6d, 0x44, 0xce, 0x2f,
0x95, 0xa2, 0x5f, 0x6e, 0x40, 0x1d, 0x87, 0x5e, 0x2f, 0xc0, 0x1a, 0xb7, 0xa6, 0xc2, 0xad, 0x92,
0x29, 0xdc, 0x3e, 0x04, 0x7b, 0x5c, 0x4a, 0x26, 0x31, 0x78, 0x6b, 0x6a, 0x2d, 0x99, 0x05, 0x85,
0x0b, 0x69, 0x4d, 0xc9, 0x9c, 0xdf, 0x54, 0xc6, 0x34, 0xa7, 0x10, 0x7b, 0x96, 0x64, 0xf6, 0x13,
0xa8, 0xeb, 0xaf, 0x50, 0x25, 0xae, 0x4a, 0x69, 0xdf, 0x2d, 0xbb, 0x56, 0xd9, 0xa1, 0x9b, 0x19,
0x33, 0x7e, 0x18, 0xf2, 0xe8, 0xc8, 0xb5, 0xd9, 0x58, 0xd2, 0xea, 0xc2, 0x6a, 0x51, 0x01, 0xad,
0x82, 0x79, 0x88, 0x8f, 0xb4, 0x8d, 0xc5, 0x4f, 0x91, 0xfe, 0x5f, 0x09, 0xec, 0x68, 0xd6, 0xbf,
0x7e, 0x6c, 0x3e, 0x1d, 0x50, 0x57, 0x69, 0x7f, 0xaf, 0xf2, 0x81, 0xe1, 0xfc, 0xc1, 0x80, 0xd5,
0xdd, 0x88, 0x8e, 0x4e, 0x9c, 0x4a, 0x1d, 0xa8, 0x67, 0xea, 0xe2, 0x24, 0x7a, 0x73, 0xb2, 0x59,
0x49, 0xf5, 0x32, 0xd4, 0xfc, 0x88, 0x8e, 0xba, 0x5e, 0x10, 0xc8, 0xc0, 0x12, 0x25, 0x62, 0x44,
0x47, 0xdb, 0x41, 0x20, 0x2a, 0x91, 0x5d, 0xcc, 0xfa, 0x11, 0xe9, 0x9d, 0x3c, 0xc9, 0xcf, 0xa8,
0x44, 0x3e, 0x37, 0xe0, 0x9d, 0xc2, 0xde, 0x67, 0xf1, 0xff, 0x0f, 0xf3, 0xa8, 0x54, 0xee, 0x9f,
0xd1, 0xe1, 0x64, 0xd1, 0xe8, 0x49, 0x86, 0x95, 0x73, 0x0f, 0x44, 0x56, 0xd9, 0x8b, 0xe8, 0xbe,
0xac, 0x1f, 0xcf, 0xef, 0x8b, 0xff, 0x66, 0xc0, 0xb5, 0x29, 0x67, 0x9c, 0xe5, 0xcb, 0x8b, 0xad,
0x73, 0x65, 0x56, 0xeb, 0x6c, 0x16, 0x5b, 0xe7, 0xf2, 0xce, 0xb2, 0x3a, 0xa5, 0xb3, 0xfc, 0x73,
0x05, 0x1a, 0x1d, 0x4e, 0x23, 0x6f, 0x1f, 0xef, 0xd0, 0x70, 0x40, 0xf6, 0x45, 0x62, 0x4e, 0x2a,
0x72, 0x43, 0x7e, 0x74, 0x5a, 0x73, 0xdf, 0x80, 0xba, 0xd7, 0xef, 0x63, 0xc6, 0x44, 0x83, 0xa2,
0xf3, 0x8d, 0xe5, 0xda, 0x4a, 0xf6, 0x54, 0x88, 0xd0, 0x37, 0x60, 0x8d, 0xe1, 0x7e, 0x84, 0x79,
0x77, 0xac, 0xa9, 0x31, 0xba, 0xa2, 0x26, 0xb6, 0x13, 0x6d, 0x51, 0xc2, 0xc7, 0x0c, 0x77, 0x3a,
0x1f, 0x69, 0x9c, 0xea, 0x91, 0x28, 0xa0, 0x7a, 0x71, 0xff, 0x10, 0xf3, 0x2c, 0x01, 0x80, 0x12,
0x49, 0x88, 0x5f, 0x01, 0x2b, 0xa2, 0x94, 0xcb, 0xac, 0x2d, 0xd9, 0xda, 0x72, 0x6b, 0x42, 0x20,
0x12, 0x93, 0xde, 0xb5, 0xbd, 0xfd, 0x4c, 0xb3, 0xb4, 0x1e, 0x89, 0x2e, 0xb4, 0xbd, 0xfd, 0xec,
0xc3, 0xd0, 0x1f, 0x51, 0x12, 0x72, 0x99, 0xc2, 0x2d, 0x37, 0x2b, 0x12, 0x9f, 0xc7, 0x94, 0x25,
0xba, 0xa2, 0xc0, 0x90, 0xe9, 0xdb, 0x72, 0x6d, 0x2d, 0x7b, 0x71, 0x34, 0xc2, 0xce, 0xbf, 0x4c,
0x58, 0x55, 0x55, 0xd2, 0x13, 0xda, 0x4b, 0xc0, 0x74, 0x15, 0xac, 0x7e, 0x10, 0x8b, 0x86, 0x43,
0x23, 0xc9, 0x72, 0xc7, 0x02, 0x61, 0x91, 0x2c, 0xd1, 0x44, 0x78, 0x40, 0xde, 0x68, 0xcb, 0xad,
0x8c, 0x99, 0x46, 0x8a, 0xb3, 0x9c, 0x68, 0x4e, 0x70, 0xa2, 0xef, 0x71, 0x4f, 0x13, 0x55, 0x55,
0x12, 0x95, 0x25, 0x24, 0x8a, 0xa3, 0x26, 0xa8, 0x67, 0xa1, 0x84, 0x7a, 0x32, 0x5c, 0xbc, 0x98,
0xe7, 0xe2, 0x3c, 0xd4, 0x97, 0x8a, 0x29, 0xe5, 0x31, 0x2c, 0x27, 0x86, 0xe9, 0x4b, 0x8c, 0x48,
0xeb, 0x95, 0x34, 0x42, 0x32, 0x25, 0x66, 0xc1, 0xe4, 0x36, 0x58, 0x0e, 0x5b, 0x45, 0xee, 0xb6,
0x4e, 0xc5, 0xdd, 0x85, 0xba, 0x11, 0x4e, 0x53, 0x37, 0x66, 0x79, 0xd8, 0xce, 0xf3, 0xf0, 0x47,
0xb0, 0xfa, 0xa3, 0x18, 0x47, 0x47, 0x4f, 0x68, 0x8f, 0xcd, 0xe7, 0xe3, 0x16, 0xd4, 0xb4, 0xa3,
0x92, 0x94, 0x9d, 0x8e, 0x9d, 0x7f, 0x18, 0xd0, 0x90, 0xe1, 0xf6, 0xc2, 0x63, 0x87, 0xc9, 0xfb,
0x4b, 0xe2, 0x65, 0x23, 0xef, 0xe5, 0x53, 0x76, 0x1c, 0x25, 0x8f, 0x07, 0x66, 0xd9, 0xe3, 0x41,
0x49, 0x25, 0x53, 0x2d, 0xad, 0x64, 0x0a, 0x2d, 0xcc, 0xc2, 0x44, 0x0b, 0xf3, 0x85, 0x01, 0x6b,
0x19, 0x1b, 0x9d, 0x25, 0xe1, 0xe5, 0x2c, 0x5b, 0x29, 0x5a, 0xf6, 0x41, 0x9e, 0x08, 0xcc, 0x32,
0x57, 0x67, 0x88, 0x20, 0xb1, 0x71, 0x8e, 0x0c, 0x9e, 0xc2, 0x8a, 0x20, 0xe3, 0xf3, 0x71, 0xe7,
0xdf, 0x0d, 0x58, 0x7a, 0x42, 0x7b, 0xd2, 0x91, 0x59, 0x0c, 0x19, 0xf9, 0x87, 0xa9, 0x55, 0x30,
0x7d, 0x32, 0xd4, 0xd9, 0x5b, 0xfc, 0x14, 0x31, 0xc6, 0xb8, 0x17, 0xf1, 0xf1, 0xd3, 0x9a, 0x28,
0xd5, 0x84, 0x44, 0xbe, 0xce, 0x5c, 0x86, 0x1a, 0x0e, 0x7d, 0x35, 0xa9, 0xeb, 0x61, 0x1c, 0xfa,
0x72, 0xea, 0x7c, 0x5a, 0x9c, 0x4b, 0xb0, 0x30, 0xa2, 0xe3, 0xe7, 0x30, 0x35, 0x70, 0x2e, 0x01,
0x7a, 0x84, 0xf9, 0x13, 0xda, 0x13, 0x5e, 0x49, 0xcc, 0xe3, 0xfc, 0xb5, 0x22, 0xdb, 0x8f, 0xb1,
0xf8, 0x2c, 0x0e, 0x76, 0xa0, 0xa1, 0xe8, 0xea, 0x53, 0xda, 0xeb, 0x86, 0x71, 0x62, 0x14, 0x5b,
0x0a, 0x9f, 0xd0, 0xde, 0xf3, 0x78, 0x88, 0xee, 0xc2, 0x45, 0x12, 0x76, 0x47, 0x9a, 0x41, 0x53,
0x4d, 0x65, 0xa5, 0x55, 0x12, 0x26, 0xdc, 0xaa, 0xd5, 0x6f, 0xc3, 0x0a, 0x0e, 0x5f, 0xc6, 0x38,
0xc6, 0xa9, 0xaa, 0xb2, 0x59, 0x43, 0x8b, 0xb5, 0x9e, 0x60, 0x4a, 0x8f, 0x1d, 0x76, 0x59, 0x40,
0x39, 0xd3, 0x39, 0xd1, 0x12, 0x92, 0x8e, 0x10, 0xa0, 0x0f, 0xc0, 0x12, 0xcb, 0x15, 0xb4, 0x54,
0x1b, 0x71, 0xa5, 0x0c, 0x5a, 0xda, 0xdf, 0x6e, 0xed, 0x53, 0xf5, 0x83, 0x89, 0x00, 0xd1, 0x85,
0xb5, 0x4f, 0xd8, 0xa1, 0x66, 0x1a, 0x50, 0xa2, 0x5d, 0xc2, 0x0e, 0x9d, 0x9f, 0xc2, 0xe5, 0xec,
0xc3, 0x0c, 0x61, 0x9c, 0xf4, 0xcf, 0xb3, 0xfa, 0xf8, 0x9d, 0x01, 0xad, 0xb2, 0x03, 0xfe, 0x87,
0x45, 0xd7, 0xd6, 0xaf, 0x6c, 0x00, 0x39, 0xb3, 0x43, 0x69, 0xe4, 0xa3, 0x40, 0x42, 0x6b, 0x87,
0x0e, 0x47, 0x34, 0xc4, 0x21, 0x97, 0x19, 0x8b, 0xa1, 0xcd, 0xfc, 0x7e, 0x7a, 0x30, 0xa9, 0xa8,
0x6d, 0xd5, 0x7a, 0xb7, 0x54, 0xbf, 0xa0, 0xec, 0x5c, 0x40, 0x2f, 0x65, 0xfb, 0x31, 0x36, 0xc5,
0xce, 0x81, 0x17, 0x86, 0x38, 0x40, 0x5b, 0x53, 0x1e, 0xeb, 0xca, 0x94, 0x93, 0x33, 0x6f, 0x96,
0x9e, 0xd9, 0xe1, 0x11, 0x09, 0xf7, 0x13, 0x13, 0x3b, 0x17, 0xd0, 0x0b, 0xb0, 0x33, 0x2f, 0x26,
0xe8, 0x76, 0x99, 0xa5, 0x26, 0x9f, 0x54, 0x5a, 0xc7, 0xf9, 0xc2, 0xb9, 0x80, 0x06, 0xd0, 0xc8,
0x3d, 0xe9, 0xa1, 0x8d, 0xe3, 0xba, 0x9e, 0xec, 0x3b, 0x5a, 0xeb, 0xeb, 0x73, 0x68, 0xa6, 0xb7,
0xff, 0xb9, 0x32, 0xd8, 0xc4, 0x9b, 0xd8, 0xbd, 0x29, 0x9b, 0x4c, 0x7b, 0xbd, 0x6b, 0xdd, 0x9f,
0x7f, 0x41, 0x7a, 0xb8, 0x3f, 0xfe, 0x48, 0x15, 0x50, 0x77, 0x66, 0xb7, 0x76, 0xea, 0xb4, 0x8d,
0x79, 0x7b, 0x40, 0xe7, 0x02, 0xda, 0x03, 0x2b, 0xed, 0xc2, 0xd0, 0xbb, 0x65, 0x0b, 0x8b, 0x4d,
0xda, 0x1c, 0xce, 0xc9, 0x75, 0x39, 0xe5, 0xce, 0x29, 0x6b, 0xb2, 0xca, 0x9d, 0x53, 0xda, 0x32,
0x39, 0x17, 0x50, 0x2c, 0x63, 0xa7, 0x10, 0xdd, 0xe8, 0xee, 0x2c, 0xff, 0xe6, 0xd2, 0x4c, 0x6b,
0x73, 0x5e, 0xf5, 0xf4, 0xd8, 0x5f, 0x8c, 0x9f, 0x93, 0x73, 0x2d, 0x0d, 0xba, 0x7f, 0xdc, 0x56,
0x65, 0x1d, 0x56, 0xeb, 0x5b, 0x27, 0x58, 0x91, 0xc1, 0x24, 0xea, 0x1c, 0xd0, 0xd7, 0xaa, 0x58,
0x8c, 0x23, 0x4f, 0xe4, 0xc2, 0x92, 0xc3, 0x75, 0x08, 0x4f, 0xaa, 0x4e, 0x3d, 0xfc, 0x98, 0x15,
0xe9, 0xe1, 0x5d, 0x80, 0x47, 0x98, 0x3f, 0xc3, 0x3c, 0x12, 0xb6, 0xbe, 0x3d, 0x2d, 0x4f, 0x69,
0x85, 0xe4, 0xa8, 0x3b, 0x33, 0xf5, 0xd2, 0x03, 0x7a, 0x60, 0xef, 0x1c, 0xe0, 0xfe, 0xe1, 0x63,
0xec, 0x05, 0xfc, 0x00, 0x95, 0xaf, 0xcc, 0x68, 0x4c, 0x81, 0x7c, 0x99, 0x62, 0x72, 0xc6, 0xd6,
0x17, 0x8b, 0xfa, 0x8f, 0xe8, 0xe7, 0xd4, 0xc7, 0xff, 0xff, 0x29, 0x78, 0x0f, 0xac, 0xb4, 0x1d,
0x2b, 0x8f, 0xf0, 0x62, 0xb7, 0x36, 0x2b, 0xc2, 0x3f, 0x01, 0x2b, 0x2d, 0x6c, 0xcb, 0x77, 0x2c,
0xf6, 0x06, 0xad, 0x5b, 0x33, 0xb4, 0xd2, 0xdb, 0x3e, 0x87, 0x5a, 0x52, 0x88, 0xa2, 0x9b, 0xd3,
0xd2, 0x51, 0x76, 0xe7, 0x19, 0x77, 0xfd, 0x19, 0xd8, 0x99, 0x2a, 0xad, 0x9c, 0x80, 0x26, 0xab,
0xbb, 0xd6, 0x9d, 0x99, 0x7a, 0x5f, 0x8e, 0x80, 0x7c, 0xf0, 0xed, 0x4f, 0xb6, 0xf6, 0x09, 0x3f,
0x88, 0x7b, 0xc2, 0xb2, 0xf7, 0x94, 0xe6, 0x5d, 0x42, 0xf5, 0xaf, 0x7b, 0xc9, 0x2d, 0xef, 0xc9,
0x9d, 0xee, 0x49, 0x3b, 0x8d, 0x7a, 0xbd, 0x45, 0x39, 0x7c, 0xef, 0x3f, 0x01, 0x00, 0x00, 0xff,
0xff, 0x65, 0x43, 0xa0, 0xdd, 0x47, 0x22, 0x00, 0x00,
// 2257 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0x4f, 0x8f, 0x1b, 0x49,
0x15, 0x4f, 0xbb, 0x3d, 0x33, 0xee, 0xd7, 0xf6, 0xfc, 0xa9, 0xcc, 0x82, 0xe3, 0x24, 0x64, 0xd2,
0xd9, 0x24, 0x03, 0x22, 0x93, 0x30, 0xcb, 0xa2, 0x05, 0x01, 0xd2, 0x64, 0x66, 0x93, 0x38, 0xd9,
0x44, 0x43, 0x3b, 0x5a, 0x89, 0x15, 0xc2, 0xb4, 0xdd, 0xe5, 0x99, 0xda, 0x69, 0x77, 0x39, 0x5d,
0xd5, 0x49, 0x26, 0x48, 0x08, 0x0e, 0x7b, 0x00, 0xad, 0x84, 0x40, 0x48, 0x7c, 0x01, 0x4e, 0xcb,
0x37, 0xe0, 0xc2, 0x85, 0x23, 0x27, 0xee, 0x5c, 0xf8, 0x12, 0x5c, 0x51, 0xfd, 0xe9, 0x76, 0x77,
0xbb, 0x3d, 0x76, 0x66, 0x06, 0x21, 0xb1, 0x37, 0xd7, 0xab, 0x57, 0x7f, 0xfa, 0xbd, 0xdf, 0x7b,
0xbf, 0xf7, 0xca, 0xb0, 0x46, 0x42, 0x1f, 0xbf, 0xee, 0xf6, 0x29, 0x8d, 0xfc, 0xad, 0x51, 0x44,
0x39, 0x45, 0x68, 0x48, 0x82, 0x97, 0x31, 0x53, 0xa3, 0x2d, 0x39, 0xdf, 0xaa, 0xf7, 0xe9, 0x70,
0x48, 0x43, 0x25, 0x6b, 0x2d, 0x93, 0x90, 0xe3, 0x28, 0xf4, 0x02, 0x3d, 0xae, 0x67, 0x57, 0x38,
0xff, 0xac, 0x82, 0xd5, 0x16, 0xab, 0xda, 0xe1, 0x80, 0x22, 0x07, 0xea, 0x7d, 0x1a, 0x04, 0xb8,
0xcf, 0x09, 0x0d, 0xdb, 0x7b, 0x4d, 0x63, 0xc3, 0xd8, 0x34, 0xdd, 0x9c, 0x0c, 0x35, 0x61, 0x69,
0x40, 0x70, 0xe0, 0xb7, 0xf7, 0x9a, 0x15, 0x39, 0x9d, 0x0c, 0xd1, 0x55, 0x00, 0x75, 0xc1, 0xd0,
0x1b, 0xe2, 0xa6, 0xb9, 0x61, 0x6c, 0x5a, 0xae, 0x25, 0x25, 0xcf, 0xbc, 0x21, 0x16, 0x0b, 0xe5,
0xa0, 0xbd, 0xd7, 0xac, 0xaa, 0x85, 0x7a, 0x88, 0xee, 0x83, 0xcd, 0x8f, 0x47, 0xb8, 0x3b, 0xf2,
0x22, 0x6f, 0xc8, 0x9a, 0x0b, 0x1b, 0xe6, 0xa6, 0xbd, 0x7d, 0x7d, 0x2b, 0xf7, 0x69, 0xfa, 0x9b,
0x9e, 0xe0, 0xe3, 0x8f, 0xbd, 0x20, 0xc6, 0xfb, 0x1e, 0x89, 0x5c, 0x10, 0xab, 0xf6, 0xe5, 0x22,
0xb4, 0x07, 0x75, 0x75, 0xb8, 0xde, 0x64, 0x71, 0xde, 0x4d, 0x6c, 0xb9, 0x4c, 0xef, 0x72, 0x5d,
0xef, 0x82, 0xfd, 0x6e, 0x44, 0x5f, 0xb1, 0xe6, 0x92, 0xbc, 0xa8, 0xad, 0x65, 0x2e, 0x7d, 0xc5,
0xc4, 0x57, 0x72, 0xca, 0xbd, 0x40, 0x29, 0xd4, 0xa4, 0x82, 0x25, 0x25, 0x72, 0xfa, 0x7d, 0x58,
0x60, 0xdc, 0xe3, 0xb8, 0x69, 0x6d, 0x18, 0x9b, 0xcb, 0xdb, 0xd7, 0x4a, 0x2f, 0x20, 0x2d, 0xde,
0x11, 0x6a, 0xae, 0xd2, 0x46, 0xef, 0xc3, 0x57, 0xd5, 0xf5, 0xe5, 0xb0, 0x3b, 0xf0, 0x48, 0xd0,
0x8d, 0xb0, 0xc7, 0x68, 0xd8, 0x04, 0x69, 0xc8, 0x75, 0x92, 0xae, 0x79, 0xe0, 0x91, 0xc0, 0x95,
0x73, 0xc8, 0x81, 0x06, 0x61, 0x5d, 0x2f, 0xe6, 0xb4, 0x2b, 0xe7, 0x9b, 0xf6, 0x86, 0xb1, 0x59,
0x73, 0x6d, 0xc2, 0x76, 0x62, 0x4e, 0xe5, 0x31, 0xe8, 0x29, 0xac, 0xc5, 0x0c, 0x47, 0xdd, 0x9c,
0x79, 0xea, 0xf3, 0x9a, 0x67, 0x45, 0xac, 0x6d, 0x67, 0x4c, 0xf4, 0x4d, 0x40, 0x23, 0x1c, 0xfa,
0x24, 0x3c, 0xd0, 0x3b, 0x4a, 0x3b, 0x34, 0xa4, 0x1d, 0x56, 0xf5, 0x8c, 0xd4, 0x17, 0xe6, 0x70,
0x3e, 0x33, 0x00, 0x1e, 0x48, 0x7c, 0xc8, 0xbb, 0x7c, 0x3f, 0x81, 0x08, 0x09, 0x07, 0x54, 0xc2,
0xcb, 0xde, 0xbe, 0xba, 0x35, 0x89, 0xe1, 0xad, 0x14, 0x93, 0x1a, 0x41, 0x12, 0x9e, 0x4d, 0x58,
0xf2, 0x71, 0x80, 0x39, 0xf6, 0x25, 0xf4, 0x6a, 0x6e, 0x32, 0x44, 0xd7, 0xc0, 0xee, 0x47, 0x58,
0x58, 0x8e, 0x13, 0x8d, 0xbd, 0xaa, 0x0b, 0x4a, 0xf4, 0x9c, 0x0c, 0xb1, 0xf3, 0x59, 0x15, 0xea,
0x1d, 0x7c, 0x30, 0xc4, 0x21, 0x57, 0x37, 0x99, 0x07, 0xea, 0x1b, 0x60, 0x8f, 0xbc, 0x88, 0x13,
0xad, 0xa2, 0xe0, 0x9e, 0x15, 0xa1, 0x2b, 0x60, 0x31, 0xbd, 0xeb, 0x9e, 0x3c, 0xd5, 0x74, 0xc7,
0x02, 0x74, 0x09, 0x6a, 0x61, 0x3c, 0x54, 0x06, 0xd2, 0x90, 0x0f, 0xe3, 0xa1, 0x84, 0x49, 0x26,
0x18, 0x16, 0xf2, 0xc1, 0xd0, 0x84, 0xa5, 0x5e, 0x4c, 0x64, 0x7c, 0x2d, 0xaa, 0x19, 0x3d, 0x44,
0x5f, 0x81, 0xc5, 0x90, 0xfa, 0xb8, 0xbd, 0xa7, 0x61, 0xa9, 0x47, 0xe8, 0x06, 0x34, 0x94, 0x51,
0x5f, 0xe2, 0x88, 0x11, 0x1a, 0x6a, 0x50, 0x2a, 0x24, 0x7f, 0xac, 0x64, 0xa7, 0xc5, 0xe5, 0x35,
0xb0, 0x27, 0xb1, 0x08, 0x83, 0x31, 0x02, 0x6f, 0xc1, 0x8a, 0x3a, 0x7c, 0x40, 0x02, 0xdc, 0x3d,
0xc2, 0xc7, 0xac, 0x69, 0x6f, 0x98, 0x9b, 0x96, 0xab, 0xee, 0xf4, 0x80, 0x04, 0xf8, 0x09, 0x3e,
0x66, 0x59, 0xdf, 0xd5, 0x4f, 0xf4, 0x5d, 0xa3, 0xe8, 0x3b, 0x74, 0x13, 0x96, 0x19, 0x8e, 0x88,
0x17, 0x90, 0x37, 0xb8, 0xcb, 0xc8, 0x1b, 0xdc, 0x5c, 0x96, 0x3a, 0x8d, 0x54, 0xda, 0x21, 0x6f,
0xb0, 0x30, 0xc3, 0xab, 0x88, 0x70, 0xdc, 0x3d, 0xf4, 0x42, 0x9f, 0x0e, 0x06, 0xcd, 0x15, 0x79,
0x4e, 0x5d, 0x0a, 0x1f, 0x29, 0x99, 0xf3, 0x47, 0x03, 0x2e, 0xba, 0xf8, 0x80, 0x30, 0x8e, 0xa3,
0x67, 0xd4, 0xc7, 0x2e, 0x7e, 0x11, 0x63, 0xc6, 0xd1, 0x3d, 0xa8, 0xf6, 0x3c, 0x86, 0x35, 0x24,
0xaf, 0x94, 0x5a, 0xe7, 0x29, 0x3b, 0xb8, 0xef, 0x31, 0xec, 0x4a, 0x4d, 0xf4, 0x1d, 0x58, 0xf2,
0x7c, 0x3f, 0xc2, 0x8c, 0x49, 0x60, 0x4c, 0x5b, 0xb4, 0xa3, 0x74, 0xdc, 0x44, 0x39, 0xe3, 0x45,
0x33, 0xeb, 0x45, 0xe7, 0xb7, 0x06, 0xac, 0xe7, 0x6f, 0xc6, 0x46, 0x34, 0x64, 0x18, 0xbd, 0x07,
0x8b, 0xc2, 0x17, 0x31, 0xd3, 0x97, 0xbb, 0x5c, 0x7a, 0x4e, 0x47, 0xaa, 0xb8, 0x5a, 0x55, 0xa4,
0x54, 0x12, 0x12, 0x9e, 0x84, 0xbb, 0xba, 0xe1, 0xf5, 0x62, 0xa4, 0x69, 0x62, 0x68, 0x87, 0x84,
0xab, 0xe8, 0x76, 0x81, 0xa4, 0xbf, 0x9d, 0x1f, 0xc3, 0xfa, 0x43, 0xcc, 0x33, 0x98, 0xd0, 0xb6,
0x9a, 0x27, 0x74, 0xf2, 0x5c, 0x50, 0x29, 0x70, 0x81, 0xf3, 0x27, 0x03, 0xde, 0x29, 0xec, 0x7d,
0x96, 0xaf, 0x4d, 0xc1, 0x5d, 0x39, 0x0b, 0xb8, 0xcd, 0x22, 0xb8, 0x9d, 0x5f, 0x1a, 0x70, 0xf9,
0x21, 0xe6, 0xd9, 0xc4, 0x71, 0xce, 0x96, 0x40, 0x5f, 0x03, 0x48, 0x13, 0x06, 0x6b, 0x9a, 0x1b,
0xe6, 0xa6, 0xe9, 0x66, 0x24, 0xce, 0xaf, 0x0d, 0x58, 0x9b, 0x38, 0x3f, 0x9f, 0x77, 0x8c, 0x62,
0xde, 0xf9, 0x6f, 0x99, 0xe3, 0xf7, 0x06, 0x5c, 0x29, 0x37, 0xc7, 0x59, 0x9c, 0xf7, 0x03, 0xb5,
0x08, 0x0b, 0x94, 0x0a, 0x52, 0xba, 0x59, 0xc6, 0x07, 0x93, 0x67, 0xea, 0x45, 0xce, 0xe7, 0x26,
0xa0, 0x5d, 0x99, 0x2c, 0x14, 0xeb, 0xbc, 0x85, 0x6b, 0x4e, 0x5d, 0xca, 0x14, 0x0a, 0x96, 0xea,
0x79, 0x14, 0x2c, 0x0b, 0xa7, 0x2a, 0x58, 0xae, 0x80, 0x25, 0xb2, 0x26, 0xe3, 0xde, 0x70, 0x24,
0xf9, 0xa2, 0xea, 0x8e, 0x05, 0x93, 0xe5, 0xc1, 0xd2, 0x9c, 0xe5, 0x41, 0xed, 0xb4, 0xe5, 0x81,
0xf3, 0x1a, 0x2e, 0x26, 0x81, 0x2d, 0xe9, 0xfb, 0x2d, 0xdc, 0x91, 0x0f, 0x85, 0x4a, 0x31, 0x14,
0x66, 0x38, 0xc5, 0xf9, 0x77, 0x05, 0xd6, 0xda, 0x09, 0xe7, 0xec, 0x7b, 0xfc, 0x50, 0xd6, 0x0c,
0x27, 0x47, 0xca, 0x74, 0x04, 0x64, 0x08, 0xda, 0x9c, 0x4a, 0xd0, 0xd5, 0x3c, 0x41, 0xe7, 0x2f,
0xb8, 0x50, 0x44, 0xcd, 0xf9, 0x94, 0xa8, 0x9b, 0xb0, 0x9a, 0x21, 0xdc, 0x91, 0xc7, 0x0f, 0x45,
0x99, 0x2a, 0x18, 0x77, 0x99, 0x64, 0xbf, 0x9e, 0xa1, 0xdb, 0xb0, 0x92, 0x32, 0xa4, 0xaf, 0x88,
0xb3, 0x26, 0x11, 0x32, 0xa6, 0x53, 0x3f, 0x61, 0xce, 0x7c, 0x01, 0x61, 0x95, 0x14, 0x10, 0xd9,
0x62, 0x06, 0x72, 0xc5, 0x8c, 0xf3, 0x17, 0x03, 0xec, 0x34, 0x40, 0xe7, 0x6c, 0x23, 0x72, 0x7e,
0xa9, 0x14, 0xfd, 0x72, 0x1d, 0xea, 0x38, 0xf4, 0x7a, 0x01, 0xd6, 0xb8, 0x35, 0x15, 0x6e, 0x95,
0x4c, 0xe1, 0xf6, 0x01, 0xd8, 0xe3, 0x52, 0x32, 0x89, 0xc1, 0x9b, 0x53, 0x6b, 0xc9, 0x2c, 0x28,
0x5c, 0x48, 0x6b, 0x4a, 0xe6, 0xfc, 0xa6, 0x32, 0xa6, 0x39, 0x85, 0xd8, 0xb3, 0x24, 0xb3, 0x9f,
0x40, 0x5d, 0x7f, 0x85, 0x2a, 0x71, 0x55, 0x4a, 0xfb, 0x6e, 0xd9, 0xb5, 0xca, 0x0e, 0xdd, 0xca,
0x98, 0xf1, 0xc3, 0x90, 0x47, 0xc7, 0xae, 0xcd, 0xc6, 0x92, 0x56, 0x17, 0x56, 0x8b, 0x0a, 0x68,
0x15, 0xcc, 0x23, 0x7c, 0xac, 0x6d, 0x2c, 0x7e, 0x8a, 0xf4, 0xff, 0x52, 0x60, 0x47, 0xb3, 0xfe,
0xb5, 0x13, 0xf3, 0xe9, 0x80, 0xba, 0x4a, 0xfb, 0x7b, 0x95, 0x0f, 0x0c, 0xe7, 0x0f, 0x06, 0xac,
0xee, 0x45, 0x74, 0xf4, 0xd6, 0xa9, 0xd4, 0x81, 0x7a, 0xa6, 0x2e, 0x4e, 0xa2, 0x37, 0x27, 0x9b,
0x95, 0x54, 0x2f, 0x41, 0xcd, 0x8f, 0xe8, 0xa8, 0xeb, 0x05, 0x81, 0x0c, 0x2c, 0x51, 0x22, 0x46,
0x74, 0xb4, 0x13, 0x04, 0xce, 0x2b, 0x58, 0xdf, 0xc3, 0xac, 0x1f, 0x91, 0xde, 0xdb, 0x27, 0xf9,
0x19, 0xfc, 0x9b, 0x4b, 0xa0, 0x66, 0x21, 0x81, 0x3a, 0x9f, 0x1b, 0xf0, 0x4e, 0xe1, 0xe4, 0xb3,
0xa0, 0xe3, 0x87, 0x79, 0xcc, 0x2a, 0x70, 0xcc, 0xe8, 0x7f, 0xb2, 0x58, 0xf5, 0x24, 0xff, 0xca,
0xb9, 0xfb, 0x22, 0xe7, 0xec, 0x47, 0xf4, 0x40, 0x56, 0x97, 0xe7, 0x57, 0x99, 0xfd, 0xcd, 0x80,
0xab, 0x53, 0xce, 0x38, 0xcb, 0x97, 0x17, 0x1b, 0xeb, 0xca, 0xac, 0xc6, 0xda, 0x2c, 0x36, 0xd6,
0xe5, 0x7d, 0x67, 0x75, 0x4a, 0xdf, 0xf9, 0xe7, 0x0a, 0x34, 0x3a, 0x9c, 0x46, 0xde, 0x01, 0xde,
0xa5, 0xe1, 0x80, 0x1c, 0x88, 0xb4, 0x9d, 0xd4, 0xeb, 0x86, 0xfc, 0xe8, 0xb4, 0x22, 0xbf, 0x0e,
0x75, 0xaf, 0xdf, 0xc7, 0x8c, 0x89, 0xf6, 0x45, 0x67, 0x23, 0xcb, 0xb5, 0x95, 0xec, 0x89, 0x10,
0xa1, 0x6f, 0xc0, 0x1a, 0xc3, 0xfd, 0x08, 0xf3, 0xee, 0x58, 0x53, 0x23, 0x78, 0x45, 0x4d, 0xec,
0x24, 0xda, 0xa2, 0xc0, 0x8f, 0x19, 0xee, 0x74, 0x3e, 0xd2, 0x28, 0xd6, 0x23, 0x51, 0x5e, 0xf5,
0xe2, 0xfe, 0x11, 0xe6, 0x59, 0x7a, 0x00, 0x25, 0x92, 0x50, 0xbc, 0x0c, 0x56, 0x44, 0x29, 0x97,
0x39, 0x5d, 0x72, 0xb9, 0xe5, 0xd6, 0x84, 0x40, 0xa4, 0x2d, 0xbd, 0x6b, 0x7b, 0xe7, 0xa9, 0xe6,
0x70, 0x3d, 0x12, 0x3d, 0x6a, 0x7b, 0xe7, 0xe9, 0x87, 0xa1, 0x3f, 0xa2, 0x24, 0xe4, 0x32, 0xc1,
0x5b, 0x6e, 0x56, 0x24, 0x3e, 0x8f, 0x29, 0x4b, 0x74, 0x45, 0xf9, 0x21, 0x93, 0xbb, 0xe5, 0xda,
0x5a, 0xf6, 0xfc, 0x78, 0x84, 0x9d, 0x7f, 0x99, 0xb0, 0xaa, 0x6a, 0xa8, 0xc7, 0xb4, 0x97, 0x80,
0xe9, 0x0a, 0x58, 0xfd, 0x20, 0x16, 0xed, 0x88, 0x46, 0x92, 0xe5, 0x8e, 0x05, 0xc2, 0x22, 0x59,
0x1a, 0x8a, 0xf0, 0x80, 0xbc, 0xd6, 0x96, 0x5b, 0x19, 0xf3, 0x90, 0x14, 0x67, 0x19, 0xd3, 0x9c,
0x60, 0x4c, 0xdf, 0xe3, 0x9e, 0xa6, 0xb1, 0xaa, 0xa4, 0x31, 0x4b, 0x48, 0x14, 0x83, 0x4d, 0x10,
0xd3, 0x42, 0x09, 0x31, 0x65, 0x98, 0x7a, 0x31, 0xcf, 0xd4, 0x79, 0xa8, 0x2f, 0x15, 0x43, 0xff,
0x11, 0x2c, 0x27, 0x86, 0xe9, 0x4b, 0x8c, 0x48, 0xeb, 0x95, 0xb4, 0x49, 0x32, 0x61, 0x66, 0xc1,
0xe4, 0x36, 0x58, 0x0e, 0x5b, 0x45, 0x66, 0xb7, 0x4e, 0xc5, 0xec, 0x85, 0xaa, 0x12, 0x4e, 0x53,
0x55, 0x66, 0x59, 0xda, 0xce, 0xb3, 0xf4, 0x47, 0xb0, 0xfa, 0xa3, 0x18, 0x47, 0xc7, 0x8f, 0x69,
0x8f, 0xcd, 0xe7, 0xe3, 0x16, 0xd4, 0xb4, 0xa3, 0x92, 0x84, 0x9e, 0x8e, 0x9d, 0x7f, 0x18, 0xd0,
0x90, 0xe1, 0xf6, 0xdc, 0x63, 0x47, 0xc9, 0xeb, 0x4c, 0xe2, 0x65, 0x23, 0xef, 0xe5, 0x53, 0xf6,
0x23, 0x25, 0x4f, 0x0b, 0x66, 0xd9, 0xd3, 0x42, 0x49, 0x9d, 0x53, 0x2d, 0xad, 0x73, 0x0a, 0x0d,
0xce, 0xc2, 0x44, 0x83, 0xf3, 0x85, 0x01, 0x6b, 0x19, 0x1b, 0x9d, 0x25, 0xe1, 0xe5, 0x2c, 0x5b,
0x29, 0x5a, 0xf6, 0x7e, 0x9e, 0x08, 0xcc, 0x32, 0x57, 0x67, 0x88, 0x20, 0xb1, 0x71, 0x8e, 0x0c,
0x9e, 0xc0, 0x8a, 0xa0, 0xea, 0xf3, 0x71, 0xe7, 0xdf, 0x0d, 0x58, 0x7a, 0x4c, 0x7b, 0xd2, 0x91,
0x59, 0x0c, 0x19, 0xf9, 0x67, 0xab, 0x55, 0x30, 0x7d, 0x32, 0xd4, 0xd9, 0x5b, 0xfc, 0x14, 0x31,
0xc6, 0xb8, 0x17, 0xf1, 0xf1, 0xc3, 0x9b, 0x28, 0xe4, 0x84, 0x44, 0xbe, 0xdd, 0x5c, 0x82, 0x1a,
0x0e, 0x7d, 0x35, 0xa9, 0xab, 0x65, 0x1c, 0xfa, 0x72, 0xea, 0x7c, 0x1a, 0xa0, 0x75, 0x58, 0x18,
0xd1, 0xf1, 0x63, 0x99, 0x1a, 0x38, 0xeb, 0x80, 0x1e, 0x62, 0xfe, 0x98, 0xf6, 0x84, 0x57, 0x12,
0xf3, 0x38, 0x7f, 0xad, 0xc8, 0xe6, 0x64, 0x2c, 0x3e, 0x8b, 0x83, 0x1d, 0x68, 0x28, 0xba, 0xfa,
0x94, 0xf6, 0xba, 0x61, 0x9c, 0x18, 0xc5, 0x96, 0xc2, 0xc7, 0xb4, 0xf7, 0x2c, 0x1e, 0xa2, 0x3b,
0x70, 0x91, 0x84, 0xdd, 0x91, 0x66, 0xd0, 0x54, 0x53, 0x59, 0x69, 0x95, 0x84, 0x09, 0xb7, 0x6a,
0xf5, 0x5b, 0xb0, 0x82, 0xc3, 0x17, 0x31, 0x8e, 0x71, 0xaa, 0xaa, 0x6c, 0xd6, 0xd0, 0x62, 0xad,
0x27, 0x98, 0xd2, 0x63, 0x47, 0x5d, 0x16, 0x50, 0xce, 0x74, 0x4e, 0xb4, 0x84, 0xa4, 0x23, 0x04,
0xe8, 0x03, 0xb0, 0xc4, 0x72, 0x05, 0x2d, 0xd5, 0x64, 0x5c, 0x2e, 0x83, 0x96, 0xf6, 0xb7, 0x5b,
0xfb, 0x54, 0xfd, 0x60, 0x22, 0x40, 0x74, 0xd9, 0xed, 0x13, 0x76, 0xa4, 0x99, 0x06, 0x94, 0x68,
0x8f, 0xb0, 0x23, 0xe7, 0xa7, 0x70, 0x29, 0xfb, 0x6c, 0x43, 0x18, 0x27, 0xfd, 0xf3, 0xac, 0x3e,
0x7e, 0x67, 0x40, 0xab, 0xec, 0x80, 0xff, 0x61, 0xd1, 0xb5, 0xfd, 0x2b, 0x1b, 0x40, 0xce, 0xec,
0x52, 0x1a, 0xf9, 0x28, 0x90, 0xd0, 0xda, 0xa5, 0xc3, 0x11, 0x0d, 0x71, 0xc8, 0x65, 0xc6, 0x62,
0x68, 0x2b, 0xbf, 0x9f, 0x1e, 0x4c, 0x2a, 0x6a, 0x5b, 0xb5, 0xde, 0x2d, 0xd5, 0x2f, 0x28, 0x3b,
0x17, 0xd0, 0x0b, 0xd9, 0x9c, 0x8c, 0x4d, 0xb1, 0x7b, 0xe8, 0x85, 0x21, 0x0e, 0xd0, 0xf6, 0x94,
0xa7, 0xbc, 0x32, 0xe5, 0xe4, 0xcc, 0x1b, 0xa5, 0x67, 0x76, 0x78, 0x44, 0xc2, 0x83, 0xc4, 0xc4,
0xce, 0x05, 0xf4, 0x1c, 0xec, 0xcc, 0x7b, 0x0a, 0xba, 0x55, 0x66, 0xa9, 0xc9, 0x07, 0x97, 0xd6,
0x49, 0xbe, 0x70, 0x2e, 0xa0, 0x01, 0x34, 0x72, 0x0f, 0x7e, 0x68, 0xf3, 0xa4, 0x9e, 0x28, 0xfb,
0xca, 0xd6, 0xfa, 0xfa, 0x1c, 0x9a, 0xe9, 0xed, 0x7f, 0xae, 0x0c, 0x36, 0xf1, 0x62, 0x76, 0x77,
0xca, 0x26, 0xd3, 0xde, 0xf6, 0x5a, 0xf7, 0xe6, 0x5f, 0x90, 0x1e, 0xee, 0x8f, 0x3f, 0x52, 0x05,
0xd4, 0xed, 0xd9, 0x8d, 0x9f, 0x3a, 0x6d, 0x73, 0xde, 0x0e, 0xd1, 0xb9, 0x80, 0xf6, 0xc1, 0x4a,
0x7b, 0x34, 0xf4, 0x6e, 0xd9, 0xc2, 0x62, 0x0b, 0x37, 0x87, 0x73, 0x72, 0x5d, 0x4e, 0xb9, 0x73,
0xca, 0x5a, 0xb0, 0x72, 0xe7, 0x94, 0xb6, 0x4c, 0xce, 0x05, 0x14, 0xcb, 0xd8, 0x29, 0x44, 0x37,
0xba, 0x33, 0xcb, 0xbf, 0xb9, 0x34, 0xd3, 0xda, 0x9a, 0x57, 0x3d, 0x3d, 0xf6, 0x17, 0xe3, 0xc7,
0xe6, 0x5c, 0x4b, 0x83, 0xee, 0x9d, 0xb4, 0x55, 0x59, 0x87, 0xd5, 0xfa, 0xd6, 0x5b, 0xac, 0xc8,
0x60, 0x12, 0x75, 0x0e, 0xe9, 0x2b, 0x55, 0x2c, 0xc6, 0x91, 0x27, 0x72, 0x61, 0xc9, 0xe1, 0x3a,
0x84, 0x27, 0x55, 0xa7, 0x1e, 0x7e, 0xc2, 0x8a, 0xf4, 0xf0, 0x2e, 0xc0, 0x43, 0xcc, 0x9f, 0x62,
0x1e, 0x09, 0x5b, 0xdf, 0x9a, 0x96, 0xa7, 0xb4, 0x42, 0x72, 0xd4, 0xed, 0x99, 0x7a, 0xe9, 0x01,
0x3d, 0xb0, 0x77, 0x0f, 0x71, 0xff, 0xe8, 0x11, 0xf6, 0x02, 0x7e, 0x88, 0xca, 0x57, 0x66, 0x34,
0xa6, 0x40, 0xbe, 0x4c, 0x31, 0x39, 0x63, 0xfb, 0x8b, 0x45, 0xfd, 0x37, 0xf5, 0x33, 0xea, 0xe3,
0xff, 0xff, 0x14, 0xbc, 0x0f, 0x56, 0xda, 0x8e, 0x95, 0x47, 0x78, 0xb1, 0x5b, 0x9b, 0x15, 0xe1,
0x9f, 0x80, 0x95, 0x16, 0xb6, 0xe5, 0x3b, 0x16, 0x7b, 0x83, 0xd6, 0xcd, 0x19, 0x5a, 0xe9, 0x6d,
0x9f, 0x41, 0x2d, 0x29, 0x44, 0xd1, 0x8d, 0x69, 0xe9, 0x28, 0xbb, 0xf3, 0x8c, 0xbb, 0xfe, 0x0c,
0xec, 0x4c, 0x95, 0x56, 0x4e, 0x40, 0x93, 0xd5, 0x5d, 0xeb, 0xf6, 0x4c, 0xbd, 0x2f, 0x47, 0x40,
0xde, 0xff, 0xf6, 0x27, 0xdb, 0x07, 0x84, 0x1f, 0xc6, 0x3d, 0x61, 0xd9, 0xbb, 0x4a, 0xf3, 0x0e,
0xa1, 0xfa, 0xd7, 0xdd, 0xe4, 0x96, 0x77, 0xe5, 0x4e, 0x77, 0xa5, 0x9d, 0x46, 0xbd, 0xde, 0xa2,
0x1c, 0xbe, 0xf7, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc2, 0x46, 0x93, 0xfc, 0x65, 0x22, 0x00,
0x00,
}
// Reference imports to suppress errors if they are not otherwise used.

View File

@ -5201,3 +5201,28 @@ func (node *Proxy) ListClientInfos(ctx context.Context, req *proxypb.ListClientI
ClientInfos: clients,
}, nil
}
func (node *Proxy) AllocTimestamp(ctx context.Context, req *milvuspb.AllocTimestampRequest) (*milvuspb.AllocTimestampResponse, error) {
if !node.checkHealthy() {
return &milvuspb.AllocTimestampResponse{Status: unhealthyStatus()}, nil
}
log.Info("AllocTimestamp request receive")
ts, err := node.tsoAllocator.AllocOne(ctx)
if err != nil {
log.Info("AllocTimestamp failed", zap.Error(err))
return &milvuspb.AllocTimestampResponse{
Status: &commonpb.Status{
ErrorCode: commonpb.ErrorCode_UnexpectedError,
Reason: err.Error(),
},
}, nil
}
log.Info("AllocTimestamp request success", zap.Uint64("timestamp", ts))
return &milvuspb.AllocTimestampResponse{
Status: &commonpb.Status{ErrorCode: commonpb.ErrorCode_Success},
Timestamp: ts,
}, nil
}

View File

@ -815,3 +815,52 @@ func TestProxyListDatabase(t *testing.T) {
assert.Equal(t, commonpb.ErrorCode_Success, resp.GetStatus().GetErrorCode())
})
}
func TestProxy_AllocTimestamp(t *testing.T) {
t.Run("proxy unhealthy", func(t *testing.T) {
node := &Proxy{}
node.UpdateStateCode(commonpb.StateCode_Abnormal)
resp, err := node.AllocTimestamp(context.TODO(), nil)
assert.NoError(t, err)
assert.NotEqual(t, commonpb.ErrorCode_Success, resp.GetStatus().GetErrorCode())
})
t.Run("success", func(t *testing.T) {
node := &Proxy{}
node.UpdateStateCode(commonpb.StateCode_Healthy)
node.tsoAllocator = &timestampAllocator{
tso: newMockTimestampAllocatorInterface(),
}
resp, err := node.AllocTimestamp(context.TODO(), nil)
assert.NoError(t, err)
assert.Equal(t, commonpb.ErrorCode_Success, resp.GetStatus().GetErrorCode())
})
t.Run("failed", func(t *testing.T) {
m := newMockTimestampAllocator(t)
m.On("AllocTimestamp",
mock.Anything,
mock.Anything,
).Return(&rootcoordpb.AllocTimestampResponse{
Status: &commonpb.Status{
ErrorCode: commonpb.ErrorCode_UnexpectedError,
Reason: "failed",
},
Timestamp: 20230518,
Count: 1,
}, nil)
alloc, _ := newTimestampAllocator(m, 199)
node := Proxy{
tsoAllocator: alloc,
}
node.UpdateStateCode(commonpb.StateCode_Healthy)
resp, err := node.AllocTimestamp(context.TODO(), nil)
assert.NoError(t, err)
assert.Equal(t, commonpb.ErrorCode_UnexpectedError, resp.GetStatus().GetErrorCode())
})
}

View File

@ -487,7 +487,7 @@ func (dit *describeIndexTask) Execute(ctx context.Context) error {
return fmt.Errorf("failed to parse collection schema: %s", err)
}
resp, err := dit.datacoord.DescribeIndex(ctx, &indexpb.DescribeIndexRequest{CollectionID: dit.collectionID, IndexName: dit.IndexName})
resp, err := dit.datacoord.DescribeIndex(ctx, &indexpb.DescribeIndexRequest{CollectionID: dit.collectionID, IndexName: dit.IndexName, Timestamp: dit.Timestamp})
if err != nil || resp == nil {
return err
}

View File

@ -1418,6 +1418,8 @@ type ProxyComponent interface {
DescribeResourceGroup(ctx context.Context, req *milvuspb.DescribeResourceGroupRequest) (*milvuspb.DescribeResourceGroupResponse, error)
Connect(ctx context.Context, req *milvuspb.ConnectRequest) (*milvuspb.ConnectResponse, error)
AllocTimestamp(ctx context.Context, req *milvuspb.AllocTimestampRequest) (*milvuspb.AllocTimestampResponse, error)
}
// QueryNode is the interface `querynode` package implements