Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3357766.3359536acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Transactional editing: giving ACID to programmers

Published: 20 October 2019 Publication History

Abstract

Collaboration among programmers today mostly relies on file-based version control systems. These systems typically use optimistic locking to enable parallel work, meaning that competing edits (edit conflicts) are detected and have to be resolved at update or commit time. While merging edits can partly be automated, it is an error-prone task that can introduce inconsistencies. Pessimistic locking of the files to be edited does not appear to be a popular alternative, however, and in any case is insufficient to avoid inconsistency, since it does not account for the dependence of (code in) files on others. To address these problems, we show how the notions of atomicity, consistency, and isolation known from transactional databases can be enforced in the context of collaborative programming. We do so by presenting editing as a set of primitive edit operations applied to an abstract syntax graph overlaid by a constraint graph expressing the consistency criteria mandated by the rules of well-formedness of a language, and by deriving for every sequence of primitive edit operations the write- and read-locks sufficient to: perform the edit sequence, either completely or not at all, in isolation from others; and to achieve global consistency before committing.

References

[1]
2017. 20th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems, MODELS 2017, Austin, TX, USA, September 17-22, 2017. IEEE Computer Society. http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=8100283.
[2]
Iftekhar Ahmed, Caius Brindescu, Umme Ayda Mannan, Carlos Jensen, and Anita Sarma. 2017. An Empirical Examination of the Relationship between Code Smells and Merge Conflicts. In 2017 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, ESEM 2017, Toronto, ON, Canada, November 9-10, 2017, Ayse Bener, Burak Turhan, and Stefan Biffl (Eds.). IEEE Computer Society, Washington D.C., 58-67.
[3]
Abdulkareem Alali, Huzefa H. Kagdi, and Jonathan I. Maletic. 2008. What's a Typical Commit? A Characterization of Open Source Software Repositories. In The 16th IEEE International Conference on Program Comprehension, ICPC 2008, Amsterdam, The Netherlands, June 10-13, 2008, René L. Krikhaar, Ralf Lämmel, and Chris Verhoef (Eds.). IEEE Computer Society, 182-191.
[4]
Sven Apel, Jörg Liebig, Benjamin Brandl, Christian Lengauer, and Christian Kästner. 2011. Semistructured merge: rethinking merge in revision control systems. In SIGSOFT/FSE'11 19th ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE-19) and ESEC'11: 13th European Software Engineering Conference (ESEC-13), Szeged, Hungary, September 5-9, 2011, Tibor Gyimóthy and Andreas Zeller (Eds.). ACM, New York City, 190-200.
[5]
Bernhard Beckert, Uwe Keller, and Peter H. Schmitt. 2001. Translating the Object Constraint Language into First-order Predicate Logic. In In Proceedings, VERIFY, Workshop at Federated Logic Conferences (FLoC. 113-123.
[6]
Caius Brindescu, Mihai Codoban, Sergii Shmarkatiuk, and Danny Dig. 2014. How do centralized and distributed version control systems impact software changes?. In 36th International Conference on Software Engineering, ICSE '14, Hyderabad, India - May 31 - June 07, 2014, Pankaj Jalote, Lionel C. Briand, and André van der Hoek (Eds.). ACM, 322-333.
[7]
Yuriy Brun, Reid Holmes, Michael D. Ernst, and David Notkin. 2011. Proactive detection of collaboration conflicts. In SIGSOFT/FSE'11 19th ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE-19) and ESEC'11: 13th European Software Engineering Conference (ESEC-13), Szeged, Hungary, September 5-9, 2011, Tibor Gyimóthy and Andreas Zeller (Eds.). ACM, New York City, 168-178.
[8]
Randal E. Bryant and Miroslav N. Velev. 2002. Boolean satisfiability with transitivity constraints. ACM Trans. Comput. Log. 3, 4 (2002), 604-627.
[9]
Jordi Cabot, Robert Clarisó, and Daniel Riera. 2014. On the verification of UML/OCL class diagrams using constraint programming. Journal of Systems and Software 93 (2014), 1-23.
[10]
A. Church. 1996. Introduction to Mathematical Logic. Number Bd. 13 in Annals of Mathematics Studies. Princeton University Press, Princeton. https://books.google.de/books?id=JDLQOMKbdScC.
[11]
Luís Eduardo de Souza Amorim, Sebastian Erdweg, Guido Wachsmuth, and Eelco Visser. 2016. Principled syntactic code completion using placeholders. In Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering, Amsterdam, The Netherlands, October 31 - November 1, 2016, Tijs van der Storm, Emilie Balland, and Dániel Varró (Eds.). ACM, New York City, 163-175.
[12]
Csaba Debreceni, Gábor Bergmann, István Ráth, and Dániel Varró. 2017. Property-Based Locking in Collaborative Modeling, See [1], 199-209.
[13]
Rina Dechter. 2003. Constraint processing. Elsevier Morgan Kaufmann, San Francisco. http://www.elsevier.com/wps/find/bookdescription.agents/678024/description.
[14]
Ramez Elmasri and Shamkant B. Navathe. 2017. Fundamentals of Database Systems. Pearson Education, Boston.
[15]
Romina Eramo, Alfonso Pierantonio, and Gianni Rosa. 2016. Approaching Collaborative Modeling as an Uncertainty Reduction Process. In Proceedings of the 1st International Workshop on Collaborative Modelling in MDE (COMMitMDE 2016) co-located with ACM/IEEE 19th International Conference on Model Driven Engineering Languages and Systems (MoDELS 2016), St. Malo, France, October 4, 2016. (CEUR Workshop Proceedings), Henry Muccini, Ivano Malavolta, Sebastien Gerard, and Dimitris S. Kolovos (Eds.), Vol. 1717. CEUR-WS.org, 27-34. http://ceur-ws.org/Vol-1717/paper7.pdf.
[16]
Michalis Famelis, Rick Salay, and Marsha Chechik. 2012. Partial models: Towards modeling and reasoning with uncertainty. In 34th International Conference on Software Engineering, ICSE 2012, June 2-9, 2012, Zurich, Switzerland, Martin Glinz, Gail C. Murphy, and Mauro Pezzè (Eds.). IEEE Computer Society, 573-583.
[17]
Michalis Famelis, Rick Salay, and Marsha Chechik. 2012. The semantics of partial model transformations. In Proceedings of the 4th International Workshop on Modeling in Software Engineering, MiSE 2012, Zurich, Switzerland, June 2-3, 2012, Joanne M. Atlee, Robert Baillargeon, Robert B. France, Geri Georg, Ana Moreira, Bernhard Rumpe, and Steffen Zschaler (Eds.). IEEE Computer Society, 64-69.
[18]
Hongfei Fan and Chengzheng Sun. 2012. Dependency-based automatic locking for semantic conflict prevention in real-time collaborative programming. In Proceedings of the ACM Symposium on Applied Computing, SAC 2012, Riva, Trento, Italy, March 26-30, 2012, Sascha Ossowski and Paola Lecca (Eds.). ACM, New York City, 737-742.
[19]
Enrico Franconi, Alessandro Mosca, Xavier Oriol, Guillem Rull, and Ernest Teniente. 2018. OCLFO: first-order expressive OCL constraints for efficient integrity checking. Softw Syst Model online first (2018).
[20]
Jim Gray and Andreas Reuter. 1993. Transaction Processing: Concepts and Techniques. Morgan Kaufmann, San Mateo.
[21]
Jeff Gray and Bernhard Rumpe. 2016. The evolution of model editors: browser- and cloud-based solutions. Software & Systems Modeling 15, 2 (01 May 2016), 303-305.
[22]
Hans Grönniger, Jan Oliver Ringert, and Bernhard Rumpe. 2009. System Model-Based Definition of Modeling Language Semantics. In Formal Techniques for Distributed Systems, David Lee, Antónia Lopes, and Arnd Poetzsch-Heffter (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 152-166.
[23]
Daco Harkes, Danny M. Groenewegen, and Eelco Visser. 2016. IceDust: Incremental and Eventual Computation of Derived Values in Persistent Object Graphs. In 30th European Conference on Object-Oriented Programming, ECOOP 2016, July 18-22, 2016, Rome, Italy (LIPIcs), Shriram Krishnamurthi and Benjamin S. Lerner (Eds.), Vol. 56. Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, Wadern, 11:1-11:26.
[24]
Neil D. Jones, Carsten K. Gomard, and Peter Sestoft. 1993. Partial evaluation and automatic program generation. Prentice-Hall, Inc., Upper Saddle River.
[25]
Carsten Kolassa, Dirk Riehle, and Michel A Salim. 2013. The empirical commit frequency distribution of open source projects. In Proceedings of the 9th International Symposium on Open Collaboration. ACM, New York City, 18.
[26]
Mirco Kuhlmann and Martin Gogolla. 2012. Strengthening SAT-Based Validation of UML/OCL Models by Representing Collections as Relations. In Modelling Foundations and Applications - 8th European Conference, ECMFA 2012, Kgs. Lyngby, Denmark, July 2-5, 2012. Proceedings (Lecture Notes in Computer Science), Antonio Vallecillo, Juha-Pekka Tolvanen, Ekkart Kindler, Harald Störrle, and Dimitrios S. Kolovos (Eds.), Vol. 7349. Springer, Berlin Heidelberg, 32-48.
[27]
Tancred Lindholm. 2004. A three-way merge for XML documents. In Proceedings of the 2004 ACM Symposium on Document Engineering, Milwaukee, Wisconsin, USA, October 28-30, 2004, Ethan V. Munson and Jean-Yves Vion-Dury (Eds.). ACM, New York City, 1-10.
[28]
Toni Mattis, Patrick Rein, and Robert Hirschfeld. 2017. Edit Transactions: Dynamically Scoped Change Sets for Controlled Updates in Live Programming. CoRR abs/1703.10862 (2017). http://arxiv.org/abs/1703.10862.
[29]
Johannes Mey, René Schöne, Görel Hedin, Emma Söderberg, Thomas Kühn, Niklas Fors, Jesper Öqvist, and Uwe Aßmann. 2018. Continuous model validation using reference attribute grammars. In Proceedings of the 11th ACM SIGPLAN International Conference on Software Language Engineering, SLE 2018, Boston, MA, USA, November 05-06, 2018, David Pearce, Tanja Mayerhofer, and Friedrich Steimann (Eds.). ACM, New York City, 70-82.
[30]
Sanjay Mittal and Brian Falkenhainer. 1990. Dynamic Constraint Satisfaction Problems. In Proceedings of the 8th National Conference on Artificial Intelligence. Boston, Massachusetts, USA, July 29 - August 3, 1990, 2 Volumes., Howard E. Shrobe, Thomas G. Dietterich, and William R. Swartout (Eds.). AAAI Press / The MIT Press, Menlo Park, 25-32. http://www.aaai.org/Library/AAAI/1990/aaai90-004.php.
[31]
Cyrus Omar, Ian Voysey, Ravi Chugh, and Matthew A. Hammer. 2019. Live functional programming with typed holes. PACMPL 3, POPL (2019), 14:1-14:32.
[32]
Cyrus Omar, Ian Voysey, Michael Hilton, Joshua Sunshine, Claire Le Goues, Jonathan Aldrich, and Matthew A. Hammer. 2017. Toward Semantic Foundations for Program Editors. CoRR abs/1703.08694 (2017). http://arxiv.org/abs/1703.08694.
[33]
Shaun Phillips, Jonathan Sillito, and Robert J. Walker. 2011. Branching and merging: an investigation into current version control practices. In Proceedings of the 4th International Workshop on Cooperative and Human Aspects of Software Engineering, CHASE 2011, Waikiki, Honolulu, HI, USA, May 21, 2011, Marcelo Cataldo, Cleidson R. B. de Souza, Yvonne Dittrich, Rashina Hoda, and Helen Sharp (Eds.). ACM, New York City, 9-15.
[34]
Nils Przigoda, Robert Wille, and Rolf Drechsler. 2016. Ground setting properties for an efficient translation of OCL in SMT-based model finding. In Proc. MODELS 2016. ACM, New York City, 261-271.
[35]
Dirk Riehle, Carsten Kolassa, and Michel A. Salim. 2014. Developer Belief vs. Reality: The Case of the Commit Size Distribution. CoRR abs/1408.4644 (2014). arXiv:1408.4644 http://arxiv.org/abs/1408.4644.
[36]
Juri Di Rocco, Davide Di Ruscio, Ludovico Iovino, and Alfonso Pierantonio. 2015. Collaborative Repositories in Model-Driven Engineering. IEEE Software 32, 3 (2015), 28-34.
[37]
Rick Salay and Marsha Chechik. 2015. A Generalized Formal Framework for Partial Modeling. In Fundamental Approaches to Software Engineering - 18th International Conference, FASE 2015, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2015, London, UK, April 11-18, 2015. Proceedings (Lecture Notes in Computer Science), Alexander Egyed and Ina Schaefer (Eds.), Vol. 9033. Springer, 133-148.
[38]
Bo Shen, Wei Zhang, Haiyan Zhao, Guangtai Liang, Zhi Jin, and Qianxiang Wang. 2019. IntelliMerge: A Refactoring-aware Software Merging Technique. In Proceedings of the 2019 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2019, part of SPLASH 2019, Athens, Greece. forthcoming.
[39]
Friedrich Steimann, Marcus Frenkel, and Markus Voelter. 2017. Robust projectional editing. In Proceedings of the 10th ACM SIGPLAN International Conference on Software Language Engineering, SLE 2017, Vancouver, BC, Canada, October 23-24, 2017, Benoît Combemale, Marjan Mernik, and Bernhard Rumpe (Eds.). ACM, New York City, 79-90.
[40]
Cheng Thao and Ethan V. Munson. 2010. Using versioned tree data structure, change detection and node identity for three-way XML merging. In Proceedings of the 2010 ACM Symposium on Document Engineering, Manchester, United Kingdom, September 21-24, 2010, Apostolos Antonacopoulos, Michael J. Gormish, and Rolf Ingold (Eds.). ACM, New York City, 77-86.
[41]
Michael Alexander Tröls, Atif Mashkoor, and Alexander Egyed. 2019. Collaboratively enhanced consistency checking in a cloud-based engineering environment. In Proceedings of the ACM SIGCHI Symposium on Engineering Interactive Computing Systems, EICS 2019, Valencia, Spain, June 18-21, 2019, José Ignacio Panach, Jean Vanderdonckt, and Oscar Pastor (Eds.). ACM, New York City, 15:1-15:6.
[42]
Bastian Ulke, Friedrich Steimann, and Ralf Lämmel. 2017. Partial Evaluation of OCL Expressions, See [1], 63-73.
[43]
Jeffrey D. Ullman. 1980. Principles of Database Systems, 1st Edition. Computer Science Press, Potomac.

Cited By

View all
  • (2019)IntelliMerge: a refactoring-aware software merging techniqueProceedings of the ACM on Programming Languages10.1145/33605963:OOPSLA(1-28)Online publication date: 10-Oct-2019

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SLE 2019: Proceedings of the 12th ACM SIGPLAN International Conference on Software Language Engineering
October 2019
215 pages
ISBN:9781450369817
DOI:10.1145/3357766
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 20 October 2019

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. consistency
  2. constraint satisfaction
  3. edit transactions
  4. isolation
  5. programs with holes
  6. version control

Qualifiers

  • Research-article

Conference

SLE '19
Sponsor:

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)60
  • Downloads (Last 6 weeks)11
Reflects downloads up to 19 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2019)IntelliMerge: a refactoring-aware software merging techniqueProceedings of the ACM on Programming Languages10.1145/33605963:OOPSLA(1-28)Online publication date: 10-Oct-2019

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media