You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "Oleg Kalnichevski (JIRA)" <ji...@apache.org> on 2017/09/18 21:26:01 UTC

[jira] [Moved] (HTTPCLIENT-1868) Make memcached storage backend operation non-blocking

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

Oleg Kalnichevski moved HTTPASYNC-127 to HTTPCLIENT-1868:
---------------------------------------------------------

    Affects Version/s:     (was: 4.1.3)
             Workflow: Default workflow, editable Closed status  (was: classic default workflow)
                  Key: HTTPCLIENT-1868  (was: HTTPASYNC-127)
              Project: HttpComponents HttpClient  (was: HttpComponents HttpAsyncClient)

> Make memcached storage backend operation non-blocking
> -----------------------------------------------------
>
>                 Key: HTTPCLIENT-1868
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1868
>             Project: HttpComponents HttpClient
>          Issue Type: Improvement
>            Reporter: Jim Horng
>
> < Context >
> Since `HttpAysncClient` is non-blocking, but it's operation to memcached at `MemcachedHttpCacheStorage` layer still using blocking I/O manner. Even `spymemcached` client which has non-blocking I/O in nature, but `MemcachedHttpCacheStorage` is using `spymemcached` blocking API.
> < Benefit >
> If all the way in flow of `HttpAsyncClient` is non-blocking, then it can truely do high concurrency with just a few threads, otherwise, performance will be largely impact by blocking calls since there's only a few threads for serving http requests.
> < Code Flow for Blocking manner >
> # `org.apache.http.impl.client.cache.memcached.MemcachedHttpCacheStorage#getEntry` -> `final MemcachedCacheEntry mce = reconstituteEntry(client.get(key));` 
> # net.spy.memcached.MemcachedClient#get(java.lang.String)
> Should use `net.spy.memcached.MemcachedClient#asyncGet(java.lang.String)`, but then whole API calling structure require big changes.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org