public String getToken() { if (StorageService.instance.isClientMode()) return CassandraUtils.fakeToken; return StorageService.instance.getTokenMetadata().getToken(FBUtilities.getLocalAddress()).toString(); }
private static void addType(UserType ut) { KSMetaData ksm = Schema.instance.getKSMetaData(ut.keyspace); assert ksm != null; logger.info("Loading {}", ut); ksm.userTypes.addType(ut); if (!StorageService.instance.isClientMode()) MigrationManager.instance.notifyCreateUserType(ut); }
private static void updateType(UserType ut) { KSMetaData ksm = Schema.instance.getKSMetaData(ut.keyspace); assert ksm != null; logger.info("Updating {}", ut); ksm.userTypes.addType(ut); if (!StorageService.instance.isClientMode()) MigrationManager.instance.notifyUpdateUserType(ut); }
private static void dropType(UserType ut) { KSMetaData ksm = Schema.instance.getKSMetaData(ut.keyspace); assert ksm != null; ksm.userTypes.removeType(ut); if (!StorageService.instance.isClientMode()) MigrationManager.instance.notifyDropUserType(ut); }
private static void addKeyspace(KSMetaData ksm) { assert Schema.instance.getKSMetaData(ksm.name) == null; Schema.instance.load(ksm); if (!StorageService.instance.isClientMode()) { Keyspace.open(ksm.name); MigrationManager.instance.notifyCreateKeyspace(ksm); } }
if (StorageService.instance.isClientMode())
private static void updateKeyspace(String ksName) { KSMetaData oldKsm = Schema.instance.getKSMetaData(ksName); assert oldKsm != null; KSMetaData newKsm = KSMetaData.cloneWith(oldKsm.reloadAttributes(), oldKsm.cfMetaData().values()); Schema.instance.setKeyspaceDefinition(newKsm); if (!StorageService.instance.isClientMode()) { Keyspace.open(ksName).setMetadata(newKsm); MigrationManager.instance.notifyUpdateKeyspace(newKsm); } }
private static void addColumnFamily(CFMetaData cfm) { assert Schema.instance.getCFMetaData(cfm.ksName, cfm.cfName) == null; KSMetaData ksm = Schema.instance.getKSMetaData(cfm.ksName); ksm = KSMetaData.cloneWith(ksm, Iterables.concat(ksm.cfMetaData().values(), Collections.singleton(cfm))); logger.info("Loading {}", cfm); Schema.instance.load(cfm); // make sure it's init-ed w/ the old definitions first, // since we're going to call initCf on the new one manually Keyspace.open(cfm.ksName); Schema.instance.setKeyspaceDefinition(ksm); if (!StorageService.instance.isClientMode()) { Keyspace.open(ksm.name).initCf(cfm.cfId, cfm.cfName, true); MigrationManager.instance.notifyCreateColumnFamily(cfm); } }
private static void updateColumnFamily(String ksName, String cfName) { CFMetaData cfm = Schema.instance.getCFMetaData(ksName, cfName); assert cfm != null; boolean columnsDidChange = cfm.reload(); if (!StorageService.instance.isClientMode()) { Keyspace keyspace = Keyspace.open(cfm.ksName); keyspace.getColumnFamilyStore(cfm.cfName).reload(); MigrationManager.instance.notifyUpdateColumnFamily(cfm, columnsDidChange); } }
if (!StorageService.instance.isClientMode()) if (!StorageService.instance.isClientMode())
if (StorageService.instance.isClientMode()) return new NeverSpeculatingReadExecutor(command, consistencyLevel, targetReplicas);
private static void dropColumnFamily(String ksName, String cfName) { KSMetaData ksm = Schema.instance.getKSMetaData(ksName); assert ksm != null; ColumnFamilyStore cfs = Keyspace.open(ksName).getColumnFamilyStore(cfName); assert cfs != null; // reinitialize the keyspace. CFMetaData cfm = ksm.cfMetaData().get(cfName); Schema.instance.purge(cfm); Schema.instance.setKeyspaceDefinition(makeNewKeyspaceDefinition(ksm, cfm)); CompactionManager.instance.interruptCompactionFor(Arrays.asList(cfm), true); if (!StorageService.instance.isClientMode()) { if (DatabaseDescriptor.isAutoSnapshot()) cfs.snapshot(Keyspace.getTimestampedSnapshotName(cfs.name)); Keyspace.open(ksm.name).dropCf(cfm.cfId); MigrationManager.instance.notifyDropColumnFamily(cfm); CommitLog.instance.forceRecycleAllSegments(Collections.singleton(cfm.cfId)); } }
public static synchronized void mergeSchemaInternal(Collection<Mutation> mutations, boolean doFlush) throws ConfigurationException, IOException { // compare before/after schemas of the affected keyspaces only Set<String> keyspaces = new HashSet<>(mutations.size()); for (Mutation mutation : mutations) keyspaces.add(ByteBufferUtil.string(mutation.key())); // current state of the schema Map<DecoratedKey, ColumnFamily> oldKeyspaces = SystemKeyspace.getSchema(SystemKeyspace.SCHEMA_KEYSPACES_CF, keyspaces); Map<DecoratedKey, ColumnFamily> oldColumnFamilies = SystemKeyspace.getSchema(SystemKeyspace.SCHEMA_COLUMNFAMILIES_CF, keyspaces); Map<DecoratedKey, ColumnFamily> oldTypes = SystemKeyspace.getSchema(SystemKeyspace.SCHEMA_USER_TYPES_CF, keyspaces); for (Mutation mutation : mutations) mutation.apply(); if (doFlush && !StorageService.instance.isClientMode()) flushSchemaCFs(); // with new data applied Map<DecoratedKey, ColumnFamily> newKeyspaces = SystemKeyspace.getSchema(SystemKeyspace.SCHEMA_KEYSPACES_CF, keyspaces); Map<DecoratedKey, ColumnFamily> newColumnFamilies = SystemKeyspace.getSchema(SystemKeyspace.SCHEMA_COLUMNFAMILIES_CF, keyspaces); Map<DecoratedKey, ColumnFamily> newTypes = SystemKeyspace.getSchema(SystemKeyspace.SCHEMA_USER_TYPES_CF, keyspaces); Set<String> keyspacesToDrop = mergeKeyspaces(oldKeyspaces, newKeyspaces); mergeColumnFamilies(oldColumnFamilies, newColumnFamilies); mergeTypes(oldTypes, newTypes); // it is safe to drop a keyspace only when all nested ColumnFamilies where deleted for (String keyspaceToDrop : keyspacesToDrop) dropKeyspace(keyspaceToDrop); }