Automatic Verification and Tuning of Transaction-based Database Applications

트랜잭션 기반 데이타베이스 응용프로그램의 안전성 자동 검증 및 자동 튜닝

  • Published : 2005.01.01

Abstract

In this paper, we suggest a system which automatically verifies and tunes transaction processing database applications based on program analysis technology. This system automatically verifies two kinds of transaction processing errors. The first case is the un-closed transaction. In this case, data is not updated as expected or performance of overall system can decrease seriously by locking some database tables until the process terminates. The second case is the miss-use of transaction isolation(inking) level. This causes runtime exception or abnormal termination of the program depending on runtime environment. This system automatically tunes two kinds of inefficient definition of transaction processing which decrease the performance of overall system. The first case happens when opened transaction is closed too late. And the second case happens when transaction isolation level is set too high.

본 논문에서는 프로그램 분석 기술에 기반하여, 주어진 프로그램 내에서 트랜잭션 처리 관련 오류를 자동으로 검출해주고, 성능저하 요소가 발견되면 자동으로 개선된 코드로 변환하여 주는 시스템을 제안한다 트랜잭션 처리 오류란 트랜잭션을 열고서 닫지 않는 경우나, 잘못된 잠금수준(Locking-Level)을 설정하는 경우를 말한다 전자의 경우, 원하는 대로 데이타가 저장되지 않거나 장시간 데이타베이스 테이블을 잠금(Locking)으로써 시스템 전체의 성능을 떨어뜨릴 수 있다. 후자의 경우. 시스템에 따라 예외상황이나 프로그램의 파행적 실행 중단을 야기한다. 비효율적인 트랜잭션 처리란, 트랜잭션 영역(Boundary) 또는 잠금수준을 비효율적으로 설계하여서 다른 프로세스들의 트랜잭션을 지연시키는 경우를 말한다.

Keywords

References

  1. Philip A. Bernstein and Eric Newcomer, Principles of Transaction Processing, Morgan Kaufmann Publishers, 1997
  2. Harvey W. Gunther, 'WehSphere Application Server Development Best Practices for Performance and Scalability,' IBM White Paper, 2000
  3. Philippe Bonnet and Denis E. Shasha, Database Tuning: Principles, Experiments, and Troubleshooting Techniques, Morgan Kaufmann Publishers, 2002
  4. Geoffrey S. Smith, 'Polymorphic Type Inference for Language with Overloading and Subtyping,' PhD thesis, Cornell University, August 1991
  5. Andrew K. Wright and Matthias Felleisen, 'A syntactic approach to type soundness,' Technical report TR91-160, Rice University, 1992
  6. Benjamin C. Pierce, Types and Programming Languages, Kluwer Acdemic Publisher, The MIT Press, 2002
  7. Patrick Lincoln and John C.Mitchell, 'Algorithmic aspects of type inference with subtypes,' In 19th ACM Symposium on Principles of Programming Languages, pages 193-304, 1992 https://doi.org/10.1145/143165.143227
  8. Steven S. Muchnick, Advanced Compiler Design and Implementation, Morgan Kaufmann Publishers, 1997
  9. Robert DeLine and Manuel Fandrich, 'Enforcing High-Level Protocols in Low-Level Software,' In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation(PLDI 2001), pages 59-69, 2001 https://doi.org/10.1145/378795.378811
  10. Atsushi Igarashi and Naoki Kobayashi, 'Resource Usage Analysis,' In Proceedings of Symposium on Principles of Programming Languages, pages 331-342, 2002 https://doi.org/10.1145/503272.503303
  11. Naoki Kobayashi, 'Time Regions and Effects for Resouce Usage Analysis,' In Proceedings of ACM SIGPLAN Workshop on Types in Language Design and Implementation, pages 50-61, 2003 https://doi.org/10.1145/604174.604182
  12. Cosimo Laneve. A Type System for JVM Threads. Theoretical Computer Science, Vol. 290, pages 741-778, 2003 https://doi.org/10.1016/S0304-3975(02)00330-4
  13. D. Engler, B. Chelf, A. Chou, and S. Hallem, 'Checking system rules using system-specific, programmer-written compiler extensions,' In Symposium on Operating Systems Design and Implementation(OSDI2000), Oct. 2000
  14. Thomas Ball and Sriram K. Rajamani, 'The SLAM Project: Debugging System Software via Static Analysis,' In Symposium on Principles of Programming Languages 2002(POPL2002), pages 1-3, 2002
  15. James Corbett, Matthew Dwyer, John Hatcliff, Corina Pasareanu, Robby, Shawn Laubach and Hongjun Zheng, 'Bandera: Extracting Finite-state Models from Java Source Code,' In Proceedings of the 22nd International Conference on Software Engineering, pages 439-448, 2000 https://doi.org/10.1145/337180.337234