Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Side by Side Diff: filter/dscache/ds_txn_state.go

Issue 1695833002: dscache: Only log unusual memcache errors. (Closed) Base URL: https://github.com/luci/gae@master
Patch Set: inline. Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « filter/dscache/ds.go ('k') | filter/dscache/support.go » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package dscache 5 package dscache
6 6
7 import ( 7 import (
8 "sync" 8 "sync"
9 9
10 "github.com/luci/gae/service/datastore" 10 "github.com/luci/gae/service/datastore"
11 "github.com/luci/gae/service/memcache" 11 "github.com/luci/gae/service/memcache"
12 "github.com/luci/luci-go/common/errors"
12 log "github.com/luci/luci-go/common/logging" 13 log "github.com/luci/luci-go/common/logging"
13 ) 14 )
14 15
15 type dsTxnState struct { 16 type dsTxnState struct {
16 sync.Mutex 17 sync.Mutex
17 18
18 toLock []memcache.Item 19 toLock []memcache.Item
19 toDelete map[string]struct{} 20 toDelete map[string]struct{}
20 } 21 }
21 22
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 // they'll expire soon). 54 // they'll expire soon).
54 func (s *dsTxnState) release(sc *supportContext) { 55 func (s *dsTxnState) release(sc *supportContext) {
55 s.Lock() 56 s.Lock()
56 defer s.Unlock() 57 defer s.Unlock()
57 58
58 delKeys := make([]string, 0, len(s.toDelete)) 59 delKeys := make([]string, 0, len(s.toDelete))
59 for k := range s.toDelete { 60 for k := range s.toDelete {
60 delKeys = append(delKeys, k) 61 delKeys = append(delKeys, k)
61 } 62 }
62 63
63 » err := sc.mc.DeleteMulti(delKeys) 64 » if err := errors.Filter(sc.mc.DeleteMulti(delKeys), memcache.ErrCacheMis s); err != nil {
64 » if err != nil {
65 (log.Fields{log.ErrorKey: err}).Warningf( 65 (log.Fields{log.ErrorKey: err}).Warningf(
66 sc.c, "dscache: txn.release: memcache.DeleteMulti") 66 sc.c, "dscache: txn.release: memcache.DeleteMulti")
67 } 67 }
68 } 68 }
69 69
70 func (s *dsTxnState) add(sc *supportContext, keys []*datastore.Key) { 70 func (s *dsTxnState) add(sc *supportContext, keys []*datastore.Key) {
71 lockItems, lockKeys := sc.mkAllLockItems(keys) 71 lockItems, lockKeys := sc.mkAllLockItems(keys)
72 if lockItems == nil { 72 if lockItems == nil {
73 return 73 return
74 } 74 }
75 75
76 s.Lock() 76 s.Lock()
77 defer s.Unlock() 77 defer s.Unlock()
78 78
79 for i, li := range lockItems { 79 for i, li := range lockItems {
80 k := lockKeys[i] 80 k := lockKeys[i]
81 if _, ok := s.toDelete[k]; !ok { 81 if _, ok := s.toDelete[k]; !ok {
82 s.toLock = append(s.toLock, li) 82 s.toLock = append(s.toLock, li)
83 s.toDelete[k] = struct{}{} 83 s.toDelete[k] = struct{}{}
84 } 84 }
85 } 85 }
86 } 86 }
OLDNEW
« no previous file with comments | « filter/dscache/ds.go ('k') | filter/dscache/support.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698