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

[jira] [Resolved] (GEODE-9752) Limit Memory Consumption for Read Operation

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

Dan Smith resolved GEODE-9752.
------------------------------
    Resolution: Won't Fix

Closing this issue because geode-for-redis was removed in GEODE-10278

> Limit Memory Consumption for Read Operation
> -------------------------------------------
>
>                 Key: GEODE-9752
>                 URL: https://issues.apache.org/jira/browse/GEODE-9752
>             Project: Geode
>          Issue Type: Improvement
>          Components: redis
>    Affects Versions: 1.15.0
>            Reporter: Wayne
>            Priority: Major
>
> The "read" commands can be made more memory friendly by streaming back their result to netty a "batch" at a time. They can get the netty ByteBuf and write the result directly to it. Once the buffer contains a certain number of bytes (say 4k) it do a write and flush. Once that completes it can then use the same buffer to send the next 4k bytes to the client. Writing the response directly to the netty ByteBuf will also produce less garbage. The only downside to it is that the writing will be done while holding the stripe lock. This probably will not be any slower unless the buffer fills up while we still hold the lock. The last buffer (the one that is not full) can be done after the lock is released just as we currently do by returning a RedisResponse outside the lock and then asking it to write itself to netty.



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