Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
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.
Attachments
Issue Links
- is duplicated by
-
GEODE-9050 Redis test fails with Netty 4.1.60 and later
- Closed
- relates to
-
GEODE-9050 Redis test fails with Netty 4.1.60 and later
- Closed
- links to