[
https://issues.apache.org/jira/browse/BOOKKEEPER-252?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13455962#comment-13455962
]
Hudson commented on BOOKKEEPER-252:
-----------------------------------
Integrated in bookkeeper-trunk #712 (See
[https://builds.apache.org/job/bookkeeper-trunk/712/])
BOOKKEEPER-252: Hedwig: provide a subscription mode to kill other
subscription channel when hedwig client is used as a proxy-style server. (sijie
via ivank) (Revision 1384836)
Result = SUCCESS
ivank :
Files :
* /zookeeper/bookkeeper/trunk/CHANGES.txt
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/inc/hedwig/callback.h
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/inc/hedwig/subscribe.h
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/lib/data.cpp
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/lib/subscriberimpl.cpp
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/lib/subscriberimpl.h
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/test/subscribetest.cpp
* /zookeeper/bookkeeper/trunk/hedwig-client/src/main/cpp/test/util.h
*
/zookeeper/bookkeeper/trunk/hedwig-client/src/main/java/org/apache/hedwig/client/api/Subscriber.java
*
/zookeeper/bookkeeper/trunk/hedwig-client/src/main/java/org/apache/hedwig/client/netty/HedwigClientImpl.java
*
/zookeeper/bookkeeper/trunk/hedwig-client/src/main/java/org/apache/hedwig/client/netty/HedwigSubscriber.java
*
/zookeeper/bookkeeper/trunk/hedwig-client/src/main/java/org/apache/hedwig/client/netty/ResponseHandler.java
*
/zookeeper/bookkeeper/trunk/hedwig-client/src/main/java/org/apache/hedwig/util/SubscriptionListener.java
*
/zookeeper/bookkeeper/trunk/hedwig-protocol/src/main/java/org/apache/hedwig/protocol/PubSubProtocol.java
*
/zookeeper/bookkeeper/trunk/hedwig-protocol/src/main/protobuf/PubSubProtocol.proto
*
/zookeeper/bookkeeper/trunk/hedwig-server/src/main/java/org/apache/hedwig/admin/console/HedwigConsole.java
*
/zookeeper/bookkeeper/trunk/hedwig-server/src/main/java/org/apache/hedwig/server/delivery/FIFODeliveryManager.java
*
/zookeeper/bookkeeper/trunk/hedwig-server/src/main/java/org/apache/hedwig/server/handlers/SubscribeHandler.java
*
/zookeeper/bookkeeper/trunk/hedwig-server/src/main/java/org/apache/hedwig/server/netty/PubSubServer.java
*
/zookeeper/bookkeeper/trunk/hedwig-server/src/main/java/org/apache/hedwig/server/subscriptions/AbstractSubscriptionManager.java
*
/zookeeper/bookkeeper/trunk/hedwig-server/src/main/java/org/apache/hedwig/server/subscriptions/InMemorySubscriptionManager.java
*
/zookeeper/bookkeeper/trunk/hedwig-server/src/main/java/org/apache/hedwig/server/subscriptions/MMSubscriptionManager.java
*
/zookeeper/bookkeeper/trunk/hedwig-server/src/test/java/org/apache/hedwig/client/TestPubSubClient.java
*
/zookeeper/bookkeeper/trunk/hedwig-server/src/test/java/org/apache/hedwig/server/PubSubServerStandAloneTestBase.java
*
/zookeeper/bookkeeper/trunk/hedwig-server/src/test/java/org/apache/hedwig/server/handlers/TestSubUnsubHandler.java
*
/zookeeper/bookkeeper/trunk/hedwig-server/src/test/java/org/apache/hedwig/server/subscriptions/StubSubscriptionManager.java
*
/zookeeper/bookkeeper/trunk/hedwig-server/src/test/java/org/apache/hedwig/server/subscriptions/TestMMSubscriptionManager.java
> Hedwig: provide a subscription mode to kill other subscription channel when
> hedwig client is used as a proxy-style server.
> --------------------------------------------------------------------------------------------------------------------------
>
> Key: BOOKKEEPER-252
> URL: https://issues.apache.org/jira/browse/BOOKKEEPER-252
> Project: Bookkeeper
> Issue Type: New Feature
> Affects Versions: 4.1.0
> Reporter: Sijie Guo
> Assignee: Sijie Guo
> Fix For: 4.2.0
>
> Attachments: BK-252.diff, BOOKKEEPER-252.diff, BOOKKEEPER-252.diff,
> BOOKKEEPER-252.diff, BOOKKEEPER-252.diff
>
>
> In some case, we need to hedwig-client as proxy server to provide messaging
> service to other users.
> client -> proxy server 1 -> hedwig
> \> proxy server 2 />
> when client would connect to either proxy server to receive messages, the
> proxy server would setup subscription channel to hedwig server.
> we just want client to be simple, so when the channel between client and
> proxy server is broken, client will try to connect to proxy servers thru VIP.
> it might connect to other proxy server. for example, first time client
> connects to proxy server 1, but the client found the connection is broken, it
> connects to proxy server 2. when proxy server 2 tried to setup subscription
> channel to hedwig, hedwig found that this subscription has existed before
> occupied by proxy server 1.
> the panic here is that proxy server 1 only disconnect old subscription
> channel only when it detected the channel between client and itself is
> broken. The detection might be delayed due to several reasons. so it might
> increment the latency that messages are pushed to real client.
> so we try to introduce a subscription mode called CREATE_OR_ATTACH_OR_KILL
> mode.
> when a subscriber use this subscription mode, it would kill old existed
> subscription channel. when using this subscription mode, we would turn off
> auto-reconnect functionality in hedwig client and just tell client about the
> channel disconnected event so client could do its logic when channel is
> detected.
> in order to provide some admin tool for admin guys to debug/operate, we
> provide ADMIN mode. if a subscriber attach to a subscription using ADMIN
> mode, its subscription channel would never be killed, then it is safe to
> guarantee admin operations.
>
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira