You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Owen Nichols (Jira)" <ji...@apache.org> on 2022/06/22 20:47:03 UTC

[jira] [Closed] (GEODE-9338) Remove strong guarantees for redis PUBLISH command response

     [ https://issues.apache.org/jira/browse/GEODE-9338?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Owen Nichols closed GEODE-9338.
-------------------------------

> Remove strong guarantees for redis PUBLISH command response
> -----------------------------------------------------------
>
>                 Key: GEODE-9338
>                 URL: https://issues.apache.org/jira/browse/GEODE-9338
>             Project: Geode
>          Issue Type: Improvement
>          Components: redis
>            Reporter: Jens Deppe
>            Assignee: Hale Bales
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.15.0
>
>
> Redis' {{PUBLISH}} command responds with the number of clients that have received the published message. Our current implementation attempts to respond with as accurate a number as possible. To that end, each publish (see {{PubSubImpl.publishMessageToSubscribers}} and {{AbstractSubscription.publishMessage}} are effectively synchronous operations. The current flow is:
> - PUBLISH some_message
> - Issue a fn call to each server and attempt to publish to each subscribed client
> - Count how many successful publish messages were written and return those
> - Respond to the redis client with the aggregated successful publishings
> In redis clustering mode, the response is only the number of local publishings. We can go even further and not attempt to first publish before subscribing, but simply respond with the current number of subscribers, regardless whether they are connected or not.
> We should be able to perform all pubsub work on the regular netty thread and completely remove the subscriber EventLoopGroup.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)