zookeeper-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ZOOKEEPER-2755) Allow to subclass ClientCnxnSocketNetty and NettyServerCnxn in order to use Netty Local transport
Date Thu, 27 Apr 2017 00:09:04 GMT

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

ASF GitHub Bot commented on ZOOKEEPER-2755:
-------------------------------------------

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

    https://github.com/apache/zookeeper/pull/227#discussion_r113590962
  
    --- Diff: src/java/test/org/apache/zookeeper/test/NettyLocalSuiteTest.java ---
    @@ -0,0 +1,35 @@
    +/**
    + * Licensed to the Apache Software Foundation (ASF) under one
    + * or more contributor license agreements.  See the NOTICE file
    + * distributed with this work for additional information
    + * regarding copyright ownership.  The ASF 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.zookeeper.test;
    +
    +import org.junit.runners.Suite;
    +
    +/**
    + * Run tests with: Netty Client against Netty server
    + */
    +@Suite.SuiteClasses({
    --- End diff --
    
    > But IMHO a new system property/run time flag will add the need to run always twice
the full suite at every build/release.
    
    Maybe. We have a good degree of flakyness in our testing and wondering if using this type
of change for our precommit  hook will increase performance and stability (especially if we
can use something similar for server<->server).
    
    > At this moment I think it is not the time to add an official "local transport" netty
connection factory.
    
    Agreed.
    
    > I can't find how to enable Netty for server-to-server communications
    
    It is currently not possible. All communications there are handled by old fashioned sockets.
 I was incorrect in my other comment, although I still think my point is valid. Is there a
way to have similar functionality with old fashioned java sockets? I don't think this change
makes too much sense for testing unless we can take zk off the OS network stack entirely.


> Allow to subclass ClientCnxnSocketNetty and NettyServerCnxn in order to use Netty Local
transport
> -------------------------------------------------------------------------------------------------
>
>                 Key: ZOOKEEPER-2755
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2755
>             Project: ZooKeeper
>          Issue Type: New Feature
>          Components: java client, server
>    Affects Versions: 3.5.2
>            Reporter: Enrico Olivelli
>
> ClientCnxnSocketNetty and NettyServerCnxn use explicitly InetSocketAddress class to work
with network addresses.
> We can do a little refactoring to use only SocketAddress and make it possible to create
subclasses of ClientCnxnSocketNetty and NettyServerCnxn which leverage built-in Netty 'local'
channels. 
> Such Netty local channels do not create real sockets and so allow a simple ZooKeeper
server + ZooKeeper client to be run on the same JVM without binding to real TCP endpoints.
> Usecases:
> Ability to run concurrently on the same machine tests of projects which use ZooKeeper
(usually in unit tests the server and the client run inside the same JVM) without dealing
with random ports and in general using less network resources
> Run simplified (standalone, all processes in the same JVM) versions of applications which
need a working ZooKeeper ensemble to run.
> Note:
> Embedding ZooKeeper server + client on the same JVM has many risks and in general I think
we should encourage users to do so, so I in this patch I will not provide official implementations
of ClientCnxnSocketNetty and NettyServerCnxn. There will be implementations only inside the
test packages, in order to test that most of the features are working with custom socket factories
and in particular with the 'LocalAddress' specific subclass of SocketAddress.
> Note:
> the 'Local' sockets feature will be available on Netty 4 too



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message