[
https://issues.apache.org/jira/browse/CASSANDRA-1527?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12914651#action_12914651
]
Jon Hermes edited comment on CASSANDRA-1527 at 9/24/10 5:21 PM:
----------------------------------------------------------------
Can't deal with the constructor throwing an exception, it's just too ugly.
Current patch:
# Adding validation to readTablesFromYaml()/loadSchemas() is pretty, and
catches the erroneous config. This is necessarily different than the same
validation for add/update API calls, as this is parsed and deflated immediately.
# Explode on invalid JMX poking. To counter this, made disableAutoCompaction()
pokeable (previously internal). This should help avoid the case where one goes
to disable via JMX, sets max = 0 < min, and kills the node.
# Leave inflate alone. If we deflate it incorrectly, then 1) was wrong.
# CFMetaData has a validateMinMaxCTs() for both avro and thrift. When updating
a CF, the method is called in CFMetaData.apply(). When adding a CF, the method
is called in CassandraServer.convertToCFMetaData(). (This is duplicated based
on protocol because there is no interface for "a CfDef" to deal with both avro
and thrift at the same time, much in same way all the other methods in
CFMetaData are duplicated.)
# Check that apply validates correctly in DefsTest.
was (Author: jhermes):
Can't deal with the constructor throwing an exception, it's just too ugly.
Current patch:
1) Adding validation to readTablesFromYaml()/loadSchemas() is pretty, and
catches the erroneous config. This is necessarily different than the same
validation for add/update API calls, as this is parsed and deflated immediately.
2) Explode on invalid JMX poking. To counter this, made disableAutoCompaction()
pokeable (previously internal). This should help avoid the case where one goes
to disable via JMX, sets max = 0 < min, and kills the node.
3) Leave inflate alone. If we deflate it incorrectly, then 1) was wrong.
4) CFMetaData has a validateMinMaxCTs() for both avro and thrift. When updating
a CF, the method is called in CFMetaData.apply(). When adding a CF, the method
is called in CassandraServer.convertToCFMetaData(). (This is duplicated based
on protocol because there is no interface for "a CfDef" to deal with both avro
and thrift at the same time, much in same way all the other methods in
CFMetaData are duplicated.)
5) Check that apply validates correctly in DefsTest.
> ensure compaction thresholds are sane
> -------------------------------------
>
> Key: CASSANDRA-1527
> URL: https://issues.apache.org/jira/browse/CASSANDRA-1527
> Project: Cassandra
> Issue Type: Bug
> Components: API
> Affects Versions: 0.7 beta 2
> Reporter: Jonathan Ellis
> Assignee: Jon Hermes
> Priority: Minor
> Fix For: 0.7.0
>
> Attachments: 1527.txt
>
>
> make sure min <= max and neither is negative.
> also make sure that min=max=0 works (this is "no compaction")
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.