Enhancing Call-Level Interfaces with Thread-Safe Local Memory Structures
International Journal on Software Engineering and Knowledge Engineering Vol. 27, Nº 9 & 10, pp. 1549 - 1565, December, 2017.
ISSN (print): 0218-1940
ISSN (online): 1793-6403
Journal Impact Factor: 0,362 (in 2014)
Digital Object Identifier: 10.1142/S0218194017400101
Download Full text PDF ( 330 KBs)
Database applications are being increasingly under pressure to respond effectively to ever more demanding performance requirements. Software architects can resort to several well-known architectural tactics to minimize the possibility of coming across with any performance bottleneck. The usage of call-level interfaces (CLIs) is a strategy aimed at reducing the overhead of business components. CLIs are low-level APIs that provide a high-performance environment to execute standard SQL statements on relational and also on some NoSQL database (DB) servers. In spite of these valuable features, CLIs are not thread-safe when distinct threads need to share datasets retrieved through Select statements from databases. Thus, even in situations where two or more threads could share a dataset, there is no other possibility than providing each thread with its own dataset, this way leading to an increased need of computational resources. To overcome this drawback, in this paper we propose a new natively thread-safe architecture. The implementation herein presented is based on a thread-safe updatable local memory structure (LMS) where the data retrieved from databases is kept. A proof of concept based on Java Database Connectivity type 4 (JDBC) for SQL Server 2008 is presented and also a performance assessment.