[Zope] Personalization strategies. And just what does Broadvision do ?

Pavlos Christoforou pavlos@gaaros.com
Thu, 23 Mar 2000 12:34:29 -0500 (EST)


On Fri, 24 Mar 2000, chas wrote:

> Just wondering if anyone has thought about personalization
> services based on Zope ? 
> 
> The most obvious/traditional approach seems to be :
> 1. Acquire user information (via forms/surveys/transaction-histories etc)
>    and store in RDB. 
> 2. When the user comes to the site (and either logs in or is identified 
>    by IP or cookie), query the RDB for customized content or appropriate
>    products. 
> 
> OK, no magic there. But it's not very scalable in terms of :
> a) Load. We can keep shoving Zope servers on the front end
>    but the RDB is going to get hammered if this has to occur
>    for each and every request. 


I was thinking of a general simple caching product for Zope, to use in
conjuction with FSSession for high load sites. A simple implementation is
to use an in memory python dictionary to hold marshalled or cPickled data.
Since the access times are fast we could use the asyncore classes that
come with python to achieve really high rates. The cache contents can be
served from a socket or a named pipe. A more difficult but more efficient
way is to use shared memory for IPC. As I don't expect two clients to
connect simultaneously with the same user id, write conflicts will be few
(I suppose writes will be few too).

In our environment I have found FSSession to be very fast, probably
because the OS caches files. If someone complains about FSSession's speed
I will code the caching product.


Pavlos