func getGraphDB(d dvid.Data) (db storage.GraphDB, err error) { store, err := d.BackendStore() if err != nil { return nil, err } if store == nil { return nil, ErrInvalidStore } var ok bool db, ok = store.(storage.GraphDB) if !ok { return nil, fmt.Errorf("Store assigned to data %q (%s) is not a graph db", d.DataName(), store) } return }
func getKeyValueBatcher(d dvid.Data) (db storage.KeyValueBatcher, err error) { store, err := d.BackendStore() if err != nil { return nil, err } if store == nil { return nil, ErrInvalidStore } var ok bool db, ok = store.(storage.KeyValueBatcher) if !ok { return nil, fmt.Errorf("Store assigned to data %q (%s) is not able to batch key-value ops", d.DataName(), store) } return }
// 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 }