473,405 Members | 2,421 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,405 software developers and data experts.

Where to Cache "per user" Data That Can Get Updated By Admins

Is there any way for one Session to remove and update objects in another
Session? I seriously doubt it, but thought I'd ask. Here's why: I have some
data that is unique per user (or per session - similar to "welcome back,
Jim" after Jim logs in) and consumed across multiple pages. This "per user"
data lives in a database, so toward improving runtime performance I want to
cache data supporting this and similar per user features. Because the data
changes per user, output caching the page is out (at least I don't want to
cache per Custom right now). So, I'm looking at storing this per-user data
in either the Cache object or in Session state.

I think Session state would normally be the obvious choice - however - one
more important consideration that throws a wrench into that conventional
wisdom is that I need to let administrators of this application modify this
"per user" data - perhaps while users are online... so if the data is stored
in session, then the user would not get the new data until they establish a
new session... so now storing this data in the Cache seems to make sense
because it's relatively easy for any session to remove/update data in the
Cache.

So, given the requirements as described (and my somewhat limited knowledge
of ASP.NET), am I correct to conclude that this data should go into the
Cache and not Session? Are there alternatives to Cache and Session that
would make sense for this scenario?

Thanks!
Nov 18 '05 #1
4 2730
Yes (won't matter anyway if you shield this implementation detail from your
app by using an intermediate class). That said the requirement of having
those data updated by an admin while users are offline is reather unusual.
Is it really impossible to have this handled properly (you shouldn't store
data in the cache when they are not needed, it shouldn't be updated
directly).

Patrice

--

"Guadala Harry" <GM**@NoSpam.com> a écrit dans le message de
news:er**************@TK2MSFTNGP12.phx.gbl...
Is there any way for one Session to remove and update objects in another
Session? I seriously doubt it, but thought I'd ask. Here's why: I have some data that is unique per user (or per session - similar to "welcome back,
Jim" after Jim logs in) and consumed across multiple pages. This "per user" data lives in a database, so toward improving runtime performance I want to cache data supporting this and similar per user features. Because the data
changes per user, output caching the page is out (at least I don't want to
cache per Custom right now). So, I'm looking at storing this per-user data
in either the Cache object or in Session state.

I think Session state would normally be the obvious choice - however - one
more important consideration that throws a wrench into that conventional
wisdom is that I need to let administrators of this application modify this "per user" data - perhaps while users are online... so if the data is stored in session, then the user would not get the new data until they establish a new session... so now storing this data in the Cache seems to make sense
because it's relatively easy for any session to remove/update data in the
Cache.

So, given the requirements as described (and my somewhat limited knowledge
of ASP.NET), am I correct to conclude that this data should go into the
Cache and not Session? Are there alternatives to Cache and Session that
would make sense for this scenario?

Thanks!

Nov 18 '05 #2
Patrice,

Thanks for the response.

FWIW: rather unusual requirements happen all the time (that's why they pay
us the big bucks! - right!?)... and their presence and associated unusual
solutions don't necessarily imply that anything is being done improperly.
While I was somewhat vague in my OP, think about an app with security: an
admin can go in and modifies per-user permissions on something while users
are logged in. I currently have a security "gate keeper" class that will
ultimately provide up-to-the-nonosecond security - making the cached data
not so critical. But I'd like to make the user's experience a bit easier in
the case of such an unlikely scenario in which a user logs on and can access
something, and while the user is logged in, and admin comes in and changes
permissions on what that user can access. I'm just going the extra mile and
modifying what the user can see (which is cached as described in the OP)
before they get blocked by the security class. Just trynig to make the
user's experience a bit easier. I hope this makes sense.

Cheers!
"Patrice" <no****@nowhere.com> wrote in message
news:eB**************@TK2MSFTNGP11.phx.gbl...
Yes (won't matter anyway if you shield this implementation detail from your app by using an intermediate class). That said the requirement of having
those data updated by an admin while users are offline is reather unusual.
Is it really impossible to have this handled properly (you shouldn't store
data in the cache when they are not needed, it shouldn't be updated
directly).

Patrice

--

"Guadala Harry" <GM**@NoSpam.com> a écrit dans le message de
news:er**************@TK2MSFTNGP12.phx.gbl...
Is there any way for one Session to remove and update objects in another
Session? I seriously doubt it, but thought I'd ask. Here's why: I have some
data that is unique per user (or per session - similar to "welcome back,
Jim" after Jim logs in) and consumed across multiple pages. This "per

user"
data lives in a database, so toward improving runtime performance I want

to
cache data supporting this and similar per user features. Because the data changes per user, output caching the page is out (at least I don't want to cache per Custom right now). So, I'm looking at storing this per-user data in either the Cache object or in Session state.

I think Session state would normally be the obvious choice - however - one more important consideration that throws a wrench into that conventional
wisdom is that I need to let administrators of this application modify

this
"per user" data - perhaps while users are online... so if the data is

stored
in session, then the user would not get the new data until they establish a
new session... so now storing this data in the Cache seems to make sense
because it's relatively easy for any session to remove/update data in

the Cache.

So, given the requirements as described (and my somewhat limited knowledge of ASP.NET), am I correct to conclude that this data should go into the
Cache and not Session? Are there alternatives to Cache and Session that
would make sense for this scenario?

Thanks!


Nov 18 '05 #3
More precisely I wanted to stress that IMO those data shouldn't be updated
"directly" in the "user store" (even a cache). Instead changes should be
"posted" to the database and the control flow of the user page should take
care of reloading those data in the (expired) cache.

Anyway from a non technical point of view, I would still consider to take
these changes into account the next time the user logs. In particular it
could be quite annoying for users to see options appearing or disappearing
while they are working especially if the admin performs multiple changes (in
which case using the session is enough).

If for some reason you want to take this change immediately into account,
you'll have just to expire the cache and the user control flow will take
care of loading new data into the cache...

Patrice

--

"Guadala Harry" <GM**@NoSpam.com> a écrit dans le message de
news:OX**************@tk2msftngp13.phx.gbl...
Patrice,

Thanks for the response.

FWIW: rather unusual requirements happen all the time (that's why they pay
us the big bucks! - right!?)... and their presence and associated unusual
solutions don't necessarily imply that anything is being done improperly.
While I was somewhat vague in my OP, think about an app with security: an
admin can go in and modifies per-user permissions on something while users
are logged in. I currently have a security "gate keeper" class that will
ultimately provide up-to-the-nonosecond security - making the cached data
not so critical. But I'd like to make the user's experience a bit easier in the case of such an unlikely scenario in which a user logs on and can access something, and while the user is logged in, and admin comes in and changes
permissions on what that user can access. I'm just going the extra mile and modifying what the user can see (which is cached as described in the OP)
before they get blocked by the security class. Just trynig to make the
user's experience a bit easier. I hope this makes sense.

Cheers!
"Patrice" <no****@nowhere.com> wrote in message
news:eB**************@TK2MSFTNGP11.phx.gbl...
Yes (won't matter anyway if you shield this implementation detail from your
app by using an intermediate class). That said the requirement of having
those data updated by an admin while users are offline is reather unusual.
Is it really impossible to have this handled properly (you shouldn't store data in the cache when they are not needed, it shouldn't be updated
directly).

Patrice

--

"Guadala Harry" <GM**@NoSpam.com> a écrit dans le message de
news:er**************@TK2MSFTNGP12.phx.gbl...
Is there any way for one Session to remove and update objects in another Session? I seriously doubt it, but thought I'd ask. Here's why: I have

some
data that is unique per user (or per session - similar to "welcome back, Jim" after Jim logs in) and consumed across multiple pages. This "per

user"
data lives in a database, so toward improving runtime performance I want
to
cache data supporting this and similar per user features. Because the

data changes per user, output caching the page is out (at least I don't
want to cache per Custom right now). So, I'm looking at storing this per-user data in either the Cache object or in Session state.

I think Session state would normally be the obvious choice - however - one more important consideration that throws a wrench into that
conventional wisdom is that I need to let administrators of this application modify

this
"per user" data - perhaps while users are online... so if the data is

stored
in session, then the user would not get the new data until they

establish
a
new session... so now storing this data in the Cache seems to make sense because it's relatively easy for any session to remove/update data in

the Cache.

So, given the requirements as described (and my somewhat limited knowledge of ASP.NET), am I correct to conclude that this data should go into the Cache and not Session? Are there alternatives to Cache and Session that would make sense for this scenario?

Thanks!



Nov 18 '05 #4
What about putting " " in the span instead of text?

"Patrice" wrote:
More precisely I wanted to stress that IMO those data shouldn't be updated
"directly" in the "user store" (even a cache). Instead changes should be
"posted" to the database and the control flow of the user page should take
care of reloading those data in the (expired) cache.

Anyway from a non technical point of view, I would still consider to take
these changes into account the next time the user logs. In particular it
could be quite annoying for users to see options appearing or disappearing
while they are working especially if the admin performs multiple changes (in
which case using the session is enough).

If for some reason you want to take this change immediately into account,
you'll have just to expire the cache and the user control flow will take
care of loading new data into the cache...

Patrice

--

"Guadala Harry" <GM**@NoSpam.com> a écrit dans le message de
news:OX**************@tk2msftngp13.phx.gbl...
Patrice,

Thanks for the response.

FWIW: rather unusual requirements happen all the time (that's why they pay
us the big bucks! - right!?)... and their presence and associated unusual
solutions don't necessarily imply that anything is being done improperly.
While I was somewhat vague in my OP, think about an app with security: an
admin can go in and modifies per-user permissions on something while users
are logged in. I currently have a security "gate keeper" class that will
ultimately provide up-to-the-nonosecond security - making the cached data
not so critical. But I'd like to make the user's experience a bit easier

in
the case of such an unlikely scenario in which a user logs on and can

access
something, and while the user is logged in, and admin comes in and changes
permissions on what that user can access. I'm just going the extra mile

and
modifying what the user can see (which is cached as described in the OP)
before they get blocked by the security class. Just trynig to make the
user's experience a bit easier. I hope this makes sense.

Cheers!
"Patrice" <no****@nowhere.com> wrote in message
news:eB**************@TK2MSFTNGP11.phx.gbl...
Yes (won't matter anyway if you shield this implementation detail from

your
app by using an intermediate class). That said the requirement of having
those data updated by an admin while users are offline is reather unusual. Is it really impossible to have this handled properly (you shouldn't store data in the cache when they are not needed, it shouldn't be updated
directly).

Patrice

--

"Guadala Harry" <GM**@NoSpam.com> a écrit dans le message de
news:er**************@TK2MSFTNGP12.phx.gbl...
> Is there any way for one Session to remove and update objects in another > Session? I seriously doubt it, but thought I'd ask. Here's why: I have
some
> data that is unique per user (or per session - similar to "welcome back, > Jim" after Jim logs in) and consumed across multiple pages. This "per
user"
> data lives in a database, so toward improving runtime performance I want to
> cache data supporting this and similar per user features. Because the

data
> changes per user, output caching the page is out (at least I don't want
to
> cache per Custom right now). So, I'm looking at storing this per-user

data
> in either the Cache object or in Session state.
>
> I think Session state would normally be the obvious choice - however -

one
> more important consideration that throws a wrench into that

conventional > wisdom is that I need to let administrators of this application modify
this
> "per user" data - perhaps while users are online... so if the data is
stored
> in session, then the user would not get the new data until they

establish
a
> new session... so now storing this data in the Cache seems to make sense > because it's relatively easy for any session to remove/update data in

the
> Cache.
>
> So, given the requirements as described (and my somewhat limited

knowledge
> of ASP.NET), am I correct to conclude that this data should go into the > Cache and not Session? Are there alternatives to Cache and Session that > would make sense for this scenario?
>
> Thanks!
>
>



Nov 18 '05 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
by: Rob | last post by:
I need to allow a user with the default "Full Data User" permissions on the front-end database to relink to a table in a backend to which he has the same permissions. (I'd like to do read, update,...
3
by: Jeff Smythe | last post by:
I simply want to execute some code once when a new session of my ASP.NET application is started (I'm not using session state for anything else - just writing some data to a database). I thought...
1
by: fl | last post by:
I am running ASPNET on my local machine. I have a problem when I try to connect to a SQL server database table. The data looks good when I right click SqlDataAdapter1 to preview the data. When F5...
7
by: Randy Yates | last post by:
I'm a complete newbie to postgres so please look the other way if these questions are really stupid. Is it legitimate to have one database per data file? For organizational and backup purposes,...
5
by: Rob Kay | last post by:
Hello. I would like to know what is the easiest and safest way to extend the default MemberShip Provider for SQL Server 2005 to include additional user data (eg HomePhone, City, State etc). ...
5
by: Ryan | last post by:
Hello everyone, What is the best way to cache a 2.0 web part? I tried putting output cache on the user control in the part, but the output cache cannot be wrapped by a generic web part . . ....
0
by: sloan | last post by:
You should check out this post: http://forums.asp.net/thread/1225321.aspx maybe you re invented the wheel a little bit ( or maybe you had to, not sure).
2
by: Alex | last post by:
Hey Guys.. I'm just now starting to learn VB 2005, but I have a question that might help me in the long run. I hope to write applications which store user data, and without wanting the user to...
11
by: Jan | last post by:
Hi: Here's a problem I've had for a long time. The client is really running out of patience, and I have no answers. Access2003, front- and back-end. Single form with 4 subforms (each...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.