proxy/grpcproxy/cache/store.go
func (c *cache) Add(req *pb.RangeRequest, resp *pb.RangeResponse) {
	key := keyFunc(req)

	c.mu.Lock()
	defer c.mu.Unlock()

	if req.Revision > c.compactedRev {
		c.lru.Add(key, resp)
	}
	// we do not need to invalidate a request with a revision specified.
	// so we do not need to add it into the reverse index.
	if req.Revision != 0 {
		return
	}

	var (
		iv  *adt.IntervalValue
		ivl adt.Interval
	)
	if len(req.RangeEnd) != 0 {
		ivl = adt.NewStringAffineInterval(string(req.Key), string(req.RangeEnd))
	} else {
		ivl = adt.NewStringAffinePoint(string(req.Key))
	}

	iv = c.cachedRanges.Find(ivl)

	if iv == nil {
		val := map[string]struct{}{key: {}}
		c.cachedRanges.Insert(ivl, val)
	} else {
		val := iv.Val.(map[string]struct{})
		val[key] = struct{}{}
		iv.Val = val
	}
}
func (c *cache) Add(req *pb.RangeRequest, resp *pb.RangeResponse) {
	key := keyFunc(req)

	c.mu.Lock()
	defer c.mu.Unlock()

	if req.Revision > c.compactedRev {
		c.lru.Add(key, resp)
	}
	// we do not need to invalidate a request with a revision specified.
	// so we do not need to add it into the reverse index.
	if req.Revision != 0 {
		return
	}

	var (
		iv  *adt.IntervalValue
		ivl adt.Interval
	)
	if len(req.RangeEnd) != 0 {
		ivl = adt.NewStringAffineInterval(string(req.Key), string(req.RangeEnd))
	} else {
		ivl = adt.NewStringAffinePoint(string(req.Key))
	}

	iv = c.cachedRanges.Find(ivl)

	if iv == nil {
		val := map[string]struct{}{key: {}}
		c.cachedRanges.Insert(ivl, val)
	} else {
		val := iv.Val.(map[string]struct{})
		val[key] = struct{}{}
		iv.Val = val
	}
}
func ( c * cache ) Add ( req * pb . RangeRequest , resp * pb . RangeResponse ) { key := keyFunc ( req ) c . mu . Lock ( ) defer c . mu . Unlock ( ) if req . Revision > c . compactedRev { c . lru . Add ( key , resp ) } // we do not need to invalidate a request with a revision specified. // so we do not need to add it into the reverse index. if req . Revision != 0 { return } var ( iv * adt . IntervalValue ivl adt . Interval ) if len ( req . RangeEnd ) != 0 { ivl = adt . NewStringAffineInterval ( string ( req . Key ) , string ( req . RangeEnd ) ) } else { ivl = adt . NewStringAffinePoint ( string ( req . Key ) ) } iv = c . cachedRanges . Find ( ivl ) if iv == nil { val := map [ string ] struct { } { key : { } } c . cachedRanges . Insert ( ivl , val ) } else { val := iv . Val . ( map [ string ] struct { } ) val [ key ] = struct { } { } iv . Val = val } }
// Add adds the response of a request to the cache if its revision is larger than the compacted revision of the cache.
Add adds the response of a request to the cache if its revision is larger than the compacted revision of the cache .