Loading…

Repairing Serializability Bugs in Distributed Database Programs via Automated Schema Refactoring

Serializability is a well-understood concurrency control mechanism that eases reasoning about highly-concurrent database programs. Unfortunately, enforcing serializability has a high-performance cost, especially on geographically distributed database clusters. Consequently, many databases allow prog...

Full description

Saved in:
Bibliographic Details
Published in:arXiv.org 2021-03
Main Authors: Rahmani, Kia, Nagar, Kartik, Delaware, Benjamin, Jagannathan, Suresh
Format: Article
Language:English
Subjects:
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
cited_by
cites
container_end_page
container_issue
container_start_page
container_title arXiv.org
container_volume
creator Rahmani, Kia
Nagar, Kartik
Delaware, Benjamin
Jagannathan, Suresh
description Serializability is a well-understood concurrency control mechanism that eases reasoning about highly-concurrent database programs. Unfortunately, enforcing serializability has a high-performance cost, especially on geographically distributed database clusters. Consequently, many databases allow programmers to choose when a transaction must be executed under serializability, with the expectation that transactions would only be so marked when necessary to avoid serious concurrency bugs. However, this is a significant burden to impose on developers, requiring them to (a) reason about subtle concurrent interactions among potentially interfering transactions, (b) determine when such interactions would violate desired invariants, and (c) then identify the minimum number of transactions whose executions should be serialized to prevent these violations. To mitigate this burden, in this paper we present a sound and fully automated schema refactoring procedure that transforms a program's data layout -- rather than its concurrency control logic -- to eliminate statically identified concurrency bugs, allowing more transactions to be safely executed under weaker and more performant database guarantees. Experimental results over a range of database benchmarks indicate that our approach is highly effective in eliminating concurrency bugs, with safe refactored programs showing an average of 120% higher throughput and 45% lower latency compared to the baselines.
doi_str_mv 10.48550/arxiv.2103.05573
format article
fullrecord <record><control><sourceid>proquest</sourceid><recordid>TN_cdi_proquest_journals_2499692931</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>2499692931</sourcerecordid><originalsourceid>FETCH-LOGICAL-a521-718d7c6a975085ceb912a99fb53f91811f64fac79320aa6a983867416a3d9ba03</originalsourceid><addsrcrecordid>eNotzclOwzAYBGALCYmq9AG4WeKc4CXejqVlkyqB2t7L78QJrpKm2E4FPD2p4DSHGX2D0A0leaGFIHcQvvwpZ5TwnAih-AWaMM5ppgvGrtAsxj0hhEnFhOAT9L52R_DBHxq8ccFD63_A-tanb3w_NBH7A176mIK3Q3IVXkICC9Hht9A3AbqITx7wfEh9B-d-U364DvDa1VCm_sxeo8sa2uhm_zlF28eH7eI5W70-vSzmqwwEo5miulKlBKME0aJ01lAGxtRW8NpQTWkti5FUhjMCMO4011IVVAKvjAXCp-j2jz2G_nNwMe32_RAO4-OOFcZIwwyn_Bc4yVZI</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>2499692931</pqid></control><display><type>article</type><title>Repairing Serializability Bugs in Distributed Database Programs via Automated Schema Refactoring</title><source>Publicly Available Content Database</source><creator>Rahmani, Kia ; Nagar, Kartik ; Delaware, Benjamin ; Jagannathan, Suresh</creator><creatorcontrib>Rahmani, Kia ; Nagar, Kartik ; Delaware, Benjamin ; Jagannathan, Suresh</creatorcontrib><description>Serializability is a well-understood concurrency control mechanism that eases reasoning about highly-concurrent database programs. Unfortunately, enforcing serializability has a high-performance cost, especially on geographically distributed database clusters. Consequently, many databases allow programmers to choose when a transaction must be executed under serializability, with the expectation that transactions would only be so marked when necessary to avoid serious concurrency bugs. However, this is a significant burden to impose on developers, requiring them to (a) reason about subtle concurrent interactions among potentially interfering transactions, (b) determine when such interactions would violate desired invariants, and (c) then identify the minimum number of transactions whose executions should be serialized to prevent these violations. To mitigate this burden, in this paper we present a sound and fully automated schema refactoring procedure that transforms a program's data layout -- rather than its concurrency control logic -- to eliminate statically identified concurrency bugs, allowing more transactions to be safely executed under weaker and more performant database guarantees. Experimental results over a range of database benchmarks indicate that our approach is highly effective in eliminating concurrency bugs, with safe refactored programs showing an average of 120% higher throughput and 45% lower latency compared to the baselines.</description><identifier>EISSN: 2331-8422</identifier><identifier>DOI: 10.48550/arxiv.2103.05573</identifier><language>eng</language><publisher>Ithaca: Cornell University Library, arXiv.org</publisher><subject>Automation ; Concurrency ; Concurrency control ; Geographical distribution</subject><ispartof>arXiv.org, 2021-03</ispartof><rights>2021. This work is published under http://creativecommons.org/licenses/by/4.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License.</rights><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktohtml>$$Uhttps://www.proquest.com/docview/2499692931?pq-origsite=primo$$EHTML$$P50$$Gproquest$$Hfree_for_read</linktohtml><link.rule.ids>780,784,25753,27925,37012,44590</link.rule.ids></links><search><creatorcontrib>Rahmani, Kia</creatorcontrib><creatorcontrib>Nagar, Kartik</creatorcontrib><creatorcontrib>Delaware, Benjamin</creatorcontrib><creatorcontrib>Jagannathan, Suresh</creatorcontrib><title>Repairing Serializability Bugs in Distributed Database Programs via Automated Schema Refactoring</title><title>arXiv.org</title><description>Serializability is a well-understood concurrency control mechanism that eases reasoning about highly-concurrent database programs. Unfortunately, enforcing serializability has a high-performance cost, especially on geographically distributed database clusters. Consequently, many databases allow programmers to choose when a transaction must be executed under serializability, with the expectation that transactions would only be so marked when necessary to avoid serious concurrency bugs. However, this is a significant burden to impose on developers, requiring them to (a) reason about subtle concurrent interactions among potentially interfering transactions, (b) determine when such interactions would violate desired invariants, and (c) then identify the minimum number of transactions whose executions should be serialized to prevent these violations. To mitigate this burden, in this paper we present a sound and fully automated schema refactoring procedure that transforms a program's data layout -- rather than its concurrency control logic -- to eliminate statically identified concurrency bugs, allowing more transactions to be safely executed under weaker and more performant database guarantees. Experimental results over a range of database benchmarks indicate that our approach is highly effective in eliminating concurrency bugs, with safe refactored programs showing an average of 120% higher throughput and 45% lower latency compared to the baselines.</description><subject>Automation</subject><subject>Concurrency</subject><subject>Concurrency control</subject><subject>Geographical distribution</subject><issn>2331-8422</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2021</creationdate><recordtype>article</recordtype><sourceid>PIMPY</sourceid><recordid>eNotzclOwzAYBGALCYmq9AG4WeKc4CXejqVlkyqB2t7L78QJrpKm2E4FPD2p4DSHGX2D0A0leaGFIHcQvvwpZ5TwnAih-AWaMM5ppgvGrtAsxj0hhEnFhOAT9L52R_DBHxq8ccFD63_A-tanb3w_NBH7A176mIK3Q3IVXkICC9Hht9A3AbqITx7wfEh9B-d-U364DvDa1VCm_sxeo8sa2uhm_zlF28eH7eI5W70-vSzmqwwEo5miulKlBKME0aJ01lAGxtRW8NpQTWkti5FUhjMCMO4011IVVAKvjAXCp-j2jz2G_nNwMe32_RAO4-OOFcZIwwyn_Bc4yVZI</recordid><startdate>20210309</startdate><enddate>20210309</enddate><creator>Rahmani, Kia</creator><creator>Nagar, Kartik</creator><creator>Delaware, Benjamin</creator><creator>Jagannathan, Suresh</creator><general>Cornell University Library, arXiv.org</general><scope>8FE</scope><scope>8FG</scope><scope>ABJCF</scope><scope>ABUWG</scope><scope>AFKRA</scope><scope>AZQEC</scope><scope>BENPR</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>HCIFZ</scope><scope>L6V</scope><scope>M7S</scope><scope>PIMPY</scope><scope>PQEST</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PRINS</scope><scope>PTHSS</scope></search><sort><creationdate>20210309</creationdate><title>Repairing Serializability Bugs in Distributed Database Programs via Automated Schema Refactoring</title><author>Rahmani, Kia ; Nagar, Kartik ; Delaware, Benjamin ; Jagannathan, Suresh</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-a521-718d7c6a975085ceb912a99fb53f91811f64fac79320aa6a983867416a3d9ba03</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2021</creationdate><topic>Automation</topic><topic>Concurrency</topic><topic>Concurrency control</topic><topic>Geographical distribution</topic><toplevel>online_resources</toplevel><creatorcontrib>Rahmani, Kia</creatorcontrib><creatorcontrib>Nagar, Kartik</creatorcontrib><creatorcontrib>Delaware, Benjamin</creatorcontrib><creatorcontrib>Jagannathan, Suresh</creatorcontrib><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>Materials Science &amp; Engineering Collection</collection><collection>ProQuest Central (Alumni)</collection><collection>ProQuest Central</collection><collection>ProQuest Central Essentials</collection><collection>ProQuest Central</collection><collection>Technology Collection</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central</collection><collection>SciTech Premium Collection</collection><collection>ProQuest Engineering Collection</collection><collection>Engineering Database</collection><collection>Publicly Available Content Database</collection><collection>ProQuest One Academic Eastern Edition (DO NOT USE)</collection><collection>ProQuest One Academic</collection><collection>ProQuest One Academic UKI Edition</collection><collection>ProQuest Central China</collection><collection>Engineering Collection</collection><jtitle>arXiv.org</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Rahmani, Kia</au><au>Nagar, Kartik</au><au>Delaware, Benjamin</au><au>Jagannathan, Suresh</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Repairing Serializability Bugs in Distributed Database Programs via Automated Schema Refactoring</atitle><jtitle>arXiv.org</jtitle><date>2021-03-09</date><risdate>2021</risdate><eissn>2331-8422</eissn><abstract>Serializability is a well-understood concurrency control mechanism that eases reasoning about highly-concurrent database programs. Unfortunately, enforcing serializability has a high-performance cost, especially on geographically distributed database clusters. Consequently, many databases allow programmers to choose when a transaction must be executed under serializability, with the expectation that transactions would only be so marked when necessary to avoid serious concurrency bugs. However, this is a significant burden to impose on developers, requiring them to (a) reason about subtle concurrent interactions among potentially interfering transactions, (b) determine when such interactions would violate desired invariants, and (c) then identify the minimum number of transactions whose executions should be serialized to prevent these violations. To mitigate this burden, in this paper we present a sound and fully automated schema refactoring procedure that transforms a program's data layout -- rather than its concurrency control logic -- to eliminate statically identified concurrency bugs, allowing more transactions to be safely executed under weaker and more performant database guarantees. Experimental results over a range of database benchmarks indicate that our approach is highly effective in eliminating concurrency bugs, with safe refactored programs showing an average of 120% higher throughput and 45% lower latency compared to the baselines.</abstract><cop>Ithaca</cop><pub>Cornell University Library, arXiv.org</pub><doi>10.48550/arxiv.2103.05573</doi><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier EISSN: 2331-8422
ispartof arXiv.org, 2021-03
issn 2331-8422
language eng
recordid cdi_proquest_journals_2499692931
source Publicly Available Content Database
subjects Automation
Concurrency
Concurrency control
Geographical distribution
title Repairing Serializability Bugs in Distributed Database Programs via Automated Schema Refactoring
url http://sfxeu10.hosted.exlibrisgroup.com/loughborough?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2024-12-30T21%3A53%3A59IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Repairing%20Serializability%20Bugs%20in%20Distributed%20Database%20Programs%20via%20Automated%20Schema%20Refactoring&rft.jtitle=arXiv.org&rft.au=Rahmani,%20Kia&rft.date=2021-03-09&rft.eissn=2331-8422&rft_id=info:doi/10.48550/arxiv.2103.05573&rft_dat=%3Cproquest%3E2499692931%3C/proquest%3E%3Cgrp_id%3Ecdi_FETCH-LOGICAL-a521-718d7c6a975085ceb912a99fb53f91811f64fac79320aa6a983867416a3d9ba03%3C/grp_id%3E%3Coa%3E%3C/oa%3E%3Curl%3E%3C/url%3E&rft_id=info:oai/&rft_pqid=2499692931&rft_id=info:pmid/&rfr_iscdi=true