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

ASF GitHub Bot commented on ARTEMIS-581:
----------------------------------------

Github user mtaylor commented on a diff in the pull request:

    https://github.com/apache/activemq-artemis/pull/749#discussion_r77524240
  
    --- Diff: 
artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ServerSessionImpl.java
 ---
    @@ -1249,6 +1256,14 @@ public RoutingStatus send(final ServerMessage 
message, final boolean direct) thr
     
        @Override
        public RoutingStatus send(final ServerMessage message, final boolean 
direct, boolean noAutoCreateQueue) throws Exception {
    +
    +      // If the protocol doesn't support flow control, we have no choice 
other than fail the communication
    +      if (!this.getRemotingConnection().isSupportsFlowControl() && 
pagingManager.isDiskFull()) {
    +         ActiveMQIOErrorException exception = 
ActiveMQMessageBundle.BUNDLE.diskBeyondLimit();
    +         this.getRemotingConnection().fail(exception);
    +         throw exception;
    --- End diff --
    
    Why are these the only 2 solutions?  Surely we want to keep consumers alive 
so we can gracefully recover from the situation?  
    
    Killing the connections could kill all the consumers too making it 
difficult to recover once the memory and disk limit is reached.  DROP doesn't 
necessarily mean the messages are lost, the client should choose an appropriate 
qos level and retry later.  Is it possible to configure it to go from PAGING to 
DROP once the disk limit is reached?


> Add setting to control global disk usage      
> -----------------------------------------
>
>                 Key: ARTEMIS-581
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-581
>             Project: ActiveMQ Artemis
>          Issue Type: Improvement
>    Affects Versions: 1.3.0
>            Reporter: Lionel Cons
>            Assignee: clebert suconic
>            Priority: Blocker
>             Fix For: 1.5.0
>
>
> AFAIK, there is no way to prevent Artemis from using too much space on the 
> disk (with paged messages).
> Disk space, just like memory space, is limited and Artemis should detect when 
> it is about to use too much space and act accordingly (i.e. DROP, FAIL...).
> ActiveMQ 5.x does allow controlling disk usage via its {{storeUsage}} and 
> {{tempUsage}} settings in {{systemUsage}}.
> Could Artemis also use a global disk setting to limit its disk usage?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to