Towards a Technique for Extracting Relational Actors from Monolithic Applications

  • Rodrigo Laigner PUC-Rio
  • Sérgio Lifschitz PUC-Rio
  • Marcos Kalinowski PUC-Rio
  • Marcus Poggi PUC-Rio
  • Marcos Antonio Vaz Salles University of Copenhagen

Resumo


Relational actors, or reactors for short, integrate the actor model with the relational data model, providing an abstraction for enabling actor-relational database systems. However, as a novel model of computation for databases, there is no extensive work on reasoning about reactor modeling. To close this gap, this paper aims to propose as well as evaluate a technique to extract reactors from a monolithic system. For evaluation, we selected a REST-based open-source OLTP system in which a decomposition to microservices was conducted and applied our technique on its predecessor monolithic version. Our technique led to the same set of decisions, regarding table and behavior selection, taken by experts when decomposing the same system into microservices. The proposed technique can be seen as a first step towards supporting practitioners in decomposing OLTP systems into reactors.

Palavras-chave: Relational actors extraction, monolithic applications, reactor modeling, OLTP system, REST-based open-source

Referências

Agha, G. (1986). Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge, MA, USA.

Bellatreche, L., Karlapalem, K., and Simonet, A. (2000). Algorithms and support for horizontal class partitioning in object-oriented databases. Distributed and Parallel Databases, 8(2):155–179. DOI: https://doi.org/10.1023/A:1008745624048

Bernstein, P. A., Dashti, M., Kiefer, T., and Maier, D. (2017). Indexing in an actororiented database. In CIDR 2017, 8th Biennial Conference on Innovative Data SystemsResearch, Chaminade, CA, USA, January 8-11, 2017, Online Proceedings.

Boner, J., Farley, D., Kuhn, R., and Thompson, M. (2019). The Reactive Manifesto. https://www.reactivemanifesto.org/.

Cheung, A., Madden, S., Arden, O., and Myers, A. C. (2012). Automatic partitioning of database applications. Proceedings of the VLDB Endowment, 5(11). DOI: https://doi.org/10.14778/2350229.2350262

Du, D.-Z. and Pardalos, P. (1998). Handbook of Combinatorial Optimization. Combinatoral Optimization in Clustering. Springer, New York, NY.

Fielding, R. (2000). Architectural Styles and the Design of Network-based Software Architectures. PhD thesis, University of California, Irvine.

Fowler, M. (2015). Presentation domain data layering. https://martinfowler. com/bliki/PresentationDomainDataLayering.html.

Gysel, M., Kölbener, L., Giersche, W., and Zimmermann, O. (2016). Service cutter: A systematic approach to service decomposition. In Service-Oriented and Cloud Computing, pages 185–200. Springer International Publishing. DOI: https://doi.org/10.1007/978-3-319-44482-6\_12

Hasselbring, W. and Steinacker, G. (2017). Microservice architectures for scalability, agility and reliability in e-commerce. In IEEE ICSA Workshops, pages 243–246. DOI: https://doi.org/10.1109/ICSAW.2017.11

Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., and Irwin, J. (1997). Aspect-oriented programming. In ECOOP’97 — Object-Oriented Programming, pages 220–242, Berlin, Heidelberg. Springer Berlin Heidelberg. DOI: https://doi.org/10.1007/BFb0053381

Levcovitz, A., Terra, R., and Valente, M. T. (2016). Towards a technique for extracting microservices from monolithic enterprise systems. CoRR, abs/1605.03175.

Mazlami, G., Cito, J., and Leitner, P. (2017). Extraction of microservices from monolithic software architectures. In International Conference on Web Services. IEEE. DOI: https://doi.org/10.1109/ICWS.2017.61

Olbrich, S. M., Cruzes, D. S., and Sjøberg, D. I. (2010). Are all code smells harmful? A study of god classes and brain classes in the evolution of three open source systems. IEEE International Conference on Software Maintenance. DOI: https://doi.org/10.1109/ICSM.2010.5609564

Pavlo, A., Curino, C., and Zdonik, S. B. (2012). Skew-aware automatic database partitioning in shared-nothing, parallel OLTP systems. In Proceedings of the ACM SIGMOD International Conference on Management of Data, SIGMOD 2012, Scottsdale, AZ, USA, May 20-24, 2012, pages 61–72. DOI: https://doi.org/10.1145/2213836.2213844

Richards, M. (2015). Software Architecture Patterns. O’Reilly, 1st edition. Rowe, L. A. and Stonebraker, M. (1987). The POSTGRES data model. In VLDB’87, Proceedings of 13th International Conference on Very Large Data Bases, September 1-4, 1987, Brighton, England, pages 83–96.

Shah, V. and Salles, M. A. V. (2018). Reactors: A case for predictable, virtualized actor database systems. In Proceedings of the 2018 International Conference on Management of Data, SIGMOD, Houston, TX, USA, June 10-15, 2018, pages 259–274. DOI: https://doi.org/10.1145/3183713.3183752

Shah, V. and Salles, M. V. (2017). Actor database systems: A manifesto. CoRR, abs/1707.06507.

Sutter, H. and Larus, J. R. (2005). Software and the concurrency revolution. ACM Queue, 3(7):54–62. DOI: https://doi.org/10.1145/1095408.1095421

Wang, Y., dos Reis, J. C., Borggren, K. M., Salles, M. A. V., Medeiros, C. B., and Zhou, Y. (2019). Modeling and building iot data platforms with actor-oriented databases. In Advances in Database Technology - 22nd International Conference on Extending Database Technology, EDBT 2019, Lisbon, Portugal, March 26-29, 2019, pages 512– 523. DOI: https://doi.org/10.5441/002/edbt.2019.47
Publicado
07/10/2019
LAIGNER, Rodrigo; LIFSCHITZ, Sérgio; KALINOWSKI, Marcos; POGGI, Marcus; SALLES, Marcos Antonio Vaz. Towards a Technique for Extracting Relational Actors from Monolithic Applications. In: SIMPÓSIO BRASILEIRO DE BANCO DE DADOS (SBBD), 34. , 2019, Fortaleza. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2019 . p. 133-144. ISSN 2763-8979. DOI: https://doi.org/10.5753/sbbd.2019.8814.