Home All Groups Group Topic Archive Search About

data cache invalidation: the old sql 2000 polling way or the new sql 2005 notification way?

Author
12 Nov 2007 7:05 AM
JX
about "SqlDependency changes for RTM", in
http://blogs.msdn.com/dataaccess/archive/2005/09/27/474447.aspx,

Sushil Chordia wrote:



"Push Model to Pull Model

In Beta2 we had an HTTP/TCP listener that was active on the client that
would listen on changes pushed by the server. The client for the first time
acting as a listener added additional level of complexity. It was difficult
to get the firewall set up right. Also, both the HTTP/TCP opened ports that
were not secure.

In RTM, we have static method on SqlDependency called Start that

opens a new non-pooled connection

creates a new queue with a unique name is created

creates a new service with a unique name is created for that queue

creates a new procedure is created on the server to clean up the transient
queue and service created in case the client is no longer listening

listens on the newly created queue for change notifications.

One thing to note that there is only one connection that is opened per
process (even if there are multiple calls to the default Start() method).
This connection then pulls the change notification from the server queue and
raises the appropriate event."





So now the new notification model is using pull modal, then what is the
difference between the notification model and the old sql 2000 polling
model?  Does not "pull" and "poll" mean the same thing?



If both pull and poll mean the same, then which one will have performance
advantage? The consideration is, in polling model, the polling has to be
done continuous once in a while. In push model, then this continuous polling
will be saved. But if now it's pull, does this "saving" still hold true?



The word "notification" means instantaneous,  while the word "poll" means
latency. Now the notification model also uses "pull", then is
"instantaneous" still maintained?



There is another issue related to the choosing of  which cache invalidation
model to use. The old sql 2000 polling model is easier to incorporate into
current 3- tier structure(data access layer, business layer), while the
notification model is not so easy, and is only specific to MS SQL 2005. I
would also like to hear any comments on this issue.

AddThis Social Bookmark Button