Storskaliga distribuerade system förlitar sig ofta på replikerade databaser som gör det möjligt för en programmerare att begära olika datakonsistensgarantier för olika verksamheter och därmed kontrollera deras prestanda. Att använda sådana databaser är långt ifrån trivialt: att begära större konsekvens på alltför många platser kan skada prestanda, och att begära det på alltför få platser kan bryta mot korrektheten. För att hjälpa programmerare i denna uppgift föreslår vi den första bevisregeln för att fastställa att ett särskilt val av konsekvensgarantier för olika operationer i en replikerad databas är tillräckligt för att säkerställa bevarandet av en viss dataintegritet invariant. Vår regel är modulär: den gör det möjligt att resonera om varje operations beteende separat under ett visst antagande om andra operationers beteende. Detta leder till enkla resonemang, som vi har automatiserat i ett SMT-baserat verktyg. Vi lägger fram ett icke-trivialt bevis på att vår regel är sund och illustrerar hur den används på flera exempel.
REF ] tar itu med denna fråga genom att utveckla en förlita-garanti metod och bevisregel som kan fastställa om ett särskilt val av konsekventa garantier för olika verksamheter i en replikerad databas är tillräckligt för att säkerställa bevarandet av en viss dataintegritet invariant.
'Cause I'm strong enough: Reasoning about consistency choices in distributed systems
{'venue': 'POPL 2016', 'journal': None, 'mag_field_of_study': ['Computer Science']}