MCPcopy Index your code
hub / github.com/CodisLabs/codis / process

Method process

pkg/proxy/forward.go:107–132  ·  view source on GitHub ↗
(s *Slot, r *Request, hkey []byte)

Source from the content-addressed store, hash-verified

105}
106
107func (d *forwardSemiAsync) process(s *Slot, r *Request, hkey []byte) (_ *BackendConn, retry bool, _ error) {
108 if s.backend.bc == nil {
109 log.Debugf("slot-%04d is not ready: hash key = '%s'",
110 s.id, hkey)
111 return nil, false, ErrSlotIsNotReady
112 }
113 if s.migrate.bc != nil && len(hkey) != 0 {
114 resp, moved, err := d.slotsmgrtExecWrapper(s, hkey, r.Database, r.Seed16(), r.Multi)
115 switch {
116 case err != nil:
117 log.Debugf("slot-%04d migrate from = %s to %s failed: hash key = '%s', error = %s",
118 s.id, s.migrate.bc.Addr(), s.backend.bc.Addr(), hkey, err)
119 return nil, false, err
120 case !moved:
121 switch {
122 case resp != nil:
123 r.Resp = resp
124 return nil, false, nil
125 }
126 return nil, true, nil
127 }
128 }
129 r.Group = &s.refs
130 r.Group.Add(1)
131 return d.forward2(s, r), false, nil
132}
133
134type forwardHelper struct {
135}

Callers 1

ForwardMethod · 0.95

Calls 6

DebugfMethod · 0.80
slotsmgrtExecWrapperMethod · 0.80
Seed16Method · 0.80
forward2Method · 0.80
AddrMethod · 0.45
AddMethod · 0.45

Tested by

no test coverage detected