When making many schema changes in a row I've gotten errors when the new column families haven't fully "settled." I work around this with the Astyanax client by using the following Scala code:
def waitForSchemaToSettle[R](keyspace: Keyspace)(body: => R): R = {
var preSchemaVersions = keyspace.describeSchemaVersions
while (preSchemaVersions.size != 1) {
Thread.sleep(1000)
var preSchemaVersions = keyspace.describeSchemaVersions
}
val result = body
var postSchemaVersions = keyspace.describeSchemaVersions
while (postSchemaVersions == preSchemaVersions ||
postSchemaVersions.size != 1) {
Thread.sleep(1000)
postSchemaVersions = keyspace.describeSchemaVersions
}
result
}
Looking through the Java Driver API I don't see a way to get the schema versions. Is there something similar I can do with the Java Driver?
Thanks,
Blair
PS Having a dedicated Java Driver forum/mailing list would be useful.