[ 
https://issues.apache.org/jira/browse/CASSANDRA-14499?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16506746#comment-16506746
 ] 

Jordan West commented on CASSANDRA-14499:
-----------------------------------------

The other reason the OS level wouldn't work is we are trying to track *live* 
data, which the OS can't tell the difference between.

Regarding taking reads, [~jasobrown], [~krummas], and I discussed this some 
offline. Since the node can only get more and more out of sync while not taking 
write traffic and can't participate in (read) repair until the amount of 
storage used is below quota, we thought it better to disable both reads and 
writes. Less-blocking and speculative read repair makes us more available in 
this case (as it should).

Disabling gossip is a quick route to disabling reads/writes. Is it the best 
approach to doing so? I'm not 100%. My concern is for how the operator gets 
back to a healthy state once a quota is reached on a node. They have a few 
options: migrate data to a bigger node, compaction catches up and deletes data, 
quota is raised so its not met anymore, node(s) are added to take storage 
responsibility away from the node, or data is forcefully deleted from the node. 
We need to ensure we don't prevent those operations from taking place. I've 
been discussing this with [~jasobrown] offline as well. 

> node-level disk quota
> ---------------------
>
>                 Key: CASSANDRA-14499
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14499
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Jordan West
>            Assignee: Jordan West
>            Priority: Major
>
> Operators should be able to specify, via YAML, the amount of usable disk 
> space on a node as a percentage of the total available or as an absolute 
> value. If both are specified, the absolute value should take precedence. This 
> allows operators to reserve space available to the database for background 
> tasks -- primarily compaction. When a node reaches its quota, gossip should 
> be disabled to prevent it taking further writes (which would increase the 
> amount of data stored), being involved in reads (which are likely to be more 
> inconsistent over time), or participating in repair (which may increase the 
> amount of space used on the machine). The node re-enables gossip when the 
> amount of data it stores is below the quota.   
> The proposed option differs from {{min_free_space_per_drive_in_mb}}, which 
> reserves some amount of space on each drive that is not usable by the 
> database.  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to