Abstract
The paper presents research on the performance of reactive processing in the Java ecosystem where persistent data sources (both SQL and NoSQL) were used as one single dependency of the node. Several scenarios have been tested, including changing chunks of data stream, different types of database drivers, etc.
The results show that in the case of reactive processing of data streams being fetched from single noded persistent data sources it is hard to gain an advantage over nonreactive processing and some advantages began to appear only both with a large number of concurrent users and data streams of significant volume, while for low- and mid-loaded systems reactive processing gives usually unnecessary overhead resulting in degradation of the overall performance.
It should be also noticed that we are at the quite early stage of reactive programming development what results sometimes in lack of its support in various layers of technological stacks. This was the case with the PostgreSQL database, where there is no production release of the nonblocking driver, and no support for developing pipeline stored procedures yet.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Bainomugisha, E., Carreton, A.L., Cutsem, T.V., Mostinckx, S., Meuter, W.D.: A survey on reactive programming. ACM Comput. Surv. 45(4), 52:1–52:34 (2013). https://doi.org/10.1145/2501654.2501666, http://doi.acm.org/10.1145/2501654.2501666
Bernhardt, M.: Reactive Web Applications: Covers Play, Akka, and Reactive Streams, 1st edn. Manning Publications Co., Greenwich (2016)
Davari, M., Bertino, E.: Reactive access control systems. In: Proceedings of the 23nd ACM on Symposium on Access Control Models and Technologies, SACMAT 2018, pp. 205–207. ACM, New York (2018). https://doi.org/10.1145/3205977.3208947. http://doi.acm.org/10.1145/3205977.3208947
Drechsler, J., Salvaneschi, G.: Optimizing distributed rescala (2014)
Jeff, B.: New t2.xlarge and t2.2xlarge instances. https://aws.amazon.com/blogs/aws/new-t2-xlarge-and-t2-2xlarge-instances/. Accessed 19 Mar 2019
Jovanovic, Z., Bacevic, R., Markovic, R., Randjic, S.: Android application for observing data streams from built-in sensors using Rxjava. In: 2015 23rd Telecommunications Forum Telfor (TELFOR), pp. 918–921 (2015). https://doi.org/10.1109/TELFOR.2015.7377615
Meiklejohn, C.S., Enes, V., Yoo, J., Baquero, C., Van Roy, P., Bieniusa, A.: Practical evaluation of the lasp programming model at large scale: an experience report. In: Proceedings of the 19th International Symposium on Principles and Practice of Declarative Programming, PPDP 2017, pp. 109–114. ACM, New York (2017). https://doi.org/10.1145/3131851.3131862. http://doi.acm.org/10.1145/3131851.3131862
Mogk, R., Salvaneschi, G., Mezini, M.: Reactive programming experience with rescala. In: Conference Companion of the 2nd International Conference on Art, Science, and Engineering of Programming, Programming 2018 Companion, pp. 105–112. ACM, New York (2018). https://doi.org/10.1145/3191697.3214337. http://doi.acm.org/10.1145/3191697.3214337
Myter, F., Coppieters, T., Scholliers, C., De Meuter, W.: I now pronounce you reactive and consistent: handling distributed and replicated state in reactive programming. In: Proceedings of the 3rd International Workshop on Reactive and Event-Based Languages and Systems, REBLS 2016, pp. 1–8. ACM, New York (2016). https://doi.org/10.1145/3001929.3001930. http://doi.acm.org/10.1145/3001929.3001930
Myter, F., Scholliers, C., Meuter, W.D.: Distributed reactive programming for reactive distributed systems. CoRR abs/1902.00524 (2019). http://arxiv.org/abs/1902.00524
PostgreSQL. https://www.postgresql.org/docs/11/plpgsql-control-structures.html. Accessed 19 Mar 2019
Tomasz, N.: Rxjava vs reactor. https://www.nurkiewicz.com/2019/02/rxjava-vs-reactor.html. Accessed 19 Mar 2019
Weisenburger, P., Köhler, M., Salvaneschi, G.: Distributed system development with scalaloci. Proc. ACM Program. Lang. 2(OOPSLA), 129:1–129:30 (2018). https://doi.org/10.1145/3276499. http://doi.acm.org/10.1145/3276499
Acknowledgements
This work was supported by Statutory Research funds of Institute of Informatics, Silesian University of Technology, Gliwice, Poland (BK/204/RAU2/2019).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Wycislik, L., Ogorek, L. (2020). Issues on Performance of Reactive Programming in the Java Ecosystem with Persistent Data Sources. In: Gruca, A., Czachórski, T., Deorowicz, S., Harężlak, K., Piotrowska, A. (eds) Man-Machine Interactions 6. ICMMI 2019. Advances in Intelligent Systems and Computing, vol 1061 . Springer, Cham. https://doi.org/10.1007/978-3-030-31964-9_24
Download citation
DOI: https://doi.org/10.1007/978-3-030-31964-9_24
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-31963-2
Online ISBN: 978-3-030-31964-9
eBook Packages: Intelligent Technologies and RoboticsIntelligent Technologies and Robotics (R0)