We are happy users of the ASP.NET MVC and SQL Server infrastructure currently using LINQ-to-SQL. It meets our needs with a consumer-oriented application with approximately 1.4 million users and 2+ million active users per month.
We have long needed to register all user actions (article views, search queries on our website, etc.), and we are trying to use the right architecture for this.
We would like the archiving system to be its own essence, and not part of the main SQL cluster, which stores production articles and a search engine. We would like it to be its own SQL cluster, starting from the first window.
To simplify the problem, letβs say, we just want to register the search conditions that these millions of users enter on our site for a month, and we want to do this with at least an intensive cycle.
My questions are: (1) Is there an asynchronous way to dump search queries to a remote box? Does LINQ support async for this?
(2) Would you recommend creating a cache of 1000 entries (userId, searchTerm, date) in the RAM cache and then flushing them at intervals to the database? I assume that this method will reduce open / close connections.
Or am I thinking about this completely wrong? We want to strike a balance between ease of implementation and reliability.
source share