Användarvända onlinetjänster använder geo-distribuerade datalager för att minimera latens och tolerera partiella misslyckanden, i syfte att ge en snabb, alltid-på-upplevelse. Men geo-distribution kommer inte gratis; programutvecklare måste kämpa med svag konsekvens beteenden, och bristen på abstraktioner för att komposibelt konstruera replikerade datatyper på hög nivå, vilket kräver behovet av komplexa tillämpningslogik och alltid exponera inkonsekvenser för användaren. Vissa kommersiella distribuerade datalager och flera akademiska förslag ger en lattice av konsistensnivåer, med starkare konsekvens garantier som medför ökad latens och genomströmningskostnader. Att korrekt tilldela rätt konsistensnivå för en operation kräver dock ett subtilt resonemang och är ofta en felbenägen uppgift. I detta dokument presenterar vi QUELEA, en deklarativ programmeringsmodell för så småningom konsekventa datalager (ECDS), utrustad med ett kontraktsspråk, som kan specificera finkornig applikationsnivå konsistens egenskaper. Ett system för genomförande av avtal analyserar kontrakt och genererar automatiskt ett lämpligt överensstämmelseprotokoll för den metod som skyddas av kontraktet. Vi beskriver ett genomförande av QUELEA utöver en off-the-shelf ECDS som ger stöd för samordningsfria transaktioner. Flera riktmärken inklusive två stora webbapplikationer, illustrerar effektiviteten i vår strategi.
Dessutom, arbete av Sivaramakrishnan et al. REF introducerar en deklarativ programmeringsmodell för så småningom konsekventa datalager, som inkluderar ett kontraktsspråk som kan uttrycka finkornig applikationsnivå konsistens egenskaper.
Declarative programming over eventually consistent data stores
{'venue': 'PLDI 2015', 'journal': None, 'mag_field_of_study': ['Computer Science']}