[JBoss JIRA] (ISPN-7586) Rolling Upgrade: use of Remote Store in mode read-only causes data inconsistencies
by Gustavo Fernandes (JIRA)
[ https://issues.jboss.org/browse/ISPN-7586?page=com.atlassian.jira.plugin.... ]
Gustavo Fernandes updated ISPN-7586:
------------------------------------
Description:
We recommend to do rolling upgrades with the target cluster with a remote-store pointing to the source cluster, in mode ready-only. Clients are switched to point to the target cluster.
This cause situations like this in the client:
{code:java}
client.put("K","value")
// will get "V" back
client.get("K")
// Deletes will not propagate to the source cluster,
// the RemoteStore is in 'read-only' mode.
client.remove("K")
// Returns "V". Although deleted, value will be retrieved
// from the remote store
cache.get("K")
{code}
This can break existing applications that expect a consistent access to data during a Rolling Upgrade process. Clearly the remote store should not be in non-read only mode for clients, but at the same time, as the Rolling Upgrade does a put in the target cache reading data from the source cache, it should not trigger a write back to the source cluster.
was:
We recommend to do rolling upgrades with the target cluster with a remote-store pointing to the source cluster, in mode ready-only. Clients are switched to point to the target cluster.
This cause situations like this in the client:
{code:java}
client.put("K","value")
// will get "V" back
client.get("K")
// Deletes will not propagate to the source cluster,
// the RemoteStore is in 'read-only' mode.
client.remove("K")
// Returns "V". Although deleted, value will be retrieved
// from the remote store
cache.get("K")
{code}
This can break existing applications that expect a consistent access to data during a Rolling Upgrade process. Clearly the remote store should not be in non-read only mode for clients, but at the same time, as the Rolling Upgrade does a put in the target cache from the source cache, it should not trigger a write back to the source cluster.
> Rolling Upgrade: use of Remote Store in mode read-only causes data inconsistencies
> ----------------------------------------------------------------------------------
>
> Key: ISPN-7586
> URL: https://issues.jboss.org/browse/ISPN-7586
> Project: Infinispan
> Issue Type: Bug
> Reporter: Gustavo Fernandes
>
> We recommend to do rolling upgrades with the target cluster with a remote-store pointing to the source cluster, in mode ready-only. Clients are switched to point to the target cluster.
> This cause situations like this in the client:
> {code:java}
> client.put("K","value")
> // will get "V" back
> client.get("K")
> // Deletes will not propagate to the source cluster,
> // the RemoteStore is in 'read-only' mode.
> client.remove("K")
> // Returns "V". Although deleted, value will be retrieved
> // from the remote store
> cache.get("K")
>
> {code}
> This can break existing applications that expect a consistent access to data during a Rolling Upgrade process. Clearly the remote store should not be in non-read only mode for clients, but at the same time, as the Rolling Upgrade does a put in the target cache reading data from the source cache, it should not trigger a write back to the source cluster.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 9 months
[JBoss JIRA] (ISPN-7586) Rolling Upgrade: use of Remote Store in mode read-only causes data inconsistencies
by Gustavo Fernandes (JIRA)
[ https://issues.jboss.org/browse/ISPN-7586?page=com.atlassian.jira.plugin.... ]
Gustavo Fernandes updated ISPN-7586:
------------------------------------
Description:
We recommend to do rolling upgrades with the target cluster with a remote-store pointing to the source cluster, in mode ready-only. Clients are switched to point to the target cluster.
This cause situations like this in the client:
{code:java}
client.put("K","value")
// will get "V" back
client.get("K")
// Deletes will not propagate to the source cluster,
// the RemoteStore is in 'read-only' mode.
client.remove("K")
// Returns "V". Although deleted, value will be retrieved
// from the remote store
cache.get("K")
{code}
This can break existing applications that expect a consistent access to data during a Rolling Upgrade process. Clearly the remote store should not be in non-read only mode for clients, but at the same time, as the Rolling Upgrade does a put in the target cache from the source cache, it should not trigger a write back to the source cluster.
was:
We recommend to run the target cluster with a remote-store in mode ready-only during Rolling Upgrades, and point clients from the old cluster to the new one.
Clients can see the following situation:
{code:java}
client.put("K","value")
// will get "V" back
client.get("K")
// Deletes will not propagate to the source cluster,
// the RemoteStore is in 'read-only' mode.
client.remove("K")
// Returns "V". Although deleted, value will be retrieved
// from the remote store
cache.get("K")
{code}
This can break existing applications that expect a transparent and consistent access to data during a Rolling Upgrade process. Clearly the remote store should not be in non-read only mode for clients iteration but at the same time it should not allow the Rolling Upgrade itself to cause writes back to the remote store.
> Rolling Upgrade: use of Remote Store in mode read-only causes data inconsistencies
> ----------------------------------------------------------------------------------
>
> Key: ISPN-7586
> URL: https://issues.jboss.org/browse/ISPN-7586
> Project: Infinispan
> Issue Type: Bug
> Reporter: Gustavo Fernandes
>
> We recommend to do rolling upgrades with the target cluster with a remote-store pointing to the source cluster, in mode ready-only. Clients are switched to point to the target cluster.
> This cause situations like this in the client:
> {code:java}
> client.put("K","value")
> // will get "V" back
> client.get("K")
> // Deletes will not propagate to the source cluster,
> // the RemoteStore is in 'read-only' mode.
> client.remove("K")
> // Returns "V". Although deleted, value will be retrieved
> // from the remote store
> cache.get("K")
>
> {code}
> This can break existing applications that expect a consistent access to data during a Rolling Upgrade process. Clearly the remote store should not be in non-read only mode for clients, but at the same time, as the Rolling Upgrade does a put in the target cache from the source cache, it should not trigger a write back to the source cluster.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 9 months