Finding and Evaluating the Performance Impact of Redundant Data Access for Applications that are Developed Using Object-Relational Mapping Frameworks

被引:42
作者
Chen, Tse-Hsun [1 ]
Shang, Weiyi [2 ]
Jiang, Zhen Ming [3 ]
Hassan, Ahmed E. [1 ]
Nasser, Mohamed [4 ]
Flora, Parminder [4 ]
机构
[1] Queens Univ, Sch Comp, Software Anal & Intelligence Lab, Kingston, ON K7L 3N6, Canada
[2] Concordia Univ, Dept Comp Sci & Software Engn, Montreal, PQ H4B 1R6, Canada
[3] York Univ, Dept Elect Engn & Comp Sci, Toronto, ON M3J 1P3, Canada
[4] BlackBerry, Waterloo, ON, Canada
关键词
Performance; object-relational mapping (ORM); program analysis; database;
D O I
10.1109/TSE.2016.2553039
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Developers usually leverage Object-Relational Mapping (ORM) to abstract complex database accesses for large-scale systems. However, since ORM frameworks operate at a lower-level (i.e., data access), ORM frameworks do not know how the data will be used when returned from database management systems (DBMSs). Therefore, ORM cannot provide an optimal data retrieval approach for all applications, which may result in accessing redundant data and significantly affect system performance. Although ORM frameworks provide ways to resolve redundant data problems, due to the complexity of modern systems, developers may not be able to locate such problems in the code; hence, may not proactively resolve the problems. In this paper, we propose an automated approach, which we implement as a Java framework, to locate redundant data problems. We apply our framework on one enterprise and two open source systems. We find that redundant data problems exist in 87 percent of the exercised transactions. Due to the large number of detected redundant data problems, we propose an automated approach to assess the impact and prioritize the resolution efforts. Our performance assessment result shows that by resolving the redundant data problems, the system response time for the studied systems can be improved by an average of 17 percent.
引用
收藏
页码:1148 / 1161
页数:14
相关论文
共 74 条
[1]  
[Anonymous], 2016, HIBERNATE CRITERIA Q
[2]  
[Anonymous], 2016, WHY IS HIBERNATE QUE
[3]  
[Anonymous], 2016, DJANGO OBJECTS VALUE
[4]  
[Anonymous], 1998, AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis
[5]  
[Anonymous], 2016, HIBERNATE DYNAMIC UP
[6]  
[Anonymous], 2016, NHIBERNATE UPDATE SI
[7]  
[Anonymous], 2016, MAKING ONETOONE RELA
[8]  
[Anonymous], 2016, JPA2 0 HIBERNATE WHY
[9]  
[Anonymous], 2016, DETERMINISTIC COLUMN
[10]  
[Anonymous], 2016, GENERATE IDENTICAL C