Java Mailing List Archive

http://www.junlu.com/

Google
Google
Mailing List
Home
Forum Home
JBoss - Java Application Server
Struts - A MVC web framework
Tomcat - JSP/Servlet container
iText - An open source PDF Java Library
JDOM - JDOM XML Parser
J2EE - A mailing list for Java(tm) 2 Platform, Enterprise Edition
J2EE Pattern - An interest list for Sun Java Center J2EE Pattern Catalog
Servlet - A mailing list for discussion about Sun Microsystem's Java Servlet API Technology
JSP - A mailing list about Java Server Pages specification and reference
Struts & Hibernate
Subjects
JSP editor plugin for eclipse ?
org apache jasper JasperException: Unable to compile class for JSP
Tomcat: Connection reset by peer: socket write error
Cannot retrieve definition for form bean null
Struts Tiles Tutorial (free Struts training)
Where do I download Tomcat 4 0 6?
Data Access Object (DAO) pattern, example DAO 's
Where to download Tomcat v 4 1 24 from?
Tomcat 5 0 16 Requested resource not available
Oracle Connection Pooling in 3 2 2
Servlet : Session invalidate
Servlet action is currently unavailable
Tomcat/Struts Unicode Encoding/Decoding problems
Tomcat and webapplication specific java library path
Running a Simple JMS Example
Mapping in workers2 properties
org apache jasper JasperException
Cannot find message resources under key org apache struts action
   MESSAGE
problem with html:text bean throwing exception
Cannot find message resources under key org apache struts action MESSAGE
invalid direct reference problem with solution
Tool for jsp debug Try Sysdeo Eclipse Plugin
Tomcat 5 Cannot load JDBC driver class 'null ' SQL state: null
weblogic ejbc
java properties file
Jboss 3 2 3 Coyote Can 't re
Tomcat 5, Apache2 and mod jk2 integration problem
JBoss example problem new to J2EE
url string for connecting jboss to oracle
Value attribute of <html:checkbox
javax servlet ServletException: BeanUtils populate
HTTP Status 404 The requested resource is not available
5 0 18: Windows XP Pro vs Windows 2000
 
Shared cache best practices?

Shared cache best practices?

2004-01-07       - By Damon Hart-Davis

 Back
Reply:     1     2     3     4     5     6     7     8     9     10     >>  

Hi Erik,

One technique that I'm using at the moment is to have the back-end data in
EJBs as usual, but to have a wrapper layer round it which holds a cache in a
static variable (ie at most one per Web server usually).  This cache is
write-through (ie updates go through the cache immediately to the EJBs) and
reads are from the cache as long for up to a configurable cache lifetime.  I
am prepared to have different cache users get slightly out of sync (by the
number of seconds that I configure for the cache lifetime) for
performance/scalability in a distributed system.  Each client gets to cache
just the data that it needs to read.

Because the data in question is pretty uniform (essentially a glorified
properties map for configuration data) the wrapper layer takes only about a
page of code.

(Note that the cache lifetime is itself a property in this cache in this
case.  B^>)

Rgds

Damon


-- -- Original Message -- --
From: "Erik Beijnoff" <erik@(protected)>
To: <J2EE-INTEREST@(protected)>
Sent: Wednesday, January 07, 2004 3:34 PM
Subject: Shared cache best practices?


Im facing a situation where my web server holds a rather extensive cache
that is retrieved from a database. I'm seeking a way to be able to connect
as many web servers as I'd like to that database and let each server be
notified of the updates to the database so that they can keep their caches
up to date. I'm looking for best practices in this area.

I'm aware of that one of the possibilities would be to put the cache on a
common machine that all web servers access. However, this is not quite the
solution I am looking for. The cache does not need to be same for all
servers. On the contrary actually. The system is structured in such a
fashion that each web server only holds in it's cache the information that
is requested on that particular server for the moment. This could mean that
each web server has completely different things in their caches. What I'm
looking for is a signaling system that tells all web servers that are using
that particular database that the data has changed in the database so that
they can invalidate that particular portion of their caches so that it can
be reread at the next request.

I suppose that keeping a separate cache server going also would create a
somewhat rather large amount of overhead, granted, it would though be easier
to gurantee consistency.

One of the options that I'm pondering would be a registration and
deregistration process in a table in the database whenever a new web server
connects to the it, and then let the servers signal updates to all the
others through http or RMI or some other suitable method.

Or is this one of those magic moments where EJB actually would make sense?

Regards Erik Beijnoff

===========================================================================
To unsubscribe, send email to listserv@(protected) and include in the body
of the message "signoff J2EE-INTEREST".  For general help, send email to
listserv@(protected) and include in the body of the message "help".

===========================================================================
To unsubscribe, send email to listserv@(protected) and include in the body
of the message "signoff J2EE-INTEREST".  For general help, send email to
listserv@(protected) and include in the body of the message "help".



©2008 junlu.com - Jax Systems, LLC, U.S.A.