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

2021-07-16 Thread ASF GitHub Bot (Jira)


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

ASF GitHub Bot updated GEODE-9338:
--
Labels: pull-request-available  (was: )

> 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
>
> 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.3.4#803005)


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

2021-06-01 Thread Jens Deppe (Jira)


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

Jens Deppe updated GEODE-9338:
--
Description: 
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.

> 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
>Priority: Major
>
> 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.3.4#803005)