CloseClose

Encyclopedia.com -- Online dictionary and encyclopedia of facts, information, and biographies
Close window

Lisp for High-Performance Transaction Processing

Google Tech Talk August 17, 2009 ABSTRACT Presented by Daniel L. Weinreb, I will talk about the use of Lisp at ITA Software. Why do we use Lisp? How do we make that work? Why is Lisp suitable for this kind of application? I will also talk about the future of Lisp, which has three tracks: Common Lisp, Scheme, and Clojure. At ITA software, we are building a new airline reservation system, suitable for major airlines, including flagship carriers. Many airlines are using software forked from the original "SABRE" system, originally written by American Airlines in the late 1950's and early 1960's. Our system is a high-performance transaction processing system. It has strict latency requirements (in the 300ms response time area), and must meet them and operate correctly with at least 99.99% availability. An airline's reservation system stores reservations and e-tickets and is considered mission-critical for the company. It communicates with other airline reservation systems, and with global distribution systems such as Sabre, Worldspan, Galileo, and Amadeus. It can do interlining (connections to other airlines) and code shares (one airline markets a flight that's operated by a different airline). It provides three main web sites: one for ordinary customers (the airline's own web site), one for travel agents, and one for the airline's "call center" employees who help customers. The presentation layer is written in Java, and uses many, many open source libraries to present a modern Ajax-style user interface. The business layer is written in Common Lisp; it is about 650K lines of code (plus about 150K lines of open-source Common Lisp libraries). The data layer is Oracle RAC, and several other components exist, some in Python, some in Java, and a few in C/C++. I am primarily working on high availability, how to upgrade software components while the system is running, caching, transactional correctness, as well as "operability" concerns such as logging and monitoring. Daniel L. Weinreb is a programmer and computer scientist. He attended MIT 1975-1979, graduating with a B.S. in Computer Science and Electrical Engineering, where he wrote EINE. This was the second implementation of Emacs ever written, and the first implementation of Emacs in Lisp. Most of the notable subsequent Emacs implementations used Lisp, including Gosling's Gosmacs, Greenberg's Multics Emacs, and of course Stallman's GNU Emacs. In 1980 he co-founded Symbolics, developing software for the Symbolics Lisp Machine, including a debugger, a LAN implementation, and many utilities. He also participated significantly in the design of the Common Lisp language; he was one of the five co-authors of the original spec, "Common Lisp: The Language, First Edition". In 1988, he co-founded Object Design, where he was one of the architects and implementers of ObjectStore, the leading commercial object-oriented database management system in the 1990's. It is still commercially maintained and available from Progress Software, which bought Object Design (then named eXcelon, Inc.). In 2002, he joined BEA Systems, where he was Operations, Administraion, and Management Architect for WebLogic Server, then the leading J2EE application server. In 2006, he joined ITA Software, where he is working on a new airline reservation system.

For your enjoyment and convenience, YouTube videos are automatically associated with content at Encyclopedia.com. Because videos come directly from YouTube, we cannot endorse their accuracy, content, or quality. However, we hope you find them useful or entertaining while using Encyclopedia.com.

More YouTube videos About these videos