[JBoss JIRA] (ISPN-10373) Store/Loader Non blocking SPI
by Will Burns (Jira)
[ https://issues.redhat.com/browse/ISPN-10373?page=com.atlassian.jira.plugi... ]
Will Burns commented on ISPN-10373:
-----------------------------------
Here is the current prototype for the metadata methods for new stores. It will not make it in this JIRA but possibly in a future.
{code}
/**
* Provides a way for the store to communicate which media type it requires for its key arguments. Infinispan
* will invoke this method immediately after the store is started providing the media type that in memory objects are
* stored via {@code storageMediaType} as well as all the media types this running instance can support converting
* to. The store then must choose from any of the provided media types. Any methods that are invoked after that
* accept a key argument will be guaranteed to have this key be in the desired media type. Also any return values
* from this store should be in this media type
* <p>
* Note that choosing a media type other than the storage media type will incur the cost of converting the key
* to and from the storage media type for input and output parameters.
* <p>
* TODO: update once this detection is more explicit
* Note that if the returned MediaType is binary, that the provided and returned values will/must be raw unwrapped
* byte[] instances. Due to this the users should not rely upon the equality of such instances as each instance
* will possibly be different objects.
* <p>
* The {@link MediaType#MATCH_ALL} is a special media type that if returned will signal that the store should
* receive all values
* @implSpec
* The default implementation just returns the storageMediaType
* @param storageMediaType how the key is stored in memory
* @param supportedMediaTypes what media types Infinispan can convert to automatically on behalf of the store
* @return the media type the store desires for keys to be in when invoked and will return in
*/
default MediaType getKeyMediaType(MediaType storageMediaType, Set<MediaType> supportedMediaTypes) {
return storageMediaType;
}
/**
*
* @param storageMediaType
* @param supportedMediaTypes
* @return
*/
default MediaType getValueMediaType(MediaType storageMediaType, Set<MediaType> supportedMediaTypes) {
return storageMediaType;
}
{code}
> Store/Loader Non blocking SPI
> -----------------------------
>
> Key: ISPN-10373
> URL: https://issues.redhat.com/browse/ISPN-10373
> Project: Infinispan
> Issue Type: Feature Request
> Components: Loaders and Stores
> Reporter: Will Burns
> Assignee: Will Burns
> Priority: Major
>
> We need to add and use a non blocking SPI internally for our stores/loaders. We added ISPN-9722, which is a good step and refactored all of our internal code to use "non blocking" stores. However the stores themselves are all inherently sync even if the store itself could be non blocking. We would have to add a new SPI interface to allow for such non blocking operations. We would then remove all the explicit threading added in ISPN-9722 and move it to a wrapper around a currently sync loader instead. This way an invoking thread doesn't need to do a context switch or anything if invoking just a non blocking store operation.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 7 months
[JBoss JIRA] (ISPN-11770) Add default Infinispan JGroups stacks for the test suite
by Diego Lovison (Jira)
[ https://issues.redhat.com/browse/ISPN-11770?page=com.atlassian.jira.plugi... ]
Diego Lovison updated ISPN-11770:
---------------------------------
Description:
As a QE, I would like to set one argument and let the whole test suite behavior in the same way:
Today we need the following arguments:
* org.infinispan.test.server.cluster.stack
* infinispan.cluster.stack
It is not possible to use default-jgroups-tcp.xml or default-jgroups-udp.xml in the core module. In the server module, I can use it.
The name of the stacks for the core and server module is not matching.
* For the core, when using tcp, it is using stacks/test-tcp.xml
* For the server, when using tcp, it is using default-jgroups-tcp.xml
The main goals of this JIRA:
* Keep only one argument: infinispan.cluster.stack
* Allow the core module uses default-jgroups-tcp.xml or default-jgroups-udp.xml
* Standardize the stack name:
* * tcp -> default-jgroups-tcp.xml
* * udp -> default-jgroups-udp.xml
* * test-tcp -> tcp.xml
* * test-udp -> udp.xml
was:
As a QE, I would like to set one argument and let the whole test suite behavior in the same way:
Today we need the following arguments:
* org.infinispan.test.server.cluster.stack
* infinispan.cluster.stack
It is not possible to use default-jgroups-tcp.xml or default-jgroups-udp.xml in the core module. In the server module, I can use it.
The name of the stacks for the core and server module is not matching.
* For the core, when using tcp, it is using stacks/test-tcp.xml
* For the server, when using tcp, it is using default-jgroups-tcp.xml
The main goals of this JIRA:
* Keep only one argument: infinispan.cluster.stack
* Allow the core module uses default-jgroups-tcp.xml or default-jgroups-udp.xml
* Standardize the stack name:
* * tcp -> default-jgroups-tcp.xml
* * udp -> default-jgroups-udp.xml
* * test-tcp -> test-tcp.xml
* * test-udp -> test-udp.xml
> Add default Infinispan JGroups stacks for the test suite
> --------------------------------------------------------
>
> Key: ISPN-11770
> URL: https://issues.redhat.com/browse/ISPN-11770
> Project: Infinispan
> Issue Type: Enhancement
> Components: Core, Server
> Affects Versions: 10.1.7.Final, 11.0.0.Dev05
> Reporter: Diego Lovison
> Assignee: Diego Lovison
> Priority: Minor
>
> As a QE, I would like to set one argument and let the whole test suite behavior in the same way:
> Today we need the following arguments:
> * org.infinispan.test.server.cluster.stack
> * infinispan.cluster.stack
> It is not possible to use default-jgroups-tcp.xml or default-jgroups-udp.xml in the core module. In the server module, I can use it.
> The name of the stacks for the core and server module is not matching.
> * For the core, when using tcp, it is using stacks/test-tcp.xml
> * For the server, when using tcp, it is using default-jgroups-tcp.xml
> The main goals of this JIRA:
> * Keep only one argument: infinispan.cluster.stack
> * Allow the core module uses default-jgroups-tcp.xml or default-jgroups-udp.xml
> * Standardize the stack name:
> * * tcp -> default-jgroups-tcp.xml
> * * udp -> default-jgroups-udp.xml
> * * test-tcp -> tcp.xml
> * * test-udp -> udp.xml
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 7 months
[JBoss JIRA] (ISPN-11770) Add default Infinispan JGroups stacks for the test suite
by Diego Lovison (Jira)
[ https://issues.redhat.com/browse/ISPN-11770?page=com.atlassian.jira.plugi... ]
Diego Lovison updated ISPN-11770:
---------------------------------
Summary: Add default Infinispan JGroups stacks for the test suite (was: Standardize the JGroups stack for the test suite)
> Add default Infinispan JGroups stacks for the test suite
> --------------------------------------------------------
>
> Key: ISPN-11770
> URL: https://issues.redhat.com/browse/ISPN-11770
> Project: Infinispan
> Issue Type: Enhancement
> Components: Core, Server
> Affects Versions: 10.1.7.Final, 11.0.0.Dev05
> Reporter: Diego Lovison
> Assignee: Diego Lovison
> Priority: Minor
>
> As a QE, I would like to set one argument and let the whole test suite behavior in the same way:
> Today we need the following arguments:
> * org.infinispan.test.server.cluster.stack
> * infinispan.cluster.stack
> It is not possible to use default-jgroups-tcp.xml or default-jgroups-udp.xml in the core module. In the server module, I can use it.
> The name of the stacks for the core and server module is not matching.
> * For the core, when using tcp, it is using stacks/test-tcp.xml
> * For the server, when using tcp, it is using default-jgroups-tcp.xml
> The main goals of this JIRA:
> * Keep only one argument: infinispan.cluster.stack
> * Allow the core module uses default-jgroups-tcp.xml or default-jgroups-udp.xml
> * Standardize the stack name:
> * * tcp -> default-jgroups-tcp.xml
> * * udp -> default-jgroups-udp.xml
> * * test-tcp -> test-tcp.xml
> * * test-udp -> test-udp.xml
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 7 months
[JBoss JIRA] (ISPN-11857) AbstractInfinispanTest.eventually() default poll interval is too long
by Dan Berindei (Jira)
[ https://issues.redhat.com/browse/ISPN-11857?page=com.atlassian.jira.plugi... ]
Dan Berindei updated ISPN-11857:
--------------------------------
Status: Open (was: New)
> AbstractInfinispanTest.eventually() default poll interval is too long
> ---------------------------------------------------------------------
>
> Key: ISPN-11857
> URL: https://issues.redhat.com/browse/ISPN-11857
> Project: Infinispan
> Issue Type: Task
> Components: Core, Test Suite
> Affects Versions: 11.0.0.Dev05, 10.1.8.Final
> Reporter: Dan Berindei
> Assignee: Dan Berindei
> Priority: Major
> Fix For: 11.0.0.CR1
>
>
> Some of the {{AbstractInfinispanTest.eventually()}} overloads use a poll interval of 500ms, which is too long.
> The overloads that use a message supplier, and {{eventuallyEquals()}}, use a dynamic polling interval, starting at 65ms by default. All the overloads should use the same strategy, and the overloads that use an explicit polling interval should be removed.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 7 months
[JBoss JIRA] (ISPN-11857) AbstractInfinispanTest.eventually() default poll interval is too long
by Dan Berindei (Jira)
Dan Berindei created ISPN-11857:
-----------------------------------
Summary: AbstractInfinispanTest.eventually() default poll interval is too long
Key: ISPN-11857
URL: https://issues.redhat.com/browse/ISPN-11857
Project: Infinispan
Issue Type: Task
Components: Core, Test Suite
Affects Versions: 10.1.8.Final, 11.0.0.Dev05
Reporter: Dan Berindei
Assignee: Dan Berindei
Fix For: 11.0.0.CR1
Some of the {{AbstractInfinispanTest.eventually()}} overloads use a poll interval of 500ms, which is too long.
The overloads that use a message supplier, and {{eventuallyEquals()}}, use a dynamic polling interval, starting at 65ms by default. All the overloads should use the same strategy, and the overloads that use an explicit polling interval should be removed.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 7 months
[JBoss JIRA] (ISPN-9760) HotRodPipeTest.testPipeRequests random failures
by Dan Berindei (Jira)
[ https://issues.redhat.com/browse/ISPN-9760?page=com.atlassian.jira.plugin... ]
Dan Berindei closed ISPN-9760.
------------------------------
Resolution: Out of Date
Probably fixed with the switch to the generated server-side HotRod parser, which removed some of the logging and improved performance with {{SingleByteFrameDecoderChannelInitializer}}.
> HotRodPipeTest.testPipeRequests random failures
> -----------------------------------------------
>
> Key: ISPN-9760
> URL: https://issues.redhat.com/browse/ISPN-9760
> Project: Infinispan
> Issue Type: Bug
> Components: Test Suite
> Affects Versions: 9.4.2.Final, 10.0.0.Alpha1
> Reporter: Dan Berindei
> Priority: Major
> Labels: testsuite_stability
>
> On my machine, with trace logging enabled, I sometimes get
> {noformat}
> 10:43:23,658 ERROR (testng-Test:[]) [TestSuiteProgress] Test failed: org.infinispan.server.hotrod.test.HotRodPipeTest.testPipeRequests
> java.lang.AssertionError: expected:<10000>, got:<4668>
> at org.testng.AssertJUnit.fail(AssertJUnit.java:59) ~[testng-6.9.9.jar:?]
> at org.infinispan.test.AbstractInfinispanTest.eventually(AbstractInfinispanTest.java:199) ~[infinispan-core-9.4.2-SNAPSHOT-tests.jar:9.4.2-SNAPSHOT]
> at org.infinispan.test.AbstractInfinispanTest.eventually(AbstractInfinispanTest.java:178) ~[infinispan-core-9.4.2-SNAPSHOT-tests.jar:9.4.2-SNAPSHOT]
> at org.infinispan.test.AbstractInfinispanTest.eventuallyEquals(AbstractInfinispanTest.java:168) ~[infinispan-core-9.4.2-SNAPSHOT-tests.jar:9.4.2-SNAPSHOT]
> at org.infinispan.server.hotrod.test.HotRodPipeTest.testPipeRequests(HotRodPipeTest.java:65) ~[test-classes/:?]
> {noformat}
> There are some older failures in CI that look like this
> {noformat}
> java.lang.AssertionError:
> at org.infinispan.test.AbstractInfinispanTest.eventually(AbstractInfinispanTest.java:249)
> at org.infinispan.test.AbstractInfinispanTest.eventually(AbstractInfinispanTest.java:231)
> at org.infinispan.test.AbstractInfinispanTest.eventually(AbstractInfinispanTest.java:207)
> at org.infinispan.test.AbstractInfinispanTest.eventually(AbstractInfinispanTest.java:385)
> at org.infinispan.server.hotrod.test.HotRodPipeTest.testPipeRequests(HotRodPipeTest.java:65)
> {noformat}
> https://ci.infinispan.org/job/Infinispan/job/master/862/testReport/junit/...
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 7 months