[JBoss JIRA] (ISPN-2041) Provide putAll(map) and getAll(map) bulk operation on Cache and RemoteCache
by Tristan Tarrant (JIRA)
[ https://issues.jboss.org/browse/ISPN-2041?page=com.atlassian.jira.plugin.... ]
Tristan Tarrant updated ISPN-2041:
----------------------------------
Fix Version/s: 7.2.0.Final
(was: 7.1.0.Final)
> Provide putAll(map) and getAll(map) bulk operation on Cache and RemoteCache
> ---------------------------------------------------------------------------
>
> Key: ISPN-2041
> URL: https://issues.jboss.org/browse/ISPN-2041
> Project: Infinispan
> Issue Type: Enhancement
> Components: Core
> Affects Versions: 5.1.4.FINAL
> Reporter: susanin
> Assignee: Galder Zamarreño
> Priority: Minor
> Fix For: 7.2.0.Final
>
>
> Currently Infinispan implements putAll(map) by means of looping over all entries and submitting them by means of put() one-by-one.
> This is very slow if you have a lot of synchronous updates to apply.
> It would be much more efficient, if a special bulk operation would be supported, so that all entries are sent to their respective replica nodes in one go. It would reduce the number of network roundtrips and related overhead and it would also make use of parallel execution, because some of the puts can be executed in parallel as they land on different nodes.
> Note: Hazelcast has this optimization. It often improves performance of bulk puts by at least a factor of 2 or 3, even if it is used between a client and Hazelcast server, i.e. a bulk operation is sent to a single grid node from a client and no parallelism can be used.
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
11 years, 3 months
[JBoss JIRA] (ISPN-2041) Provide putAll(map) and getAll(map) bulk operation on Cache and RemoteCache
by Tristan Tarrant (JIRA)
[ https://issues.jboss.org/browse/ISPN-2041?page=com.atlassian.jira.plugin.... ]
Tristan Tarrant commented on ISPN-2041:
---------------------------------------
The getAll operation should be implemented using a remote iterator
> Provide putAll(map) and getAll(map) bulk operation on Cache and RemoteCache
> ---------------------------------------------------------------------------
>
> Key: ISPN-2041
> URL: https://issues.jboss.org/browse/ISPN-2041
> Project: Infinispan
> Issue Type: Enhancement
> Components: Core
> Affects Versions: 5.1.4.FINAL
> Reporter: susanin
> Assignee: Galder Zamarreño
> Priority: Minor
> Fix For: 7.1.0.Final
>
>
> Currently Infinispan implements putAll(map) by means of looping over all entries and submitting them by means of put() one-by-one.
> This is very slow if you have a lot of synchronous updates to apply.
> It would be much more efficient, if a special bulk operation would be supported, so that all entries are sent to their respective replica nodes in one go. It would reduce the number of network roundtrips and related overhead and it would also make use of parallel execution, because some of the puts can be executed in parallel as they land on different nodes.
> Note: Hazelcast has this optimization. It often improves performance of bulk puts by at least a factor of 2 or 3, even if it is used between a client and Hazelcast server, i.e. a bulk operation is sent to a single grid node from a client and no parallelism can be used.
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
11 years, 3 months
[JBoss JIRA] (ISPN-5130) Conditional operation warning should only appear for clustered caches
by Galder Zamarreño (JIRA)
[ https://issues.jboss.org/browse/ISPN-5130?page=com.atlassian.jira.plugin.... ]
Galder Zamarreño updated ISPN-5130:
-----------------------------------
Fix Version/s: 7.0.4.Final
> Conditional operation warning should only appear for clustered caches
> ---------------------------------------------------------------------
>
> Key: ISPN-5130
> URL: https://issues.jboss.org/browse/ISPN-5130
> Project: Infinispan
> Issue Type: Bug
> Affects Versions: 7.1.0.Alpha1, 7.0.3.Final
> Reporter: Galder Zamarreño
> Assignee: Galder Zamarreño
> Fix For: 7.1.0.Beta1, 7.1.0.Final, 7.0.4.Final
>
>
> Even for local caches, the following warning is shown when using conditional operations:
> {code}
> 08:38:08,920 WARN [org.infinispan.server.hotrod.Decoder2x$] (HotRodServerWorker-6-8) ISPN006010:
> Conditional operation 'ReplaceIfUnmodifiedRequest' should be used with transactional caches, otherwise data inconsistency issues could arise under failure situations
> {code}
> This warning should only appear in clustered situations where the real danger is present (see ISPN-2956)
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
11 years, 3 months
[JBoss JIRA] (ISPN-5103) Inefficient index updates cause high cost merges and increase overall latency
by Gustavo Fernandes (JIRA)
[ https://issues.jboss.org/browse/ISPN-5103?page=com.atlassian.jira.plugin.... ]
Gustavo Fernandes updated ISPN-5103:
------------------------------------
Status: Pull Request Sent (was: Open)
Git Pull Request: https://github.com/infinispan/infinispan/pull/3196
PR with a failing test after enabling 'isIndexMetadataComplete'
> Inefficient index updates cause high cost merges and increase overall latency
> -----------------------------------------------------------------------------
>
> Key: ISPN-5103
> URL: https://issues.jboss.org/browse/ISPN-5103
> Project: Infinispan
> Issue Type: Enhancement
> Components: Embedded Querying
> Affects Versions: 7.0.2.Final, 7.1.0.Alpha1
> Reporter: Gustavo Fernandes
> Assignee: Gustavo Fernandes
>
> Currently every change to the index is done Lucene-wise combining two operations:
> * Delete by query, using a boolean query on the id plus the entity class
> * Add
>
> Under high load, specially during merges those numerous deletes provoke very long delays causing high latency.
> We should instead use a simple Lucene Update to add/change documents, since internally it translates to a Delete by term plus an Add operation, and delete by terms are extremely efficient in Lucene.
> Some local tests showed average latency of updating the index using this strategy to drop 4 times, both for the SYNC and ASYNC backends
> With relation to sharing the index between entities, which was the original motivation of the Delete by query plus add strategy, we have two scenarios:
> * Same cache with multiple entity types: that's a non-issue, since obviously there's no id collision in this case
> * Different caches with the same index: this scenario happens when different caches shares the same index, for ex:
> {code}
> @Indexed(indexName=common)
> public class Country { ... }
> @Indexed(indexName=common)
> public class Currency { ... }
> cm.getCache("currencies").put(1, new Currency(...))
> cm.getCache("countries").put(1, new Country(...))
> {code}
> This would require a delete by query in order to persist both a Country and a Currency with id=1.
> It would also require setting "default.exclusive_index_use", "false", with the associated cost of having to reopen the IndexWriter on every operation.
> Given the performance gain of doing a simple Update is considerable, we should make the corner case supported by extra configuration or alternatively, generate a unique @ProvidedId, including the entity class or the cache name that work for all cases described above.
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
11 years, 3 months
[JBoss JIRA] (ISPN-5103) Inefficient index updates cause high cost merges and increase overall latency
by Gustavo Fernandes (JIRA)
[ https://issues.jboss.org/browse/ISPN-5103?page=com.atlassian.jira.plugin.... ]
Gustavo Fernandes updated ISPN-5103:
------------------------------------
Status: Open (was: New)
> Inefficient index updates cause high cost merges and increase overall latency
> -----------------------------------------------------------------------------
>
> Key: ISPN-5103
> URL: https://issues.jboss.org/browse/ISPN-5103
> Project: Infinispan
> Issue Type: Enhancement
> Components: Embedded Querying
> Affects Versions: 7.0.2.Final, 7.1.0.Alpha1
> Reporter: Gustavo Fernandes
> Assignee: Gustavo Fernandes
>
> Currently every change to the index is done Lucene-wise combining two operations:
> * Delete by query, using a boolean query on the id plus the entity class
> * Add
>
> Under high load, specially during merges those numerous deletes provoke very long delays causing high latency.
> We should instead use a simple Lucene Update to add/change documents, since internally it translates to a Delete by term plus an Add operation, and delete by terms are extremely efficient in Lucene.
> Some local tests showed average latency of updating the index using this strategy to drop 4 times, both for the SYNC and ASYNC backends
> With relation to sharing the index between entities, which was the original motivation of the Delete by query plus add strategy, we have two scenarios:
> * Same cache with multiple entity types: that's a non-issue, since obviously there's no id collision in this case
> * Different caches with the same index: this scenario happens when different caches shares the same index, for ex:
> {code}
> @Indexed(indexName=common)
> public class Country { ... }
> @Indexed(indexName=common)
> public class Currency { ... }
> cm.getCache("currencies").put(1, new Currency(...))
> cm.getCache("countries").put(1, new Country(...))
> {code}
> This would require a delete by query in order to persist both a Country and a Currency with id=1.
> It would also require setting "default.exclusive_index_use", "false", with the associated cost of having to reopen the IndexWriter on every operation.
> Given the performance gain of doing a simple Update is considerable, we should make the corner case supported by extra configuration or alternatively, generate a unique @ProvidedId, including the entity class or the cache name that work for all cases described above.
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
11 years, 3 months
[JBoss JIRA] (ISPN-5132) Create a Docker Image
by Tristan Tarrant (JIRA)
Tristan Tarrant created ISPN-5132:
-------------------------------------
Summary: Create a Docker Image
Key: ISPN-5132
URL: https://issues.jboss.org/browse/ISPN-5132
Project: Infinispan
Issue Type: Feature Request
Components: Docker
Reporter: Tristan Tarrant
Assignee: Vojtech Juranek
Fix For: 7.0.0.Final
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
11 years, 3 months