diff --git a/internal/distributed/datacoord/client/client.go b/internal/distributed/datacoord/client/client.go index b4b0f37f350650aea5628329054a5ca374e938e7..715db7fe4d7911dc4b073f05f0f4b6738767d119 100644 --- a/internal/distributed/datacoord/client/client.go +++ b/internal/distributed/datacoord/client/client.go @@ -441,6 +441,18 @@ func (c *Client) GetSegmentInfo(ctx context.Context, req *datapb.GetSegmentInfoR return ret.(*datapb.GetSegmentInfoResponse), err } +// SaveBinlogPaths updates segments binlogs(including insert binlogs, stats logs and delta logs) +// and related message stream positions +// +// ctx is the context to control request deadline and cancellation +// req contains the collection/partition id to query +// +// response status contains the status/error code and failing reason if any +// error is returned only when some communication issue occurs +// +// there is a constraint that the `SaveBinlogPaths` requests of same segment shall be passed in sequence +// the root reason is each `SaveBinlogPaths` will overwrite the checkpoint position +// if the constraint is broken, the checkpoint position will not be monotonically increasing and the integrity will be compromised func (c *Client) SaveBinlogPaths(ctx context.Context, req *datapb.SaveBinlogPathsRequest) (*commonpb.Status, error) { // FIXME(dragondriver): why not to recall here? client, err := c.getGrpcClient()