{"id":2562,"date":"2025-06-05T00:15:52","date_gmt":"2025-06-05T00:15:52","guid":{"rendered":"https:\/\/diznr.com\/?p=2562"},"modified":"2025-06-05T00:15:52","modified_gmt":"2025-06-05T00:15:52","slug":"sequential-consistency-model-and-linearizability-model-in-system-distributed","status":"publish","type":"post","link":"https:\/\/www.reilsolar.com\/pdf\/sequential-consistency-model-and-linearizability-model-in-system-distributed\/","title":{"rendered":"SEQUENTIAL CONSISTENCY MODEL AND LINEARIZABILITY MODEL IN DISTRIBUTED SYSTEM"},"content":{"rendered":"<p>Sequential Consistency Model and Linearizability Model in Distributed System(Base Models).Sequential Consistency Model In Distributed System Consistency Models In Distributed Systems Causal Consistency In Distributed System Consistency Models In Distributed Systems Video Lecture. Implementing Sequential Consistency Model Linearizability Vs. Sequential Consistency Examples Distributed Systems Replication And Consistency Distributed Systems.<\/p>\n<p>[fvplayer id=&#8221;71&#8243;]<\/p>\n<h3 data-start=\"0\" data-end=\"73\"><strong data-start=\"2\" data-end=\"71\">Sequential Consistency and Linearizability in Distributed Systems<\/strong><\/h3>\n<p data-start=\"75\" data-end=\"427\">In <strong data-start=\"78\" data-end=\"101\">distributed systems<\/strong>, maintaining <strong data-start=\"115\" data-end=\"130\">consistency<\/strong> is a crucial challenge. Two important consistency models used to define how operations should be executed and observed are <strong data-start=\"254\" data-end=\"280\">Sequential Consistency<\/strong> and <strong data-start=\"285\" data-end=\"304\">Linearizability<\/strong>. These models help in designing reliable and predictable systems, ensuring correct execution of <strong data-start=\"401\" data-end=\"426\">concurrent operations<\/strong>.<\/p>\n<h3 data-start=\"434\" data-end=\"477\"><strong data-start=\"437\" data-end=\"475\">\u00a0What is Sequential Consistency?<\/strong><\/h3>\n<h3 data-start=\"479\" data-end=\"502\"><strong data-start=\"483\" data-end=\"500\">\u00a0Definition<\/strong><\/h3>\n<p data-start=\"503\" data-end=\"761\"><strong data-start=\"506\" data-end=\"532\">Sequential Consistency<\/strong> ensures that the result of execution is <strong data-start=\"573\" data-end=\"582\">as if<\/strong> all operations were executed <strong data-start=\"612\" data-end=\"640\">in some sequential order<\/strong>, and each process sees operations <strong data-start=\"675\" data-end=\"696\">in the same order<\/strong>. However, it does <strong data-start=\"715\" data-end=\"722\">not<\/strong> guarantee real-time execution order.<\/p>\n<p data-start=\"763\" data-end=\"909\"><strong data-start=\"766\" data-end=\"783\">Key Property:<\/strong><br data-start=\"783\" data-end=\"786\" \/><em data-start=\"789\" data-end=\"907\">Operations from different processes may be interleaved, but they must respect the program order within each process.<\/em><\/p>\n<h3 data-start=\"911\" data-end=\"957\"><strong data-start=\"915\" data-end=\"955\">\u00a0Example of Sequential Consistency<\/strong><\/h3>\n<p data-start=\"958\" data-end=\"1052\">Consider two processes (<code data-start=\"982\" data-end=\"986\">P1<\/code> and <code data-start=\"991\" data-end=\"995\">P2<\/code>) updating a shared variable <code data-start=\"1024\" data-end=\"1027\">X<\/code>, initially set to <code data-start=\"1046\" data-end=\"1049\">0<\/code>.<\/p>\n<h4 data-start=\"1054\" data-end=\"1074\"><strong data-start=\"1059\" data-end=\"1074\">Operations:<\/strong><\/h4>\n<p data-start=\"1075\" data-end=\"1172\"><code data-start=\"1079\" data-end=\"1090\">P1: X = 1<\/code><br data-start=\"1090\" data-end=\"1093\" \/><code data-start=\"1097\" data-end=\"1111\">P2: print(X)<\/code> (can see <code data-start=\"1121\" data-end=\"1128\">X = 0<\/code> or <code data-start=\"1132\" data-end=\"1139\">X = 1<\/code>, depending on execution order)<\/p>\n<p data-start=\"1174\" data-end=\"1324\"><strong data-start=\"1174\" data-end=\"1228\">Possible Sequentially Consistent Execution Orders:<\/strong><br data-start=\"1228\" data-end=\"1231\" \/><strong data-start=\"1233\" data-end=\"1245\">Order 1:<\/strong> <code data-start=\"1246\" data-end=\"1255\">P1 \u2192 P2<\/code> \u2192 (P2 sees <code data-start=\"1267\" data-end=\"1274\">X = 1<\/code>)<br data-start=\"1275\" data-end=\"1278\" \/><strong data-start=\"1280\" data-end=\"1292\">Order 2:<\/strong> <code data-start=\"1293\" data-end=\"1302\">P2 \u2192 P1<\/code> \u2192 (P2 sees <code data-start=\"1314\" data-end=\"1321\">X = 0<\/code>)<\/p>\n<p data-start=\"1326\" data-end=\"1438\">Even though execution <strong data-start=\"1348\" data-end=\"1381\">may not match real-time order<\/strong>, all processes see changes in a <strong data-start=\"1414\" data-end=\"1437\">consistent sequence<\/strong>.<\/p>\n<h3 data-start=\"1445\" data-end=\"1481\"><strong data-start=\"1448\" data-end=\"1479\">\u00a0What is Linearizability?<\/strong><\/h3>\n<h3 data-start=\"1483\" data-end=\"1506\"><strong data-start=\"1487\" data-end=\"1504\">\u00a0Definition<\/strong><\/h3>\n<p data-start=\"1507\" data-end=\"1741\"><strong data-start=\"1510\" data-end=\"1550\">Linearizability (Atomic Consistency)<\/strong> is a <strong data-start=\"1556\" data-end=\"1586\">stronger consistency model<\/strong> than <strong data-start=\"1592\" data-end=\"1618\">Sequential Consistency<\/strong>. It ensures that each operation appears to take effect <strong data-start=\"1674\" data-end=\"1738\">instantaneously at some point between its start and end time<\/strong>.<\/p>\n<p data-start=\"1743\" data-end=\"1926\"><strong data-start=\"1746\" data-end=\"1763\">Key Property:<\/strong><br data-start=\"1763\" data-end=\"1766\" \/><em data-start=\"1769\" data-end=\"1830\">All operations must appear to execute in a real-time order.<\/em> If operation <code data-start=\"1844\" data-end=\"1847\">A<\/code> completes before operation <code data-start=\"1875\" data-end=\"1878\">B<\/code> starts, then <code data-start=\"1892\" data-end=\"1895\">A<\/code> must be observed before <code data-start=\"1920\" data-end=\"1923\">B<\/code>.<\/p>\n<h3 data-start=\"1928\" data-end=\"1967\"><strong data-start=\"1932\" data-end=\"1965\">\u00a0Example of Linearizability<\/strong><\/h3>\n<p data-start=\"1968\" data-end=\"2037\">Consider the same shared variable <code data-start=\"2002\" data-end=\"2005\">X<\/code> with processes <code data-start=\"2021\" data-end=\"2025\">P1<\/code> and <code data-start=\"2030\" data-end=\"2034\">P2<\/code>.<\/p>\n<h4 data-start=\"2039\" data-end=\"2059\"><strong data-start=\"2044\" data-end=\"2059\">Operations:<\/strong><\/h4>\n<p data-start=\"2060\" data-end=\"2098\"><code data-start=\"2064\" data-end=\"2075\">P1: X = 1<\/code><br data-start=\"2075\" data-end=\"2078\" \/><code data-start=\"2082\" data-end=\"2096\">P2: print(X)<\/code><\/p>\n<p data-start=\"2100\" data-end=\"2270\">If <code data-start=\"2103\" data-end=\"2107\">P2<\/code> starts reading after <code data-start=\"2129\" data-end=\"2133\">P1<\/code> has updated <code data-start=\"2146\" data-end=\"2149\">X<\/code>, <strong data-start=\"2151\" data-end=\"2174\">P2 must see <code data-start=\"2165\" data-end=\"2172\">X = 1<\/code><\/strong>.<br data-start=\"2175\" data-end=\"2178\" \/><strong data-start=\"2180\" data-end=\"2251\">Linearizability ensures that no process ever sees an outdated value<\/strong> after an update.<\/p>\n<h3 data-start=\"2277\" data-end=\"2350\"><strong data-start=\"2280\" data-end=\"2348\">\u00a0Difference Between Sequential Consistency and Linearizability<\/strong><\/h3>\n<div class=\"overflow-x-auto contain-inline-size\">\n<table data-start=\"2352\" data-end=\"2938\">\n<thead data-start=\"2352\" data-end=\"2414\">\n<tr data-start=\"2352\" data-end=\"2414\">\n<th data-start=\"2352\" data-end=\"2362\">Feature<\/th>\n<th data-start=\"2362\" data-end=\"2391\"><strong data-start=\"2364\" data-end=\"2390\">Sequential Consistency<\/strong><\/th>\n<th data-start=\"2391\" data-end=\"2414\"><strong data-start=\"2393\" data-end=\"2412\">Linearizability<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody data-start=\"2477\" data-end=\"2938\">\n<tr data-start=\"2477\" data-end=\"2619\">\n<td><strong data-start=\"2479\" data-end=\"2491\">Ordering<\/strong><\/td>\n<td>Preserves execution order but allows reordering across processes<\/td>\n<td>Preserves both execution order and real-time constraints<\/td>\n<\/tr>\n<tr data-start=\"2620\" data-end=\"2658\">\n<td><strong data-start=\"2622\" data-end=\"2645\">Real-Time Guarantee<\/strong><\/td>\n<td>No<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr data-start=\"2659\" data-end=\"2821\">\n<td><strong data-start=\"2661\" data-end=\"2673\">Use Case<\/strong><\/td>\n<td>Useful in systems where exact real-time order is not required<\/td>\n<td>Required in financial transactions, database consistency, and real-time systems<\/td>\n<\/tr>\n<tr data-start=\"2822\" data-end=\"2938\">\n<td><strong data-start=\"2824\" data-end=\"2839\">Performance<\/strong><\/td>\n<td>Better performance as it allows reordering<\/td>\n<td>Expensive as it requires strict order maintenance<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h3 data-start=\"2945\" data-end=\"2977\"><strong data-start=\"2948\" data-end=\"2975\">\u00a0Real-World Use Cases<\/strong><\/h3>\n<p data-start=\"2979\" data-end=\"3217\"><strong data-start=\"2981\" data-end=\"3008\">Sequential Consistency:<\/strong><br data-start=\"3008\" data-end=\"3011\" \/><strong data-start=\"3013\" data-end=\"3056\">Cloud Storage (Amazon S3, Google Drive)<\/strong> \u2013 Ensures eventual order but does not guarantee real-time updates.<br data-start=\"3123\" data-end=\"3126\" \/><strong data-start=\"3128\" data-end=\"3151\">Distributed Caching<\/strong> \u2013 Helps in optimizing performance by allowing relaxed ordering.<\/p>\n<p data-start=\"3219\" data-end=\"3443\"><strong data-start=\"3221\" data-end=\"3241\">Linearizability:<\/strong><br data-start=\"3241\" data-end=\"3244\" \/><strong data-start=\"3246\" data-end=\"3292\">Bank Transactions (Atomicity in Databases)<\/strong> \u2013 Ensures that withdrawals and deposits reflect in real-time.<br data-start=\"3354\" data-end=\"3357\" \/><strong data-start=\"3359\" data-end=\"3392\">Leader Election (Raft, Paxos)<\/strong> \u2013 Ensures strict order in distributed consensus.<\/p>\n<h3 data-start=\"3450\" data-end=\"3469\"><strong data-start=\"3453\" data-end=\"3467\">\u00a0Summary<\/strong><\/h3>\n<p data-start=\"3471\" data-end=\"3840\"><strong data-start=\"3474\" data-end=\"3500\">Sequential Consistency<\/strong> ensures operations appear in some <strong data-start=\"3535\" data-end=\"3554\">global sequence<\/strong>, but real-time execution may be violated.<br data-start=\"3596\" data-end=\"3599\" \/><strong data-start=\"3602\" data-end=\"3621\">Linearizability<\/strong> is a <strong data-start=\"3627\" data-end=\"3639\">stronger<\/strong> guarantee where operations must appear <strong data-start=\"3679\" data-end=\"3724\">instantaneous and respect real-time order<\/strong>.<br data-start=\"3725\" data-end=\"3728\" \/><strong data-start=\"3731\" data-end=\"3763\">Linearizability is expensive<\/strong> but necessary for critical systems like banking and distributed databases.<\/p>\n<p data-start=\"3842\" data-end=\"3941\" data-is-last-node=\"\" data-is-only-node=\"\">\u00a0<strong data-start=\"3845\" data-end=\"3938\">Which consistency model do you think is more suitable for real-world distributed systems?<\/strong><\/p>\n<p data-start=\"0\" data-end=\"273\">Here\u2019s a detailed and clear comparison of the <strong data-start=\"46\" data-end=\"78\">Sequential Consistency Model<\/strong> and the <strong data-start=\"87\" data-end=\"112\">Linearizability Model<\/strong> in distributed systems \u2014 two important <strong data-start=\"152\" data-end=\"174\">consistency models<\/strong> used to reason about the behavior of concurrent systems like databases, caches, and shared memory.<\/p>\n<hr data-start=\"275\" data-end=\"278\" \/>\n<h1 data-start=\"280\" data-end=\"330\">\ud83e\udde0 <strong data-start=\"285\" data-end=\"330\">Consistency Models in Distributed Systems<\/strong><\/h1>\n<p data-start=\"332\" data-end=\"492\">In distributed systems, <strong data-start=\"356\" data-end=\"378\">consistency models<\/strong> define the rules for the <strong data-start=\"404\" data-end=\"456\">visibility and ordering of read\/write operations<\/strong> across multiple nodes or processes.<\/p>\n<p data-start=\"494\" data-end=\"532\">The two commonly discussed models are:<\/p>\n<hr data-start=\"534\" data-end=\"537\" \/>\n<h2 data-start=\"539\" data-end=\"580\">\ud83d\udd39 <strong data-start=\"545\" data-end=\"580\">1. Sequential Consistency Model<\/strong><\/h2>\n<h3 data-start=\"582\" data-end=\"600\">\ud83d\udcd8 Definition:<\/h3>\n<p data-start=\"601\" data-end=\"690\">A system is <strong data-start=\"613\" data-end=\"640\">sequentially consistent<\/strong> if <strong data-start=\"644\" data-end=\"689\">the result of execution is the same as if<\/strong>:<\/p>\n<ul data-start=\"691\" data-end=\"820\">\n<li data-start=\"691\" data-end=\"750\">\n<p data-start=\"693\" data-end=\"750\"><strong data-start=\"693\" data-end=\"750\">All operations were executed in some sequential order<\/strong><\/p>\n<\/li>\n<li data-start=\"751\" data-end=\"820\">\n<p data-start=\"753\" data-end=\"820\">The <strong data-start=\"757\" data-end=\"820\">order of operations of each individual process is preserved<\/strong><\/p>\n<\/li>\n<\/ul>\n<h3 data-start=\"822\" data-end=\"837\">\ud83e\uddea Example:<\/h3>\n<p data-start=\"839\" data-end=\"892\">Let\u2019s say two processes perform the following writes:<\/p>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary\">\n<div class=\"flex items-center text-token-text-secondary px-4 py-2 text-xs font-sans justify-between h-9 bg-token-sidebar-surface-primary dark:bg-token-main-surface-secondary select-none rounded-t-[5px]\">css<\/div>\n<div class=\"sticky top-9\">\n<div class=\"absolute end-0 bottom-0 flex h-9 items-center pe-2\">\n<div class=\"bg-token-sidebar-surface-primary text-token-text-secondary dark:bg-token-main-surface-secondary flex items-center rounded-sm px-2 font-sans text-xs\"><button class=\"flex gap-1 items-center select-none px-4 py-1\" aria-label=\"Copy\">Copy<\/button><span class=\"\" data-state=\"closed\"><button class=\"flex items-center gap-1 px-4 py-1 select-none\">Edit<\/button><\/span><\/div>\n<\/div>\n<\/div>\n<div class=\"overflow-y-auto p-4\" dir=\"ltr\"><code class=\"whitespace-pre!\">P1: <span class=\"hljs-built_in\">write<\/span>(x = <span class=\"hljs-number\">1<\/span>)<br \/>\nP2: <span class=\"hljs-built_in\">write<\/span>(x = <span class=\"hljs-number\">2<\/span>)<br \/>\n<\/code><\/div>\n<\/div>\n<p data-start=\"936\" data-end=\"999\">Then any sequential consistency-compliant system might produce:<\/p>\n<ul data-start=\"1000\" data-end=\"1145\">\n<li data-start=\"1000\" data-end=\"1020\">\n<p data-start=\"1002\" data-end=\"1020\">P1 sees: 1, then 2<\/p>\n<\/li>\n<li data-start=\"1021\" data-end=\"1050\">\n<p data-start=\"1023\" data-end=\"1050\">P2 sees: 1, then 2<br data-start=\"1041\" data-end=\"1044\" \/><strong data-start=\"1044\" data-end=\"1050\">OR<\/strong><\/p>\n<\/li>\n<li data-start=\"1051\" data-end=\"1086\">\n<p data-start=\"1053\" data-end=\"1086\">Both see: 2, then 1<br data-start=\"1072\" data-end=\"1075\" \/><strong data-start=\"1075\" data-end=\"1086\">BUT NOT<\/strong><\/p>\n<\/li>\n<li data-start=\"1087\" data-end=\"1145\">\n<p data-start=\"1089\" data-end=\"1145\">P1 sees: 1, 2<br data-start=\"1102\" data-end=\"1105\" \/>P2 sees: 2, 1 (violates process order)<\/p>\n<\/li>\n<\/ul>\n<h3 data-start=\"1147\" data-end=\"1168\">\u2705 Key Properties:<\/h3>\n<ul data-start=\"1169\" data-end=\"1269\">\n<li data-start=\"1169\" data-end=\"1210\">\n<p data-start=\"1171\" data-end=\"1210\">Preserves <strong data-start=\"1181\" data-end=\"1198\">program order<\/strong> per process<\/p>\n<\/li>\n<li data-start=\"1211\" data-end=\"1269\">\n<p data-start=\"1213\" data-end=\"1269\">Doesn\u2019t require a <strong data-start=\"1231\" data-end=\"1250\">real-time order<\/strong> between operations<\/p>\n<\/li>\n<\/ul>\n<hr data-start=\"1271\" data-end=\"1274\" \/>\n<h2 data-start=\"1276\" data-end=\"1331\">\ud83d\udd38 <strong data-start=\"1282\" data-end=\"1331\">2. Linearizability (Atomic Consistency) Model<\/strong><\/h2>\n<h3 data-start=\"1333\" data-end=\"1351\">\ud83d\udcd8 Definition:<\/h3>\n<p data-start=\"1352\" data-end=\"1384\">A system is <strong data-start=\"1364\" data-end=\"1380\">linearizable<\/strong> if:<\/p>\n<ul data-start=\"1385\" data-end=\"1578\">\n<li data-start=\"1385\" data-end=\"1462\">\n<p data-start=\"1387\" data-end=\"1462\">The result is as if operations occurred <strong data-start=\"1427\" data-end=\"1462\">in some global sequential order<\/strong><\/p>\n<\/li>\n<li data-start=\"1463\" data-end=\"1578\">\n<p data-start=\"1465\" data-end=\"1578\"><strong data-start=\"1465\" data-end=\"1472\">AND<\/strong> this order respects <strong data-start=\"1493\" data-end=\"1506\">real-time<\/strong> \u2014 if <strong data-start=\"1512\" data-end=\"1553\">operation A completes before B starts<\/strong>, then A appears before B<\/p>\n<\/li>\n<\/ul>\n<h3 data-start=\"1580\" data-end=\"1595\">\ud83e\uddea Example:<\/h3>\n<p data-start=\"1597\" data-end=\"1601\">Let:<\/p>\n<ul data-start=\"1602\" data-end=\"1690\">\n<li data-start=\"1602\" data-end=\"1644\">\n<p data-start=\"1604\" data-end=\"1644\">P1: write(x = 1) finishes at time <strong data-start=\"1638\" data-end=\"1644\">T1<\/strong><\/p>\n<\/li>\n<li data-start=\"1645\" data-end=\"1690\">\n<p data-start=\"1647\" data-end=\"1690\">P2: write(x = 2) starts at time <strong data-start=\"1679\" data-end=\"1690\">T2 &gt; T1<\/strong><\/p>\n<\/li>\n<\/ul>\n<p data-start=\"1692\" data-end=\"1755\">Then all processes must <strong data-start=\"1716\" data-end=\"1729\">see x = 2<\/strong> after time T2, not x = 1.<\/p>\n<h3 data-start=\"1757\" data-end=\"1778\">\u2705 Key Properties:<\/h3>\n<ul data-start=\"1779\" data-end=\"1923\">\n<li data-start=\"1779\" data-end=\"1817\">\n<p data-start=\"1781\" data-end=\"1817\">Stronger than sequential consistency<\/p>\n<\/li>\n<li data-start=\"1818\" data-end=\"1885\">\n<p data-start=\"1820\" data-end=\"1885\">Matches <strong data-start=\"1828\" data-end=\"1852\">real-world intuition<\/strong> of time and operation visibility<\/p>\n<\/li>\n<li data-start=\"1886\" data-end=\"1923\">\n<p data-start=\"1888\" data-end=\"1923\">Guarantees <strong data-start=\"1899\" data-end=\"1923\">immediate visibility<\/strong><\/p>\n<\/li>\n<\/ul>\n<hr data-start=\"1925\" data-end=\"1928\" \/>\n<h2 data-start=\"1930\" data-end=\"1981\">\ud83d\udd01 <strong data-start=\"1936\" data-end=\"1981\">Sequential Consistency vs Linearizability<\/strong><\/h2>\n<div class=\"_tableContainer_16hzy_1\">\n<div class=\"_tableWrapper_16hzy_14 group flex w-fit flex-col-reverse\">\n<table class=\"w-fit min-w-(--thread-content-width)\" data-start=\"1983\" data-end=\"2503\">\n<thead data-start=\"1983\" data-end=\"2037\">\n<tr data-start=\"1983\" data-end=\"2037\">\n<th data-start=\"1983\" data-end=\"1993\" data-col-size=\"sm\">Feature<\/th>\n<th data-start=\"1993\" data-end=\"2018\" data-col-size=\"sm\">Sequential Consistency<\/th>\n<th data-start=\"2018\" data-end=\"2037\" data-col-size=\"md\">Linearizability<\/th>\n<\/tr>\n<\/thead>\n<tbody data-start=\"2093\" data-end=\"2503\">\n<tr data-start=\"2093\" data-end=\"2174\">\n<td data-start=\"2093\" data-end=\"2111\" data-col-size=\"sm\">Operation Order<\/td>\n<td data-col-size=\"sm\" data-start=\"2111\" data-end=\"2141\">Preserves per-process order<\/td>\n<td data-col-size=\"md\" data-start=\"2141\" data-end=\"2174\">Preserves <strong data-start=\"2153\" data-end=\"2172\">real-time order<\/strong><\/td>\n<\/tr>\n<tr data-start=\"2175\" data-end=\"2272\">\n<td data-start=\"2175\" data-end=\"2189\" data-col-size=\"sm\">Global View<\/td>\n<td data-col-size=\"sm\" data-start=\"2189\" data-end=\"2215\">Appears as one sequence<\/td>\n<td data-col-size=\"md\" data-start=\"2215\" data-end=\"2272\">Appears as one sequence <strong data-start=\"2241\" data-end=\"2270\">with real-time constraint<\/strong><\/td>\n<\/tr>\n<tr data-start=\"2273\" data-end=\"2326\">\n<td data-start=\"2273\" data-end=\"2284\" data-col-size=\"sm\">Strength<\/td>\n<td data-col-size=\"sm\" data-start=\"2284\" data-end=\"2314\">Weaker than linearizability<\/td>\n<td data-col-size=\"md\" data-start=\"2314\" data-end=\"2326\">Stronger<\/td>\n<\/tr>\n<tr data-start=\"2327\" data-end=\"2407\">\n<td data-start=\"2327\" data-end=\"2341\" data-col-size=\"sm\">Performance<\/td>\n<td data-col-size=\"sm\" data-start=\"2341\" data-end=\"2357\">More scalable<\/td>\n<td data-col-size=\"md\" data-start=\"2357\" data-end=\"2407\">Less scalable (requires stricter coordination)<\/td>\n<\/tr>\n<tr data-start=\"2408\" data-end=\"2503\">\n<td data-start=\"2408\" data-end=\"2422\" data-col-size=\"sm\">Example Use<\/td>\n<td data-col-size=\"sm\" data-start=\"2422\" data-end=\"2460\">CPU memory models, shared variables<\/td>\n<td data-col-size=\"md\" data-start=\"2460\" data-end=\"2503\">Distributed databases, locks, registers<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"sticky end-(--thread-content-margin) h-0 self-end select-none\">\n<div class=\"absolute end-0 flex items-end\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<hr data-start=\"2505\" data-end=\"2508\" \/>\n<h2 data-start=\"2510\" data-end=\"2527\">\ud83e\udde0 <strong data-start=\"2516\" data-end=\"2527\">Analogy<\/strong><\/h2>\n<ul data-start=\"2529\" data-end=\"2733\">\n<li data-start=\"2529\" data-end=\"2625\">\n<p data-start=\"2531\" data-end=\"2625\">\ud83e\udde9 <strong data-start=\"2534\" data-end=\"2560\">Sequential Consistency<\/strong>: Everyone agrees on <strong data-start=\"2581\" data-end=\"2598\">what happened<\/strong>, but <strong data-start=\"2604\" data-end=\"2624\">not exactly when<\/strong>.<\/p>\n<\/li>\n<li data-start=\"2626\" data-end=\"2733\">\n<p data-start=\"2628\" data-end=\"2733\">\u23f1\ufe0f <strong data-start=\"2631\" data-end=\"2650\">Linearizability<\/strong>: Everyone agrees on <strong data-start=\"2671\" data-end=\"2700\">what and when it happened<\/strong>, respecting <strong data-start=\"2713\" data-end=\"2732\">real-world time<\/strong>.<\/p>\n<\/li>\n<\/ul>\n<hr data-start=\"2735\" data-end=\"2738\" \/>\n<h2 data-start=\"2740\" data-end=\"2756\">\ud83c\udfc1 Conclusion<\/h2>\n<ul data-start=\"2758\" data-end=\"2952\">\n<li data-start=\"2758\" data-end=\"2840\">\n<p data-start=\"2760\" data-end=\"2840\"><strong data-start=\"2760\" data-end=\"2786\">Sequential Consistency<\/strong>: Suitable when timing doesn\u2019t matter, but order does.<\/p>\n<\/li>\n<li data-start=\"2841\" data-end=\"2952\">\n<p data-start=\"2843\" data-end=\"2952\"><strong data-start=\"2843\" data-end=\"2862\">Linearizability<\/strong>: Used when strong guarantees are needed (e.g., banking systems, locks, atomic registers).<\/p>\n<\/li>\n<\/ul>\n<hr data-start=\"2954\" data-end=\"2957\" \/>\n<p data-start=\"2959\" data-end=\"2982\">Would you like this as:<\/p>\n<ul data-start=\"2983\" data-end=\"3087\">\n<li data-start=\"2983\" data-end=\"3003\">\n<p data-start=\"2985\" data-end=\"3003\">\ud83d\udcca A presentation?<\/p>\n<\/li>\n<li data-start=\"3004\" data-end=\"3034\">\n<p data-start=\"3006\" data-end=\"3034\">\ud83d\udcdd Lecture notes or handout?<\/p>\n<\/li>\n<li data-start=\"3035\" data-end=\"3087\">\n<p data-start=\"3037\" data-end=\"3087\">\ud83e\uddea Example code to simulate consistency in Python?<\/p>\n<\/li>\n<\/ul>\n<p data-start=\"3089\" data-end=\"3101\" data-is-last-node=\"\" data-is-only-node=\"\">Let me know!<\/p>\n<h3 data-start=\"3089\" data-end=\"3101\"><a href=\"https:\/\/cse.buffalo.edu\/~stevko\/courses\/cse486\/spring13\/lectures\/26-consistency2.pdf\" target=\"_blank\" rel=\"noopener\">SEQUENTIAL CONSISTENCY MODEL AND LINEARIZABILITY MODEL IN DISTRIBUTED SYSTEM<\/a><\/h3>\n<h3 class=\"LC20lb MBeuO DKV0Md\" style=\"text-align: left\"><a href=\"https:\/\/www.cs.columbia.edu\/~du\/ds\/assets\/lectures\/lecture12.pdf\" target=\"_blank\" rel=\"noopener\">Sequential, Causal, and Eventual Consistency<\/a><\/h3>\n","protected":false},"excerpt":{"rendered":"<p>Sequential Consistency Model and Linearizability Model in Distributed System(Base Models).Sequential Consistency Model In Distributed System Consistency Models In Distributed Systems Causal Consistency In Distributed System Consistency Models In Distributed Systems Video Lecture. Implementing Sequential Consistency Model Linearizability Vs. Sequential Consistency Examples Distributed Systems Replication And Consistency Distributed Systems.<\/p>\n","protected":false},"author":64,"featured_media":2563,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[84],"tags":[1297,1298,1299,1300,1301,1302,1303,1304,1305],"class_list":["post-2562","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-distributed-computing","tag-causal-consistency-in-distributed-system","tag-consistency-examples","tag-consistency-models-in-distributed-systems","tag-consistency-models-in-distributed-systems-video-lecture","tag-distributed-systems","tag-distributed-systems-replication-and-consistency","tag-implementing-sequential-consistency-model","tag-linearizability-vs-sequential-consistency","tag-sequential-consistency-model-in-distributed-system"],"_links":{"self":[{"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/posts\/2562","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/users\/64"}],"replies":[{"embeddable":true,"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/comments?post=2562"}],"version-history":[{"count":0,"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/posts\/2562\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/media\/2563"}],"wp:attachment":[{"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/media?parent=2562"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/categories?post=2562"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.reilsolar.com\/pdf\/wp-json\/wp\/v2\/tags?post=2562"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}