Friday, October 28, 2005

Still Running.....sad, but true

Client: Let's build a credit risk calculation engine for regulatory capital reporting purposes. We know this will take a lot of analysis and design, together with 12 months of development. We have preselected Hibernate as the technology of choice to help us with access to the Oracle DB. We know that we will have to crunch over 2 million transactions a day on a batch basis where we will need to load reference data and calculate credit exposures for every transaction. Remember also that we have just completed an optimized batch calculation architecture before starting this project that can do over 2million transactions in less than an hour.

Finetix: What will you do in terms of :

1) Leveraging existing architecture
  • a) Definitely Use It
  • b) Do some analysis and figure out the efficiencies of re-use and gaps
  • c) No. New project. Let's build new infrastructure from scratch.

2) Ensuring that your system performs appropriately ?
  • a) Let's collectively review the architecture for performance purposes, once we have designed it (and maybe even build a prototype?)
  • b) Let someone else figure out we have not designed this properly for performance at some point during the development process, and then ignore them.
  • c) Decide to wait until we have finished coding and get to SIT/UAT to performance test whatever we have at that point.

Client Answer: ? 1(c) and 2(b) and (c).

Client Results: a 68 (!) hour process to crunch 600k transactions, compared to doing over 2million in 1 hour. The cause ? The use of cursors that go row by row through the data in Java and query the database for each one. Chances of quick fix - none.

Nice work, guys.

0 Comments:

Post a Comment

<< Home