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

Unified Diff: server/logdog/storage/memory/memory.go

Issue 1838803002: LogDog: BigTable batching schema. (Closed) Base URL: https://github.com/luci/luci-go@recordio-split
Patch Set: Minor comments and quality of code tweaks. Created 4 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « server/logdog/storage/bigtable/storage_test.go ('k') | server/logdog/storage/memory/memory_test.go » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: server/logdog/storage/memory/memory.go
diff --git a/server/logdog/storage/memory/memory.go b/server/logdog/storage/memory/memory.go
index 842c0120ab49543fc3cfda4c57e877a8a44b41e9..fdea97c96c38b0b291a7a5dcf70458e76fbc3f46 100644
--- a/server/logdog/storage/memory/memory.go
+++ b/server/logdog/storage/memory/memory.go
@@ -60,24 +60,29 @@ func (s *Storage) Config(cfg storage.Config) error {
}
// Put implements storage.Storage.
-func (s *Storage) Put(req *storage.PutRequest) error {
+func (s *Storage) Put(req storage.PutRequest) error {
return s.run(func() error {
ls := s.getLogStreamLocked(req.Path, true)
- if _, ok := ls.logs[req.Index]; ok {
- return storage.ErrExists
- }
+ for i, v := range req.Values {
+ index := req.Index + types.MessageIndex(i)
+ if _, ok := ls.logs[index]; ok {
+ return storage.ErrExists
+ }
- ls.logs[req.Index] = []byte(req.Value)
- if req.Index > ls.latestIndex {
- ls.latestIndex = req.Index
+ clone := make([]byte, len(v))
+ copy(clone, v)
+ ls.logs[index] = clone
+ if index > ls.latestIndex {
+ ls.latestIndex = index
+ }
}
return nil
})
}
// Get implements storage.Storage.
-func (s *Storage) Get(req *storage.GetRequest, cb storage.GetCallback) error {
+func (s *Storage) Get(req storage.GetRequest, cb storage.GetCallback) error {
recs := []*rec(nil)
err := s.run(func() error {
ls := s.getLogStreamLocked(req.Path, false)
« no previous file with comments | « server/logdog/storage/bigtable/storage_test.go ('k') | server/logdog/storage/memory/memory_test.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698