The cache is either stored in a file or in volatile memory
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
pySAML2 |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Right now, when you instantiate a Client object it accept a persistent_cache argument. This is used to create a Population object which will use it to create a Cache object. When the argument reach this point the cache is either stored in a file or not persisted at all.
This cache thing is neccesary to perform the logout since this is the link in pysaml2 between a session initiated in the authenticate step and the logout process. But my problem is that being a file is not very efficient or robust when you have an SP used concurrently by a lot of users. How are the concurrent accesses to the cache file handled?
I would prefer to store that information in other places like a Memcache server. So if I instantiate a Client object and pass a persistent_cache object different than None, it should be treated as a Cache object and not as a filename or something like this.
Changed in pysaml2: | |
status: | New → Fix Released |
On 8/5/10 22:09, Lorenzo Gil Sanchez wrote:
> Public bug reported:
>
> Right now, when you instantiate a Client object it accept a
> persistent_cache argument. This is used to create a Population object
> which will use it to create a Cache object. When the argument reach this
> point the cache is either stored in a file or not persisted at all.
>
> This cache thing is neccesary to perform the logout since this is the
> link in pysaml2 between a session initiated in the authenticate step and
> the logout process. But my problem is that being a file is not very
> efficient or robust when you have an SP used concurrently by a lot of
> users. How are the concurrent accesses to the cache file handled?
>
> I would prefer to store that information in other places like a Memcache
> server. So if I instantiate a Client object and pass a persistent_cache
> object different than None, it should be treated as a Cache object and
> not as a filename or something like this.
>
Good idea !
So, we only have to decide which functionality a Cache object
should/must implement.
-- Roland