Minimera samordning, eller blockera kommunikation mellan samtidiga operationer, är nyckeln till att maximera skalbarhet, tillgänglighet och hög prestanda i databassystem. Ohämmad samordningsfri körning kan dock äventyra ansökans korrekthet eller konsekvens. När krävs samordning för korrekthet? Den klassiska användningen av serialiserbara transaktioner är tillräcklig för att upprätthålla korrektheten men är inte nödvändig för alla tillämpningar, vilket offrar potentiella skalbarhet. I detta dokument utvecklar vi en formell ram, invariant confluence, som avgör om en ansökan kräver samordning för korrekt utförande. Genom att arbeta på applikationsnivå invarianter över databastillstånd (t.ex. integritetsbegränsningar), ger invariant konfluence analys ett nödvändigt och tillräckligt villkor för säker, samordningsfri utförande. När programmerare anger sin ansökan invarianter, tillåter denna analys databaser att samordna endast när anomalier som kan kränker invarianter är möjliga. Vi analyserar den föränderliga sammanflödet av gemensamma invarianter och operationer från verkliga databassystem (dvs. integritetsbegränsningar) och tillämpningar och visar att många är invariant sammanflätade och därför uppnåeliga utan samordning. Vi tillämpar dessa resultat på en proof-of-concept samordning-undvikande databas prototyp och visar betydande prestandavinster jämfört med serielltizable utförande, särskilt en 25-faldig förbättring jämfört med tidigare TPC-C New-Order prestanda på en 200 server kluster.
Bailis m.fl. föreslå ett tillämpningsberoende korrekthetskriterium I-konfluens, som avgör om ett samordningsfritt genomförande av transaktioner kommer att bevara tillämpningen invarianter REF.
Coordination Avoidance in Database Systems
{'venue': 'PVLDB', 'journal': 'PVLDB', 'mag_field_of_study': ['Computer Science']}