The system.peers table which is a copy of some gossip info the node has
stored, including the schema version. You should query this and wait until
all schema versions have converged.

http://www.datastax.com/documentation/cql/3.0/cql/cql_using/use_sys_tab_cluster_t.html

http://www.datastax.com/dev/blog/the-data-dictionary-in-cassandra-1-2

As ensuring that the driver keeps talking to the node you made the schema
change on I would ask the drivers specific mailing list / IRC:


   - MAILING LIST:
   https://groups.google.com/a/lists.datastax.com/forum/#!forum/java-driver-user
   - IRC: #datastax-drivers on irc.freenode.net <http://freenode.net/>



On 30 September 2014 10:16, Clint Kelly <clint.ke...@gmail.com> wrote:

> Hi all,
>
> I often have problems with code that I write that uses the DataStax Java
> driver to create / modify a keyspace or table and then soon after reads the
> metadata for the keyspace to verify that whatever changes I made the
> keyspace or table are complete.
>
> As an example, I may create a table called `myTableName` and then very
> soon after do something like:
>
> assert(session
>   .getCluster()
>   .getMetaData()
>   .getKeyspace(myKeyspaceName)
>   .getTable(myTableName) != null)
>
> I assume this fails sometimes because the default round-robin load
> balancing policy for the Java driver will send my create-table request to
> one node and the metadata read to another, and because it takes some time
> for the table creation to propagate across all of the nodes in my cluster.
>
> What is the best way to deal with this problem?  Is there a standard way
> to wait for schema changes to propagate?
>
> Best regards,
> Clint
>



-- 

Ben Bromhead

Instaclustr | www.instaclustr.com | @instaclustr
<http://twitter.com/instaclustr> | +61 415 936 359

Reply via email to