The Community for Technology Leaders
RSS Icon
Issue No.04 - July-Aug. (2012 vol.38)
pp: 909-922
Peng Liu , Hong Kong University of Science and Technology, Hong Kong
Charles Zhang , Hong Kong University of Science and Technology, Hong Kong
Persistence is a widely used technique which allows the objects that represent the results of lengthy computations to outlive the process that creates it in order to considerably speed up subsequent program executions. We observe that conventional persistence techniques usually do not consider the application contexts of the persistence operations, where not all of the object states need to be persisted. Leveraging this observation, we have designed and implemented a framework called Pert, which first performs static program analysis to estimate the actual usage of the persisted object, given the context of its usage in the program. The Pert runtime uses the statically computed information to efficiently make tailoring decisions to prune the redundant and unused object states during the persistence operations. Our evaluation result shows that the Pert-based optimization can speed up the conventional persistence operations by 1 to 45 times. The amount of persisted data is also dramatically reduced, as the result of the application-aware tailoring.
Object persistence, program analysis, performance optimization
Peng Liu, Charles Zhang, "Pert: The Application-Aware Tailoring of Java Object Persistence", IEEE Transactions on Software Engineering, vol.38, no. 4, pp. 909-922, July-Aug. 2012, doi:10.1109/TSE.2011.66
[1] E. Bodden, A. Sewe, J. Sinschek, M. Mezini, and H. Oueslati, "Taming Reflection: Aiding Static Analysis in the Presence of Reflection and Custom Class Loaders," Proc. 33rd Int'l Conf. Software Eng., May 2011.
[2] M.D. Bond and K.S. McKinley, "Probabilistic Calling Context," Proc. 22nd Ann. ACM SIGPLAN Conf. Object-Oriented Programming Systems and Applications, pp. 97-112, 2007.
[3] M.J. Carey, D.J. DeWitt, and J.F. Naughton, "The 007 Benchmark," Proc. ACM SIGMOD Int'l Conf. Management of Data, pp. 12-21, 1993.
[4] S. Elbaum, H.N. Chin, M.B. Dwyer, and M. Jorde, "Carving and Replaying Differential Unit Test Cases from System Test Cases," IEEE Trans. Software Eng., vol. 35, no. 1, pp. 29-45, Jan./Feb. 2009.
[5] C. Fetzer, K. Hgstedt, and P. Felber, "Automatic Detection and Masking of Non-Atomic Exception Handling," IEEE Trans. Software Eng., vol. 30, no. 8, pp. 547-560, Aug. 2004.
[6] A. Ibrahim and W.R. Cook, "Automatic Prefetching by Traversal Profiling in Object Persistence Architectures," Proc. European Conf. Object-Oriented Programming, 2006.
[7] T.Z. Islam, S. Bagchi, and R. Eigenmann, "Falcon: A System for Reliable Checkpoint Recovery in Shared Grid Environments," Proc. Conf. High Performance Computing Networking, Storage and Analysis, pp. 50:1-50:12, 2009.
[8] O. Lhoták and L. Hendren, "Scaling Java Points-To Analysis Using Spark," Proc. 12th Int'l Conf. Compiler Construction, pp. 153-169, Apr. 2003.
[9] M. Marron, M.V. Hermenegildo, D. Kapur, and D. Stefanovic, "Efficient Context-Sensitive Shape Analysis with Graph Based Heap Models," Proc. Joint European Conf. Theory and Practice of Software 17th Int'l Conf. Compiler Construction, pp. 245-259, 2008.
[10] A. Milanova, A. Rountev, and B.G. Ryder, "Parameterized Object Sensitivity for Points-to and Side-Effect Analyses for Java," SIGSOFT Software Eng. Notes, vol. 27, no. 4, pp. 1-11, 2002.
[11] M. Naik, A. Aiken, and J. Whaley, "Effective Static Race Detection for Java," Proc. ACM SIGPLAN Conf. Programming Language Design and Implementation, vol. 41, no. 6, pp. 308-319, 2006.
[12] L. Opyrchal, L. Opyrchal, and A. Prakash, "Efficient Object Serialization in Java," Proc. 19th IEEE Int'l Conf. Distributed Computing Systems Workshops, 1998.
[13] M. Philippsen and B. Haumacher, "More Efficient Object Serialization," Proc. Workshops Held in Conjunction with the 13th Int'l Parallel Processing Symp. and 10th Symp. Parallel and Distributed Processing, pp. 718-732, 1999.
[14] J. Plank, J.S. Plank, M. Beck, M. Beck, G. Kingsley, G. Kingsley, K. Li, and K. Li, "Libckpt: Transparent Checkpointing under Unix," Usenix Winter Technical Conf., pp. 213-223, 1995.
[15] D. Saff, S. Artzi, J.H. Perkins, and M.D. Ernst, "Automatic Test Factoring for Java," Proc. IEEE/ACM 20th Int'l Conf. Automated Software Eng., pp. 114-123, 2005.
[16] R.E. Walpole, R.H. Myers, S.L. Myers, and K. Ye, Probability and Statistics: For Engineers and Scientists, seventh ed. Pearson Education, Inc., 2006.
[17] J. Whaley and M.S. Lam, "Cloning-Based Context-Sensitive Pointer Alias Analysis Using Binary Decision Diagrams," Proc. ACM SIGPLAN Conf. Programming Language Design and Implementation, pp. 131-144, 2004.
[18] B. Wiedermann, A. Ibrahim, and W.R. Cook, "Interprocedural Query Extraction for Transparent Persistence," Proc. 23rd ACM SIGPLAN Conf. Object-Oriented Programming Systems Languages and Applications, 2008.
[19] G. Xu, A. Rountev, Y. Tang, and F. Qin, "Efficient Checkpointing of Java Software Using Context-Sensitive Capture and Replay," Proc. Sixth Joint Meeting of the European Software Eng. Conf. and the ACM SIGSOFT Symp. Foundations of Software Eng., pp. 85-94, 2007.
[20] A. Zeller, "Yesterday, My Program Worked. Today, It Does Not. Why?" Proc. Seventh European Software Eng. Conf./Seventh ACM SIGSOFT Symp. Foundations of Software Eng., pp. 253-267, 1999.
253 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool