Understanding and Improving Database-backed Applications

preview_player
Показать описание
From online shopping to social media websites, many applications are built using imperative languages like Java, Python or Ruby while store its data in a persistent relational database. Such architecture enables fast development of application logic using object-oriented data model while leverages the convenient persistent-data management of relational databases. However, the separation between the application and the database often leads to performance issues.

In this talk, I will introduce our empirical studies on real-world applications’ performance, and our approaches in understanding and solving performance-related issues. In particular, I will present three projects: 1) Chestnut, a data layout designer to customize in-memory data layout and query processing for each application; 2) Quro, a compiler to optimize query order for transaction applications; and 3) Panorama, an interactive tool to help developers make webpage design-performance tradeoff. These projects include holistic optimizations of the application and the database which are transparent to the developer, as well as interactive solutions to help developer better understand and improve their application.

Рекомендации по теме
Комментарии
Автор

I don't understand how showing a simple page with less than 100 items of text data can possibly take more than 0.1 seconds, let alone 10 seconds, when the total database is less than 1 GB. That easily fits in main memory on the webserver, so creating that page should be a matter of looking up those items in memory, and generating the HTML page around it. If you wrote this as a standalone C++ application then that time could easily be reduced to under 0.1 seconds. That gives you about 30 million CPU instructions to play with. This is about 8000 instructions *per byte* of the lobste.rs home page.

julesjacobs
Автор

why wouldnt you show slides always in some capacity? less easy to follow this way

gg