Escolar Documentos
Profissional Documentos
Cultura Documentos
Permission to copy without fee all or part of this material is granted pro- In this demonstration, we show the Database Change
vided that the copies are not made or distributed for direct commercial Notification mechanism as implemented in Microsoft SQL
advantage, the VLDB copyright notice and the title of the publication and
its date appear, and notice is given that copying is by permission of the
Server 2005 Beta 3. This database primitive allows sub-
Very Large Data Base Endowment. To copy otherwise, or to republish, scription and change detection for query results, and it is
requires a fee and/or special permission from the Endowment. integrated in the query processor, where we leverage ex-
Proceedings of the 31st VLDB Conference, isting infrastructure and techniques for materialized view
Trondheim, Norway, 2005 maintenance (as suggested in [1]). The demonstration is
1275
an example of an online book store and we show how var- concept is to leverage existing materialized view mainte-
ious technologies fit together — Database Change Notifi- nance algorithms. Explaining the individual parts and their
cations for subscription and invalidation; Service Broker as interaction can be done best by examining sample work-
the transport layer to reliably route notification messages flows.
from the database server to the caches; and ASP.NET to We distinguish two major scenarios: (1) subscribing to a
cache web pages in the mid tier. query result and (2) processing of changes which trigger a
change notification. Additional scenarios a comprehensive
2 Database Change Notifications implementation needs to take into account including DDL
or maintenance operations are discussed in the next section.
A goal of our work is to factor out common primitives that
are required by a wide range of database applications which
3.1 Subscribing to a Query Result
can benefit from mid-tier or client-side caching. Database
Change Notifications (DCN) provide server-side primitives In Figure 2 illustrates the workflow for subscribing to query
that allow clients or applications to subscribe to query re- results. Integrated into the query optimizer, the DCN com-
sults, and the server sends notification messages for cache ponents interact as follows (numbers in the text refer to la-
invalidation as soon as these results have changed. bels in the figure):
We see two main requirements for DCN. First, under-
invalidation is unacceptable, i.e. if the result of the sub- DCN analyzes the incoming query annotated with a
scribed query has changed due to data modification in the subscription request (1, 2); requests for queries which
server, the system must guarantee that invalidation takes are not notifiable (e.g. queries which reference non-
place. And, second, latency must be low. This is not only deterministic functions) are rejected (3).
a performance requirement but it also affects consistency
across caches.
For notifiable queries, DCN sets up templates and pa-
The important building blocks of DCN are the notions rameter tables as necessary (4). The template serves
of (1) a subscription request, (2) an active subscription, and as a transient materialized view which will trigger the
(3) a change notification message: change detection mechanisms of view maintenance;
A subscription request is a regular (SQL) query with the parameter table stores metadata about the sub-
a special annotation1 which indicates the client’s intent to scribing client incl. a delivery address for the notifi-
cache the query result. cation message.
The database system processes the query as usual and DCN re-writes the query so that at run time parame-
returns the result. In addition, it registers the request to
notify the cache of potential query result changes. We refer ters are inserted into the parameter table (5) and the
to the successful registrations as active subscriptions. rewritten query is optimized as usual (6).
In case any database operation – ranging from DML During query execution, parameters are processed and
queries to maintenance or DDL operations – causes a stored (7) and query results returned as usual (8).
change to the query results, the database server sends a
change notification message to the subscriber. Note that during optimization only the support struc-
Figure 1 summarizes these concepts and relates them to tures are set up, i.e. the resulting query plan can be cached
the different components in a typical web application envi-
ronment. As the figure shows, web servers and and re-used exactly the way conventional query plans are
cache query results for queries ,
and , , respec-
cached.
tively. These subscriptions are reflected in the set of active
3.2 Change Detection and Notification
subscriptions at the database server. Let us now assume
that table which underlies
is updated and the result Figure 3 outlines the workflow for DCN processing in case
for
has changed. This fires notification messages for of DML operations such as INSERT, DELETE, UPDATE.
both copies of
’s result stored at
and
which Again, numbers in the text refer to labels in the figure.
need to be invalidated.
DCN analyzes the DML – submitted by clients – with
3 Workflow the materialized view framework (1, 2).
Database change notifications consist of a number of com- The QNM supplies the templates (corresponds to a
ponents inside the database system which are tightly inte- transient materialized view) (3, 4). The templates con-
grated with existing query processor technology.2 The key tain special operators which call the QNM at run time
1 No alteration of the SQL statement is actually necessary; the annota- to fire notifications.
tion is part of the protocol and can be controled through language exten-
sions in database programming environment such as ADO .NET
The optimizer combines/expands the plan as usual for
2 The central component is the Query Notification Manager (QNM),
materialized view maintenance (5).
implemented as part of the query optimizer. However, for clarity we de-
pict several internal components such as the subscription store as separate elements in the figures.
1276
Figure 3: Workflow for change detection and notification
Figure 2: Workflow for subscribing to a query result
The modified query plan computes deltas effectively
(1) pertaining to subscription requests and (2) operations
that might invalidate query results.
identifying parameter rows which contain the meta-
data needed for notification delivery and maintains the
4.1 Invalid Subscription Requests
DCN metadata in the parameter table (6).
DCN fires notifications (7) and returns results (8).
Not all SQL statements qualify as a subscription request.
For example, queries which reference non-deterministic
functions such as the random number generator rand()
The fact that all elements of the change detection are cannot be verified by a change detection mechanism. Fur-
part of the query plan ensures that firing the notification thermore, the complexity of the query might be such that
is part of the transaction of the DML statement. Moreover, change detection for incremental maintenance is unable to
like with the subscribing plan, the query plan for processing determine the changes. In these cases, DCN rejects the
changes can be cached. subscription request at query time and, instead of setting
up the template and parameter tables, sends a notification
4 Database Change Notifications & The Real to the client right away, notifying the subscriber about the
World failed request. The set of queries which are supported by
DCN is tightly coupled to the set of expressions for which
DCN utilizes a number of simple principles many of which materialized views can be generated.
have been used in another context such as change detec-
tion for materialized views. Implementing the feature in an
4.2 Invalidation through non-DML Statements
industry strength database system posed a number of addi-
tional challenges: Besides the two major scenarios, which While the dealing with invalid subscription requests could
we discussed in Section 3, DCN has to be integrated into leverage much of the existing technology for materialized
a multitude of database operations. In this section, we will views, taking into account all components which might af-
discuss what it means to implement a feature like DCN in fect query results has proven more difficult.
a commercial database system. Obviously, DCN needs to monitor DDL operations on
One of the major design considerations of DCN was that objects for which subscriptions are registered. Operations
it be as non-intrusive as possible. For example, we decided such as DROP TABLE must trigger invalidation of all sub-
not to expose DCN through SQL syntax to avoid that ex- scriptions that rely on this object and send appropriate no-
isting applications have to be rewritten. Rather, the sub- tifications. User DDL operations, such as disabling or even
scription request can be passed as a protocol annotation. removing an account, are more subtle examples: since the
Another desideratum is that the behavior of an application database system impersonates the subscriber when sending
should not be altered if DCN is activated. This means that the notification, sending notifications on behalf of a user
DCN cannot not simply raise errors and abort processing which has been removed from the system may pose a secu-
of a workload but has to fail gracefully. At the same time, rity thread. The correct action is to destroy all pending sub-
delivery guarantees have to be met. scriptions as part of the user DDL. Since DCN can consume
Analogous to the two principal workflows, we distin- significant server resources such as disk space or memory,
guish two categories of additional logic that is required: subscriptions are only valid for a given period of time after
1277
Figure 4: Screenshot with SQL Server tools showing DCN related data: (1) Graphical Showplan of DML query plan, (2)
profiler trace, (3) system table with subscriptions
which they are garbage-collected. Support structures such database. Tools such as Graphical Showplan let users ex-
as templates or parameter tables are garbage-collected with plore and troubleshoot queries which have been rewritten
a time delay to avoid thrashing if the time-out notification for change notifications (cf. Figure 4).
triggered the client to re-query immediately, i.e. parameter
tables are only destroyed after having been unused for a 6 Summary
grace period of 10 minutes. Finally, DCN needs to be ac-
counted for when it comes to disaster management: In case In this demonstration we show Database Change Notifica-
the server is brought down due to a power shortage or hard- tions as a core database server primitive to support granular,
ware failure, the validity of a subscription can no longer be consistent, and efficient mid-tier caching. Integrating this
guaranteed since the database files have not been under the functionality in the database server provides robustness and
server’s control during the down time. Therefore, at server efficiency that cannot be achieved through a client-based
start-up all notifications have to be purged from the system implementation outside the database.
so clients would re-query once the server is up and running Our demo application also shows the effective use of
again. various Microsoft technologies working together: DCN
for subscription and notification of changes; Service Bro-
ker for reliable routing and delivery of messages; and
5 System Demonstration ASP.NET for web page caching in the mid-tier.
This demonstration exercises the complete 3-tier architec-
ture built on Microsoft SQL Server 2005 as database sys- References
tem and ASP.NET as web application server and cache in- [1] K. S. Candan, D. Agrawal, W.-S. Li, O. Po, and W.-
frastructure. Using an online bookstore as running exam- P. Hsiung. View Invalidation for Dynamic Content
ple, we showcase the implementation of DCN and its inte- Caching in Multitiered Architectures. In Proc. of the
gration with the mid-tier layer. We demonstrate subscrip- Int’l. Conf. on Very Large Data Bases, pages 562–573,
tion processing including query and update plan rewrit- 2002.
ing, caching query results at the mid-tier, and invalidating
cached results through change notifications. Our applica- [2] P.-Å. Larson, J. Goldstein, and J. Zhou. MT-
tion illustrates how the query workload on the database Cache: Transparent Mid-Tier Database Caching in
server is reduced significantly when enabling DCN as com- SQL Server. In Proc. of the IEEE Int’l. Conf. on Data
pared to deploying the web service without caching. An- Engineering, pages 177–189, 2004.
other focus of the demonstration will be the tight coupling [3] Q. Luo, S. Krishnamurthy, C. Mohan, H. Pirahesh,
with the Microsoft SQL Server relational engine and the H. Woo, B. G. Lindsay, and J. F. Naughton. Middle-tier
integration of DCN with the standard toolsets of a com- database caching for e-business. In Proc. of the ACM
mercial database product: DCN can be monitiored and SIGMOD Int’l. Conf. on Management of Data, pages
tracked with Microsoft SQL Server Profiler trace events 600–611, 2002.
and Dynamic Management Views, i.e. system tables in the
1278