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

Unified Diff: build_scheduler/go/db/memory.go

Issue 2296763008: [task scheduler] Move files from build_scheduler/ to task_scheduler/ (Closed) Base URL: https://skia.googlesource.com/buildbot@master
Patch Set: Created 4 years, 3 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 | « build_scheduler/go/db/local_db/local_db_test.go ('k') | build_scheduler/go/db/memory_test.go » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build_scheduler/go/db/memory.go
diff --git a/build_scheduler/go/db/memory.go b/build_scheduler/go/db/memory.go
deleted file mode 100644
index 183795f47ec37f2f128d2abe4a3533439dab4c20..0000000000000000000000000000000000000000
--- a/build_scheduler/go/db/memory.go
+++ /dev/null
@@ -1,120 +0,0 @@
-package db
-
-import (
- "fmt"
- "sort"
- "sync"
- "time"
-
- "go.skia.org/infra/go/util"
-
- "github.com/satori/go.uuid"
- "github.com/skia-dev/glog"
-)
-
-type inMemoryDB struct {
- tasks map[string]*Task
- tasksMtx sync.RWMutex
- modTasks ModifiedTasks
-}
-
-// See docs for DB interface. Does not take any locks.
-func (db *inMemoryDB) AssignId(t *Task) error {
- if t.Id != "" {
- return fmt.Errorf("Task Id already assigned: %v", t.Id)
- }
- t.Id = uuid.NewV5(uuid.NewV1(), uuid.NewV4().String()).String()
- return nil
-}
-
-// See docs for DB interface.
-func (db *inMemoryDB) Close() error {
- return nil
-}
-
-// See docs for DB interface.
-func (db *inMemoryDB) GetTaskById(id string) (*Task, error) {
- db.tasksMtx.RLock()
- defer db.tasksMtx.RUnlock()
- if task := db.tasks[id]; task != nil {
- return task.Copy(), nil
- }
- return nil, nil
-}
-
-// See docs for DB interface.
-func (db *inMemoryDB) GetTasksFromDateRange(start, end time.Time) ([]*Task, error) {
- db.tasksMtx.RLock()
- defer db.tasksMtx.RUnlock()
-
- rv := []*Task{}
- // TODO(borenet): Binary search.
- for _, b := range db.tasks {
- if (b.Created.Equal(start) || b.Created.After(start)) && b.Created.Before(end) {
- rv = append(rv, b.Copy())
- }
- }
- sort.Sort(TaskSlice(rv))
- return rv, nil
-}
-
-// See docs for DB interface.
-func (db *inMemoryDB) GetModifiedTasks(id string) ([]*Task, error) {
- return db.modTasks.GetModifiedTasks(id)
-}
-
-// See docs for DB interface.
-func (db *inMemoryDB) PutTask(task *Task) error {
- db.tasksMtx.Lock()
- defer db.tasksMtx.Unlock()
-
- if util.TimeIsZero(task.Created) {
- return fmt.Errorf("Created not set. Task %s created time is %s. %v", task.Id, task.Created, task)
- }
-
- if task.Id == "" {
- if err := db.AssignId(task); err != nil {
- return err
- }
- } else if existing := db.tasks[task.Id]; existing != nil {
- if !existing.DbModified.Equal(task.DbModified) {
- glog.Warningf("Cached Task has been modified in the DB. Current:\n%v\nCached:\n%v", existing, task)
- return ErrConcurrentUpdate
- }
- }
- task.DbModified = time.Now()
-
- // TODO(borenet): Keep tasks in a sorted slice.
- db.tasks[task.Id] = task
- db.modTasks.TrackModifiedTask(task)
- return nil
-}
-
-// See docs for DB interface.
-func (db *inMemoryDB) PutTasks(tasks []*Task) error {
- for _, t := range tasks {
- if err := db.PutTask(t); err != nil {
- return err
- }
- }
- return nil
-}
-
-// See docs for DB interface.
-func (db *inMemoryDB) StartTrackingModifiedTasks() (string, error) {
- return db.modTasks.StartTrackingModifiedTasks()
-}
-
-// See docs for DB interface.
-func (db *inMemoryDB) StopTrackingModifiedTasks(id string) {
- db.modTasks.StopTrackingModifiedTasks(id)
-}
-
-// NewInMemoryDB returns an extremely simple, inefficient, in-memory DB
-// implementation.
-func NewInMemoryDB() DB {
- db := &inMemoryDB{
- tasks: map[string]*Task{},
- }
- return db
-}
« no previous file with comments | « build_scheduler/go/db/local_db/local_db_test.go ('k') | build_scheduler/go/db/memory_test.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698