[JBoss JIRA] (ISPN-3905) Murmurhash3 implementation is slow on String keys
by Galder Zamarreño (JIRA)
[ https://issues.jboss.org/browse/ISPN-3905?page=com.atlassian.jira.plugin.... ]
Galder Zamarreño updated ISPN-3905:
-----------------------------------
Fix Version/s: 7.1.0.Alpha1
(was: 7.0.0.Final)
> Murmurhash3 implementation is slow on String keys
> -------------------------------------------------
>
> Key: ISPN-3905
> URL: https://issues.jboss.org/browse/ISPN-3905
> Project: Infinispan
> Issue Type: Enhancement
> Components: Core
> Affects Versions: 6.0.0.Final, 6.0.1.Final
> Reporter: Sanne Grinovero
> Assignee: Mircea Markus
> Priority: Minor
> Fix For: 7.1.0.Alpha1
>
>
> String instances are a common choice for being used as key entries, still the getBytes() operation being performed allocates costly buffers, and the computation to get those bytes looks like expensive too.
> I suspect there might be good reasons for not using the String's own hashcode directly as an input to Murmurhash? Still that's what other implementations seem to do.
--
This message was sent by Atlassian JIRA
(v6.3.1#6329)
10 years, 2 months
[JBoss JIRA] (ISPN-3906) Do not place ProtobufValueWrapper instances in the cache
by Galder Zamarreño (JIRA)
[ https://issues.jboss.org/browse/ISPN-3906?page=com.atlassian.jira.plugin.... ]
Galder Zamarreño updated ISPN-3906:
-----------------------------------
Fix Version/s: 7.1.0.Alpha1
(was: 7.0.0.Final)
> Do not place ProtobufValueWrapper instances in the cache
> --------------------------------------------------------
>
> Key: ISPN-3906
> URL: https://issues.jboss.org/browse/ISPN-3906
> Project: Infinispan
> Issue Type: Task
> Components: Embedded Querying
> Affects Versions: 6.0.0.Final
> Reporter: Adrian Nistor
> Assignee: Adrian Nistor
> Fix For: 7.1.0.Alpha1
>
>
> ProtobufValueWrapper is only needed in order to provide a classbridge so we can integrate with Hibernate Search. Still, we should not need to wrap the protobuf encoded byte array put in the cache with this class. It should only be created as a temporary wrapper just before we feed the data to Hibernate Search.
--
This message was sent by Atlassian JIRA
(v6.3.1#6329)
10 years, 2 months
[JBoss JIRA] (ISPN-3907) Define a Protobuf custom option for defining numeric IDs for types
by Galder Zamarreño (JIRA)
[ https://issues.jboss.org/browse/ISPN-3907?page=com.atlassian.jira.plugin.... ]
Galder Zamarreño updated ISPN-3907:
-----------------------------------
Fix Version/s: 7.1.0.Alpha1
(was: 7.0.0.Final)
> Define a Protobuf custom option for defining numeric IDs for types
> ------------------------------------------------------------------
>
> Key: ISPN-3907
> URL: https://issues.jboss.org/browse/ISPN-3907
> Project: Infinispan
> Issue Type: Task
> Components: Embedded Querying
> Affects Versions: 6.0.0.Final
> Reporter: Adrian Nistor
> Assignee: Adrian Nistor
> Fix For: 7.1.0.Alpha1
>
>
> Currently the wire format of all Protobuf encoded keys and values contains a header/envelope that has some metadata information, like the fully qualified type name (that is protobuf type name, not java) of the object encoded in the message. This information is needed so that the other end can decode the message. And we added it because the Protobuf spec assumes both ends are aware of the message type, which is not the case most of the time.
> While this approach solves the problem nicely, it becomes very inefficient is the FQN is long, which is usually the case, as people tend to stick the domain name of their company + package app name into it.
> Solution: provide alternative unique numeric IDs to all types. The IDs can be added to message type definitions in the protobuf schema and the user is in charge of guaranteeing their uniqueness while the system must check and enforce the uniqueness when a schema is registered ib the ProtobufMetadataManager. To do this we define a custom Protobuf Message type option that accepts a numeric value. If such a numeric ID was assigned to the type then when it is serialized in protobuf the system has to use this id in the header rather that the FQN string.
> This option should not be mandatory. Existing apps should work without requiring source code changes or recompiling providing that the relevant jars are upgraded in both client and server to support the new header encoding.
--
This message was sent by Atlassian JIRA
(v6.3.1#6329)
10 years, 2 months
[JBoss JIRA] (ISPN-3918) Inconsistent view of the cache with putIfAbsent in a non-tx cache during state transfer
by Galder Zamarreño (JIRA)
[ https://issues.jboss.org/browse/ISPN-3918?page=com.atlassian.jira.plugin.... ]
Galder Zamarreño updated ISPN-3918:
-----------------------------------
Fix Version/s: 7.1.0.Alpha1
(was: 7.0.0.Final)
> Inconsistent view of the cache with putIfAbsent in a non-tx cache during state transfer
> ---------------------------------------------------------------------------------------
>
> Key: ISPN-3918
> URL: https://issues.jboss.org/browse/ISPN-3918
> Project: Infinispan
> Issue Type: Bug
> Components: Core, State Transfer
> Affects Versions: 6.0.0.Final
> Reporter: Dan Berindei
> Fix For: 7.1.0.Alpha1
>
> Attachments: ntpiadjst.log.gz
>
>
> In a non-tx cache, sometimes it's possible for a {{get(k)}} to return {{null}} even though a previous {{putIfAbsent(k, v)}} returned a non-null value and the only concurrent operations on the cache are concurrent putIfAbsent calls.
> Say \[B, A, C] are the owners of k (C just joined)
> 1. A starts a {{putIfAbsent(k, v1)}} command, sends it to B
> 2. B forwards the command to A and C
> 3. C writes {{k=v1}}
> 4. C becomes the primary owner of k (owners are now \[C, A])
> 5. A/B see the new topology before committing and throw an outdatedTopologyException
> 6. A retries the command, sends it to C
> 7. C forwards the command to A, which writes {{k=v1}}
> 8. C doesn't have to update the entry, returns null
> If, between steps 3 and 7, another thread on A starts a {{putIfAbsent(k, v2)}} command, the command will fail and return {{v1}} (because the primary owner already has a value). However, a subsequent {{get(k)}} command will return {{null}}, because A is an owner and doesn't have the value.
--
This message was sent by Atlassian JIRA
(v6.3.1#6329)
10 years, 2 months
[JBoss JIRA] (ISPN-3927) rethinking ISPN transactions
by Galder Zamarreño (JIRA)
[ https://issues.jboss.org/browse/ISPN-3927?page=com.atlassian.jira.plugin.... ]
Galder Zamarreño updated ISPN-3927:
-----------------------------------
Fix Version/s: 7.1.0.Alpha1
(was: 7.0.0.Final)
> rethinking ISPN transactions
> ----------------------------
>
> Key: ISPN-3927
> URL: https://issues.jboss.org/browse/ISPN-3927
> Project: Infinispan
> Issue Type: Feature Request
> Components: Core
> Reporter: Mircea Markus
> Assignee: Ion Savin
> Labels: roadmap
> Fix For: 7.1.0.Alpha1
>
>
> Umbrella JIRA for several transaction related improvements:
> 1. Async options for commit/rollback
> - they don't really make sense as a user you don't get any guarantee on the status of the transaction
> - they complicate the code significantly
> - I think they should be removed
> 2. READ_COMMITTED
> - it has the same performance as REPEATABLE_READ, but offers less guarantees.
> - unlike REPEATABLE_READ, it also behaves inconsistently when the data is owned by transaction originator
> - I think it should be removed
> 3. Optimistic tx without Write Skew Check (WSC)
> - well, without WSC the transactions are not optimistic by definition
> - they are something else: an batch update of multiple key/values. If the batch is successful you know the update was atomic. If it failed you don't get any guarantee
> - suggestion: optimistic tx should *always* have WSC enabled (no option to configure it)
> - build our batching functionality on top of what currently is optimistic tx without WSC and document it as such
> 4. Remove 1PC option
> - I'm not totally sure about it, but does it really make sense to have 1PC as an option? they don't offer any consistency guarantees so async API + non tx do about the same thing
> [1] http://markmail.org/thread/a7fjko4dyejxqgdy
> [2] https://github.com/infinispan/infinispan/pull/2177
> [3] http://infinispan.markmail.org/thread/nl2bs7rjvayjcybv
> [4] http://infinispan.markmail.org/thread/vbg6g4otu7djazbc
--
This message was sent by Atlassian JIRA
(v6.3.1#6329)
10 years, 2 months