import json, math, itertools KIND="Constructed analytical model; not a measured benchmark" def fig(i,title,xlabel,ylabel,series,caption,assumptions): return dict(id=i,title=title,x_label=xlabel,y_label=ylabel,series=series,caption=caption,assumptions=assumptions,kind=KIND) def check(name,passed,cases,detail): assert passed, name return dict(name=name,passed=bool(passed),cases=cases,detail=detail) def subsets(items): for bits in itertools.product((0,1),repeat=len(items)): yield frozenset(x for x,b in zip(items,bits) if b) def allowed(items,edges): return [s for s in subsets(items) if all(b not in s or a in s for a,b in edges)] def replay(s): # An atomic updated page can survive before acknowledgment. No undo image # exists in this toy model, so do not manufacture rollback of such a page. return (1,1) if 'P' in s or ('C' in s and 'L' in s) else (0,0) def run(): items=('D','N','A'); weak=allowed(items,[]); ordered=allowed(items,[('D','N'),('N','A')]); bad=lambda s:'A' in s and not {'D','N'}<=s redo=allowed(('L','C','P','A'),[('L','C'),('C','A'),('L','P')]) batch=[1,2,4,8,16,32,64]; flush=4; per=.1 stages=[0,1,2]; sets=[weak,allowed(items,[('D','N')]),ordered] tests=[check('Unacknowledged page survival needs no invented undo',replay(frozenset({'L','P'}))==(1,1) and replay(frozenset({'L'}))==(0,0),2,'The toy model permits an in-flight atomic effect to survive; it does not model full abort semantics.'),check('Durable acknowledgment requires both data and name',sum(map(bad,weak))==3 and not any(map(bad,ordered)),12,'Enumerates 8 unconstrained and 4 chain-respecting states; counts are possibilities, not probabilities.'),check('Independent topological-prefix construction',set(ordered)=={frozenset(items[:k]) for k in range(4)},4,'Order ideals match prefixes of a total chain.'),check('Redo recovers each acknowledged transaction',all(replay(s)==(1,1) for s in redo if 'A' in s),sum('A' in s for s in redo),'Model log L contains full redo payload; page P is optional.'),check('Logical atomicity without durability counterexample',replay(frozenset())==(0,0) and not {'D','N'}<=frozenset({'A'}),1,'Old consistent state can still violate an early acknowledgment.')] return dict(slug='crash-durability-contracts',checks=tests,figures=[fig('crash-states','Admissible crash states as dependency edges are added','Ordering edges (D before N; N before A)','Number of states',[dict(name='All admissible states',x=stages,y=[len(s) for s in sets]),dict(name='Acknowledged but unrecoverable',x=stages,y=[sum(map(bad,s)) for s in sets])],'D=data durable, N=name durable, A=acknowledgment recorded; equal counting is not a failure probability.',['Atomic component persistence','All dependency-respecting subsets allowed','No media corruption']),fig('group-commit','Amortizing one assumed flush across a batch','Transactions per group','Milliseconds per transaction',[dict(name='Amortized service',x=batch,y=[per+flush/g for g in batch]),dict(name='Assumed payload service floor',x=batch,y=[per]*len(batch))],'Service model excludes time waiting to form a batch; never interpret it as response latency.',['Flush cost 4 ms','Payload service 0.1 ms per transaction','Batch fits one flush'])],result_summary=dict(unordered_states=len(weak),unordered_bad=sum(map(bad,weak)),ordered_states=len(ordered),ordered_bad=sum(map(bad,ordered)),redo_states=len(redo),service_g1_ms=per+flush,service_g16_ms=per+flush/16)) if __name__=="__main__": print(json.dumps(run(),indent=2))