In modern Web-database systems, users typically perform read-only
queries, whereas all write-only data updates are performed in the
background, concurrently with queries. For most of these services to
be successful and their users to be kept satisfied, two criteria need
to be met: user requests must be answered in a timely fashion and must
return fresh data. This is relatively easy when the system is lightly
loaded and both queries and updates can be executed quickly. However,
this goal becomes fundamentally hard to achieve due to the high
volumes of queries and updates in real systems, especially in periods
of flash crowds. In this work, we argue it is beneficial to allow
users to specify their preferences and let the system optimize towards
satisfying user preferences, instead of simply improving the average
case. We believe that this approach will empower the system to
gracefully deal with a broader spectrum of workloads.

Towards user-centric web-databases, we propose a Quality Contracts
framework to help users express their preferences over multiple
quality specifications. Moreover, we propose a suite of algorithms to
effectively perform query and update load balancing and scheduling
according to user preferences. We evaluate the proposed framework and
algorithms through a simulation with real traces from disk accesses
and from a stock information website. Finally, to increase the
applicability of Quality Contracts enhanced Web-database systems, we
propose an algorithm to help users adapt to the Web-database system
behavior and maximize their query success ratio.