public DropKeyspace(String name, boolean blockOnFileDeletion) throws ConfigurationException, IOException { super( UUIDGen.makeType1UUIDFromHost(FBUtilities.getLocalAddress()), DatabaseDescriptor.getDefsVersion()); this.name = name; this.blockOnFileDeletion = blockOnFileDeletion; KSMetaData ksm = DatabaseDescriptor.getTableDefinition(name); if (ksm == null) throw new ConfigurationException("Keyspace does not exist."); rm = makeDefinitionMutation(null, ksm, newVersion); }
public DropColumnFamily(String tableName, String cfName) throws ConfigurationException, IOException { super( UUIDGen.makeType1UUIDFromHost(FBUtilities.getLocalAddress()), DatabaseDescriptor.getDefsVersion()); this.tableName = tableName; this.cfName = cfName; KSMetaData ksm = DatabaseDescriptor.getTableDefinition(tableName); if (ksm == null) throw new ConfigurationException("Keyspace does not already exist."); else if (!ksm.cfMetaData().containsKey(cfName)) throw new ConfigurationException("CF is not defined in that keyspace."); KSMetaData newKsm = makeNewKeyspaceDefinition(ksm); rm = Migration.makeDefinitionMutation(newKsm, null, newVersion); }
@Override public void applyModels() throws IOException { KSMetaData ksm = DatabaseDescriptor.getTableDefinition(name); // remove the table from the static instances. Table table = Table.clear(ksm.name); if (table == null) throw new IOException("Table is not active. " + ksm.name); // remove all cfs from the table instance. for (CFMetaData cfm : ksm.cfMetaData().values()) { CFMetaData.purge(cfm); table.dropCf(cfm.cfId); SystemTable.markForRemoval(cfm); } // reset defs. DatabaseDescriptor.clearTableDefinition(ksm, newVersion); CommitLog.instance().forceNewSegment(); Migration.cleanupDeadFiles(blockOnFileDeletion); // clear up any local hinted data for this keyspace. HintedHandOffManager.renameHints(name, null); }
public void applyModels() throws IOException { ColumnFamilyStore cfs = Table.open(tableName).getColumnFamilyStore(cfName); // reinitialize the table. KSMetaData existing = DatabaseDescriptor.getTableDefinition(tableName); CFMetaData cfm = existing.cfMetaData().get(cfName); KSMetaData ksm = makeNewKeyspaceDefinition(existing); CFMetaData.purge(cfm); DatabaseDescriptor.setTableDefinition(ksm, newVersion); if (!clientMode) { cfs.snapshot(Table.getTimestampedSnapshotName(null)); CompactionManager.instance.getCompactionLock().lock(); cfs.flushLock.lock(); try { Table.open(ksm.name).dropCf(cfm.cfId); } finally { cfs.flushLock.unlock(); CompactionManager.instance.getCompactionLock().unlock(); } } }