本文整理匯總了Golang中github.com/cockroachdb/cockroach/proto.BatchRequest.ReadConsistency方法的典型用法代碼示例。如果您正苦於以下問題:Golang BatchRequest.ReadConsistency方法的具體用法?Golang BatchRequest.ReadConsistency怎麽用?Golang BatchRequest.ReadConsistency使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/cockroachdb/cockroach/proto.BatchRequest
的用法示例。
在下文中一共展示了BatchRequest.ReadConsistency方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: rangeLookup
// rangeLookup dispatches an RangeLookup request for the given
// metadata key to the replicas of the given range. Note that we allow
// inconsistent reads when doing range lookups for efficiency. Getting
// stale data is not a correctness problem but instead may
// infrequently result in additional latency as additional range
// lookups may be required. Note also that rangeLookup bypasses the
// DistSender's Send() method, so there is no error inspection and
// retry logic here; this is not an issue since the lookup performs a
// single inconsistent read only.
func (ds *DistSender) rangeLookup(key proto.Key, options lookupOptions,
desc *proto.RangeDescriptor) ([]proto.RangeDescriptor, error) {
ba := proto.BatchRequest{}
ba.ReadConsistency = proto.INCONSISTENT
ba.Add(&proto.RangeLookupRequest{
RequestHeader: proto.RequestHeader{
Key: key,
ReadConsistency: proto.INCONSISTENT,
},
MaxRanges: ds.rangeLookupMaxRanges,
ConsiderIntents: options.considerIntents,
Reverse: options.useReverseScan,
})
replicas := newReplicaSlice(ds.gossip, desc)
// TODO(tschottdorf) consider a Trace here, potentially that of the request
// that had the cache miss and waits for the result.
reply, err := ds.sendRPC(nil /* Trace */, desc.RangeID, replicas, rpc.OrderRandom, &ba)
if err != nil {
return nil, err
}
br := reply.(*proto.BatchResponse)
if err := br.GoError(); err != nil {
return nil, err
}
return br.Responses[0].GetInner().(*proto.RangeLookupResponse).Ranges, nil
}
示例2: rangeLookup
// rangeLookup implements the rangeDescriptorDB interface. It looks up
// the descriptors for the given (meta) key.
func (ls *LocalSender) rangeLookup(key proto.Key, options lookupOptions, _ *proto.RangeDescriptor) ([]proto.RangeDescriptor, error) {
ba := proto.BatchRequest{}
ba.ReadConsistency = proto.INCONSISTENT
ba.Add(&proto.RangeLookupRequest{
RequestHeader: proto.RequestHeader{
Key: key,
ReadConsistency: proto.INCONSISTENT,
},
MaxRanges: 1,
ConsiderIntents: options.considerIntents,
Reverse: options.useReverseScan,
})
br, pErr := ls.Send(context.Background(), ba)
if pErr != nil {
return nil, pErr.GoError()
}
return br.Responses[0].GetInner().(*proto.RangeLookupResponse).Ranges, nil
}