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

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

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

    https://github.com/apache/activemq-artemis/pull/2467#discussion_r242903263
  
    --- Diff: 
artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/proton/handler/ExecutorNettyAdapter.java
 ---
    @@ -0,0 +1,221 @@
    +/*
    + * Copyright 2005-2014 Red Hat, Inc.
    + * Red Hat licenses this file to you under the Apache License, version
    + * 2.0 (the "License"); you may not use this file except in compliance
    + * with the License.  You may obtain a copy of the License at
    + *    http://www.apache.org/licenses/LICENSE-2.0
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    + * implied.  See the License for the specific language governing
    + * permissions and limitations under the License.
    + */
    +
    +package org.apache.activemq.artemis.protocol.amqp.proton.handler;
    +
    +import java.util.Collection;
    +import java.util.Iterator;
    +import java.util.List;
    +import java.util.concurrent.Callable;
    +import java.util.concurrent.ExecutionException;
    +import java.util.concurrent.TimeUnit;
    +import java.util.concurrent.TimeoutException;
    +
    +import io.netty.channel.Channel;
    +import io.netty.channel.ChannelFuture;
    +import io.netty.channel.ChannelPromise;
    +import io.netty.channel.EventLoop;
    +import io.netty.channel.EventLoopGroup;
    +import io.netty.util.concurrent.EventExecutor;
    +import io.netty.util.concurrent.Future;
    +import io.netty.util.concurrent.ProgressivePromise;
    +import io.netty.util.concurrent.Promise;
    +import io.netty.util.concurrent.ScheduledFuture;
    +import org.apache.activemq.artemis.utils.actors.ArtemisExecutor;
    +
    +/** Test cases may supply a simple executor instead of the real Netty 
Executor
    + *  On that case this is a simple adapter for what's needed from these 
tests.
    + *  Not intended to be used in production.
    + *
    + *  TODO: This could be refactored out of the main codebase but at a high 
cost.
    + *        We may do it some day if we find an easy way that won't clutter 
the code too much.
    + *  */
    +public class ExecutorNettyAdapter implements EventLoop {
    --- End diff --
    
    I see that ExecutorNettyAdapter is used on AMQPConnectionContext: do you 
mean that only tests trigger ExecutorNettyAdapter to be created?


> Make AMQP Processing Single Threaded and other AMQP perf improvements
> ---------------------------------------------------------------------
>
>                 Key: ARTEMIS-2205
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-2205
>             Project: ActiveMQ Artemis
>          Issue Type: Improvement
>          Components: AMQP
>    Affects Versions: 2.6.3
>            Reporter: clebert suconic
>            Assignee: clebert suconic
>            Priority: Major
>             Fix For: 2.7.0
>
>
> This is using Netty Executor (NIOLoop) to process AMQP.
> Instead of using a lock to enter the AMQP processing, what has issues on 
> scaling up multiple connections per queue, it's using a single threaded 
> executor.
>  
>  
> This represents a major improvement in AMQP. I will take my time to write a 
> blog post about this with multiple scenarios comparing 2.6.3, master (before 
> this change) and after. (I will post a link here to this JIRA).



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

Reply via email to