TY - CHAP A1 - Cerqueus, Thomas A1 - de Almeida, Eduardo Cunha A1 - Scherzinger, Stefanie ED - Gangemi, Aldo ED - Leonardi, Stefano ED - Panconesi, Alessandro T1 - ControVol: Let Yesterday's Data Catch Up with Today's Application Code T2 - Proceedings of the 24th International Conference on World Wide Web (WWW '15) ; Florence Italy, 18.05.2015 - 22.0.2015 N2 - In building software-as-a-service applications, a flexible development environment is key to shipping early and often. Therefore, schema-flexible data stores are becoming more and more popular. They can store data with heterogeneous structure, allowing for new releases to be pushed frequently, without having to migrate legacy data first. However, the current application code must continue to work with any legacy data that has already been persisted in production. To let legacy data structurally "catch up" with the latest application code, developers commonly employ object mapper libraries with life-cycle annotations. Yet when used without caution, they can cause runtime errors and even data loss. We present ControVol, an IDE plugin that detects evolutionary changes to the application code that are incompatible with legacy data. ControVol warns developers already at development time, and even suggests automatic fixes for lazily migrating legacy data when it is loaded into the application. Thus, ControVol ensures that the structure of legacy data can catch up with the structure expected by the latest software release. Y1 - 2015 SN - 9781450334730 U6 - https://doi.org/10.1145/2740908.2742719 SP - 15 EP - 16 PB - ACM CY - New York, NY, USA ER - TY - CHAP A1 - Cerqueus, Thomas A1 - Cunha de Almeida, Eduardo A1 - Scherzinger, Stefanie T1 - Safely Managing Data Variety in Big Data Software Development T2 - 2015 IEEE/ACM 1st International Workshop on Big Data Software Engineering, 23-23 May 2015, Florence, Italy N2 - We consider the task of building Big Data software systems, offered as software-as-a-service. These applications are commonly backed by NoSQL data stores that address the proverbial Vs of Big Data processing: NoSQL data stores can handle large volumes of data and many systems do not enforce a global schema, to account for structural variety in data. Thus, software engineers can design the data model on the go, a flexibility that is particularly crucial in agile software development. However, NoSQL data stores commonly do not yet account for the veracity of changes when it comes to changes in the structure of persisted data. Yet this is an inevitable consequence of agile software development. In most NoSQL-based application stacks, schema evolution is completely handled within the application code, usually involving object mapper libraries. Yet simple code refactorings, such as renaming a class attribute at the source code level, can cause data loss or runtime errors once the application has been deployed to production. We address this pain point by contributing type checking rules that we have implemented within an IDE plug in. Our plug in ControVol statically type checks the object mapper class declarations against the code release history. ControVol is thus capable of detecting common yet risky cases of mismatched data and schema, and can even suggest automatic fixes. KW - Big data KW - history KW - Java KW - Loading KW - NoSQL data stores KW - object mapping KW - Production KW - Runtime KW - schema evolution KW - Software KW - type checking Y1 - 2015 U6 - https://doi.org/10.1109/BIGDSE.2015.9 SP - 4 EP - 10 PB - IEEE ER - TY - CHAP A1 - Scherzinger, Stefanie A1 - Cerqueus, Thomas A1 - Cunha de Almeida, Eduardo T1 - ControVol: A framework for controlled schema evolution in NoSQL application development T2 - 2015 IEEE 31st International Conference on Data Engineering, 13-17 April 2015, Seoul, Korea (South) N2 - Building scalable web applications on top of NoSQL data stores is becoming common practice. Many of these data stores can easily be accessed programmatically, and do not enforce a schema. Software engineers can design the data model on the go, a flexibility that is crucial in agile software development. The typical tasks of database schema management are now handled within the application code, usually involving object mapper libraries. However, today’s Integrated Development Environments (IDEs) lack the proper tool support when it comes to managing the combined evolution of the application code and of the schema. Yet simple refactorings such as renaming an attribute at the source code level can cause irretrievable data loss or runtime errors once the application is serving in production. In this demo, we present ControVol, a framework for controlled schema evolution in application development against NoSQL data stores. ControVol is integrated into the IDE and statically type checks object mapper class declarations against the schema evolution history, as recorded by the code repository. ControVol is capable of warning of common yet risky cases of mismatched data and schema. ControVol is further able to suggest quick fixes by which developers can have these issues automatically resolved. KW - Databases KW - Google KW - history KW - Java KW - Production KW - Runtime KW - Software Y1 - 2015 SN - 978-1-4799-7964-6 U6 - https://doi.org/10.1109/ICDE.2015.7113402 SP - 1464 EP - 1467 PB - IEEE ER -