New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ISPN-14207 Make MemcachedDecoder non blocking #10379
Conversation
looks like I have some failures in integration tests... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, just one real question regarding stats blocking.
server/memcached/src/main/java/org/infinispan/server/memcached/MemcachedDecoder.java
Outdated
Show resolved
Hide resolved
server/memcached/src/main/java/org/infinispan/server/memcached/MemcachedDecoder.java
Outdated
Show resolved
Hide resolved
@diegolovison can we have a perf run with memcached client? |
} | ||
|
||
private void sendResponseOrdered(Channel ch, CompletionStage<Object> rsp) { | ||
new ResponseEntry(this, ch).queueResponse(rsp); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This makes me think we should add a test that does 2 operations in parallel with the non blocking mecached API. Or do we already have that?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can remove the get()
from here: https://github.com/infinispan/infinispan/pull/10379/files#diff-49239ed285f72772402428f971aa797f4a8be001e4cf22c5a31765afe0e207ebR50
The test only needs the last get()
to make sure the flush()
is not executed concurrently with the puts.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did the change above ^
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only problem is that we aren't checking the response and they aren't interesting in the test. I would say we should do this to a test that does two gets in parallel that get different values in the response, just to make sure the responses aren't interleaved.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
added org.infinispan.server.functional.MemcachedOperations#testConcurrentGets
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great, thanks 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, waiting on CI/performance checks
@diegolovison are you sure the job did run the right thing?
|
Merged, thanks |
https://issues.redhat.com/browse/ISPN-14207