[JBoss JIRA] (ISPN-12128) Remote read during state transfer should store entry in data container
by Dan Berindei (Jira)
Dan Berindei created ISPN-12128:
-----------------------------------
Summary: Remote read during state transfer should store entry in data container
Key: ISPN-12128
URL: https://issues.redhat.com/browse/ISPN-12128
Project: Infinispan
Issue Type: Bug
Components: Core, State Transfer
Affects Versions: 11.0.1.Final
Reporter: Dan Berindei
Assignee: Dan Berindei
Fix For: 12.0.0.Final
A cache with {{await-initial-transfer="false"}} will execute cache operations while it is receiving state, during rebalance phase {{READ_OLD_WRITE_ALL}}. State transfer can take a long time, and during that time, it is not a read owner for any segments, it is only a write owner for the segments it is receiving.
That means {{cache.get(k)}} will perform a remote lookup every time, even AFTER the node received entry {{k=v}} via transfer, as long as not all the nodes have confirmed the end of state transfer and the coordinator hasn't changed the rebalance phase to {{READ_ALL_WRITE_ALL}}.
The extra remote lookups can have a negative impact on application performance. Especially in a replicated cache, the application would expect reads to be very fast, and the repeated remote lookups would break that assumption.
In order to encourage {{await-initial-transfer="false"}} and eventually make it the default (ISPN-9112), we should limit the number of remote lookups performed by a node while is is a write-only owner of a key:
* Remote reads should write the entry in the data container, the same way state transfer would (i.e. skipping the write if a write operation already changed the entry).
* Reads should first look up the key in the local data container before going remotely. If the key exists locally, the value can be returned directly.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years, 8 months
[JBoss JIRA] (ISPN-12124) OracleTableManager is overly conservative with object name max length
by Paul Ferraro (Jira)
[ https://issues.redhat.com/browse/ISPN-12124?page=com.atlassian.jira.plugi... ]
Paul Ferraro updated ISPN-12124:
--------------------------------
Priority: Critical (was: Major)
> OracleTableManager is overly conservative with object name max length
> ---------------------------------------------------------------------
>
> Key: ISPN-12124
> URL: https://issues.redhat.com/browse/ISPN-12124
> Project: Infinispan
> Issue Type: Enhancement
> Components: Loaders and Stores
> Affects Versions: 11.0.1.Final
> Reporter: Paul Ferraro
> Priority: Critical
>
> The OracleTableManager limits the size of generated object names to 30 characters. While 30 characters was the max object name length in 12.1 and earlier, since 12.2, this limit was increased to 128 characters.
> 30 characters is prohibitively restrictive when it come to objects like the index name, the names for which are auto-generated based on the cache name, table name, and, in the case of the segment column, a long hard coded prefix (e.g. "segment_index") uses up nearly half of the available characters.
> Rather than fixed lengths per database type, Infinispan should leverage the DatabaseMetaData to determine the max size for a given database object, e.g. getMaxTableNameLength(), getMaxColumnNameLength(), etc.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
5 years, 8 months