The replication factor for a keyspace is stored in the system.schema_keyspaces column family.

Since you can't view this with cli as the server won't start, the only way to look at it, that i know of is to use the

sstable2json tool on the *.db file for that column family...

So for instance on my machine i do

./sstable2json /var/lib/cassandra/data/system/schema_keyspaces/system-schema_keyspaces-ia-1-Data.db

and get


{
"7374726573735f6b73": [["durable_writes","true",1968197311980145], ["name","stress_ks",1968197311980145], ["strategy_class","org.apache.cassandra.locator.SimpleStrategy",1968197311980145], ["strategy_options","{\"replication_factor\":\"3\"}",1968197311980145]]

It's likely you don't have a entry from replication_factor.

Theoretically i suppose you could embellish the output, and use json2sstable to fix it, but I have no experience here, and would get the blessings of datastax fellas, before proceeding.





On 05/15/2012 07:02 PM, Casey Deccio wrote:
Sorry to reply to my own message (again). I took a closer look at the logs and realized that the partitioner errors aren't what kept the daemon to stop; those errors are in the logs even before I upgraded. This one seems to be the culprit.

java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.commons.daemon.support.DaemonLoader.load(DaemonLoader.java:160) Caused by: java.lang.RuntimeException: org.apache.cassandra.config.ConfigurationException: SimpleStrategy requires a replication_factor strategy option.
        at org.apache.cassandra.db.Table.<init>(Table.java:275)
        at org.apache.cassandra.db.Table.open(Table.java:114)
        at org.apache.cassandra.db.Table.open(Table.java:97)
at org.apache.cassandra.service.AbstractCassandraDaemon.setup(AbstractCassandraDaemon.java:204) at org.apache.cassandra.service.AbstractCassandraDaemon.init(AbstractCassandraDaemon.java:254)
        ... 5 more
Caused by: org.apache.cassandra.config.ConfigurationException: SimpleStrategy requires a replication_factor strategy option. at org.apache.cassandra.locator.SimpleStrategy.validateOptions(SimpleStrategy.java:71) at org.apache.cassandra.locator.AbstractReplicationStrategy.createReplicationStrategy(AbstractReplicationStrategy.java:218) at org.apache.cassandra.db.Table.createReplicationStrategy(Table.java:295)
        at org.apache.cassandra.db.Table.<init>(Table.java:271)
        ... 9 more
Cannot load daemon

I'm not sure how to check the replication_factor and/or update it without using cassandra-cli, which requires the daemon to be running.

Casey

Reply via email to