cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stu Hood (JIRA)" <>
Subject [jira] Commented: (CASSANDRA-990) Replace cassandra.xml with cassandra.yaml
Date Fri, 16 Apr 2010 06:41:25 GMT


Stu Hood commented on CASSANDRA-990:

Looks like an interesting approach, thanks!

* We should add the comments that were in cassandra.xml to cassandra.yaml
* The CF/KSMetaData field renames are unnecessary, and sometimes incorrect
* Leave the CF/KSMetaData fields as final, to enforce immutability
* Not all of the fields that were added with config.Config were removed from DatabaseDescriptor
* DatabaseDescriptor still imports org.w3c.dom, org.xml.sax, and javax.xml (which might mean
those dependencies weren't fully removed)
* The patch should remove all cassandra.xml copies
* The dependency on snakeyaml needs to be documented in lib/licenses/

I'm a little bit frightened about the migration path for existing users: to make this smooth,
I think we might need to provide a way to convert existing xml config files to yaml, probably
with a separate migration tool (in a separate ticket?).

> Replace cassandra.xml with cassandra.yaml
> -----------------------------------------
>                 Key: CASSANDRA-990
>                 URL:
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 0.7
>            Reporter: Todd Blose
>            Assignee: Todd Blose
>         Attachments: CASSANDRA-990.patch, cassandra.yaml, cassandra_yaml_w_comments.txt,
> This is an entire rewrite of the XML storage configuration to YAML, inspired by the discussion
> DatabaseDescriptor now parses conf/cassandra.yaml. It behaves the same way as before,
but instead of dealing with an XML parse tree, a yaml parser is now created that associates
a custom Java class with the entire config (Config). In addition, keyspace and column family
YAML entries are deserialized to KSMetaData and CFMetaData instances, respectively.
> This was implemented using SnakeYaml (
> There are numerous benefits to this new approach: 1) a complete shifting away from an
outdated, verbose data format 2) a cleaner, less bulky, human-readable config 3) significantly
less code 4) simplicity of obtaining default values
> Attached along with the patch are the replacement configurations for conf/cassandra.xml
and test/conf/cassandra.xml, to emphasize the benefits of the transition, should the community
approve of it.

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:


View raw message