You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

To be Reviewed By:

Authors: Mario Ivanac

Status: Draft | Discussion | Active | Dropped | Superseded

Superseded by: N/A

Related: N/A

Problem

For example, we have configured replicated region with 3 or more servers, and client is configured with read timeout set to value same or smaller than member timeout.

In case while client is putting data in region,  one of replicated servers is shutdown, it is observed that we will have data inconsistency.

As a result, you will see that  part of data is written in server connected with client, but in remaining replicated servers it is missing.

After analysis, it is observed, that as data is put in region, sequence Id only of last event is stored.

Due to that, if server is restarted, replicated data, while server is down, will be ignored, because sequence Id of replicated data is smaller, then last written.

Anti-Goals

Solution

Add logic, for storing of last N (configurable value) key - sequence Id pairs, instead of only last sequence Id.

User will configure size of last stored "key - sequence Id" Map.

Default value is 0, feature disabled

Value greater than 0, feature activated (calculate according to formula =  3 x member-timeout / read-timeout)

Changes and Additions to Public Interfaces

If you are proposing to add or modify public interfaces, those changes should be outlined here in detail.

Performance Impact

Do you anticipate the proposed changes to impact performance in any way? Are there plans to measure and/or mitigate the impact?

Backwards Compatibility and Upgrade Path

Will the regular rolling upgrade process work with these changes?

How do the proposed changes impact backwards-compatibility? Are message or file formats changing?

Is there a need for a deprecation process to provide an upgrade path to users who will need to adjust their applications?

Prior Art

What would be the alternatives to the proposed solution? What would happen if we don’t solve the problem? Why should this proposal be preferred?

FAQ

Answers to questions you’ve commonly been asked after requesting comments for this proposal.

Errata

What are minor adjustments that had to be made to the proposal since it was approved?

  • No labels