You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by rc...@apache.org on 2020/10/12 07:40:16 UTC

[james-project] 09/12: JAMES-3406 About denormalization consistency

This is an automated email from the ASF dual-hosted git repository.

rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 1db5dcd890cd62ce70d33a1ba91b09ff34527649
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Wed Oct 7 09:16:07 2020 +0700

    JAMES-3406 About denormalization consistency
---
 .../distributed/architecture/consistency-model.adoc    | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/docs/modules/servers/pages/distributed/architecture/consistency-model.adoc b/docs/modules/servers/pages/distributed/architecture/consistency-model.adoc
index 2df93ac..c4ed785 100644
--- a/docs/modules/servers/pages/distributed/architecture/consistency-model.adoc
+++ b/docs/modules/servers/pages/distributed/architecture/consistency-model.adoc
@@ -61,15 +61,23 @@ TODO
 
 == Denormalization
 
-TODO
+In Cassandra, data needs to be structured to match the read patterns. To support several conflicting
+read patterns, the data needs to be duplicated into different structures. This process is called
+denormalization.
 
-=== Solve Inconsistency tasks
+While data can be consistent at the table level, some inconsistencies can sneak in at the applicative
+level across denormalization tables.
 
-TODO
+We write to a "table of truth" first, then duplicate the data to denormalization tables.
 
-=== Read repairs
+The Distributed server offers several mechanism to mitigate these inconsistencies:
 
-TODO
+ - Writes to denormalization tables are retried.
+ - Some xref:distributed/operate/guide.adoc#_solving_cassandra_inconsistencies[SolveInconsistencies tasks] are exposed and are able to heal a given denormalization table.
+They reset the "deduplication tables" content to the "table of truth" content.
+ - link:https://github.com/apache/james-project/blob/master/src/adr/0042-applicative-read-repairs.md[Read repairs],
+when implemented for a given denormalization, enables auto-healing. When an inconsistency is detected, They reset the
+"deduplication tables" entry to the "table of truth" entry.
 
 == Consistency across data stores
 


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org