func assignNew(pl *posting.List, xid string, instanceIdx uint64, numInstances uint64) (uint64, error) { entry := lmgr.newOrExisting(xid) entry.Lock() entry.ts = time.Now() defer entry.Unlock() if pl.Length() > 1 { glog.Fatalf("We shouldn't have more than 1 uid for xid: %v\n", xid) } else if pl.Length() > 0 { var p types.Posting if ok := pl.Get(&p, 0); !ok { return 0, errors.New("While retrieving entry from posting list.") } return p.Uid(), nil } // No current id exists. Create one. uid, err := allocateUniqueUid(xid, instanceIdx, numInstances) if err != nil { return 0, err } t := x.DirectedEdge{ ValueId: uid, Source: "_assigner_", Timestamp: time.Now(), } rerr := pl.AddMutation(t, posting.Set) return uid, rerr }
func delEdge(t *testing.T, edge *task.DirectedEdge, l *posting.List) { require.NoError(t, l.AddMutationWithIndex(context.Background(), edge, posting.Del)) }
func addEdge(t *testing.T, edge x.DirectedEdge, l *posting.List) { if err := l.AddMutation(edge, posting.Set); err != nil { t.Error(err) } }