// StartInstancePush initiates a data instance push. After some number of Send // calls, the EndInstancePush must be called. func (p *PushSession) StartInstancePush(d dvid.Data) error { dmsg := DataTxInit{ Session: p.s.ID(), DataName: d.DataName(), TypeName: d.TypeName(), InstanceID: d.InstanceID(), } if _, err := p.s.Call()(StartDataMsg, dmsg); err != nil { return fmt.Errorf("couldn't send data instance %q start: %v\n", d.DataName(), err) } return nil }
// DeleteDataInstance removes a data instance across all versions and tiers of storage. func DeleteDataInstance(data dvid.Data) error { if !manager.setup { return fmt.Errorf("Can't delete data instance %q before storage manager is initialized", data.DataName()) } // Determine all database tiers that are distinct. dbs := []OrderedKeyValueDB{manager.mutable} if manager.mutable != manager.immutable { dbs = append(dbs, manager.immutable) } // For each storage tier, remove all key-values with the given instance id. dvid.Infof("Starting delete of instance %d: name %q, type %s\n", data.InstanceID(), data.DataName(), data.TypeName()) ctx := NewDataContext(data, 0) for _, db := range dbs { if err := db.DeleteAll(ctx, true); err != nil { return err } } return nil }
// DeleteDataInstance removes a data instance. func DeleteDataInstance(data dvid.Data) error { if !manager.setup { return fmt.Errorf("Can't delete data instance %q before storage manager is initialized", data.DataName()) } // Get the store for the data instance. store, err := data.BackendStore() if err != nil { return err } db, ok := store.(OrderedKeyValueDB) if !ok { return fmt.Errorf("store assigned to data %q is not an ordered kv db with ability to delete all", data.DataName()) } dvid.Infof("Starting delete of instance %d: name %q, type %s\n", data.InstanceID(), data.DataName(), data.TypeName()) ctx := NewDataContext(data, 0) if err := db.DeleteAll(ctx, true); err != nil { return err } return nil }