[Seaside] magma as a multimedia database backend for seaside application

William Harford seaside at harford.org
Fri Sep 8 14:02:46 UTC 2006


On Sep 8, 2006, at 8:37 AM, Martin Schubert wrote:

My first suggestion would be to store the files on the file system.  
If you are dealing with files bigger than thumbnails speed might be a  
problem. I for one would love to see storing files in a database be  
practical but it rarely is.

I am not sure what you mean by as more "and more sessions are used".  
You should only have one session per user.

I am assuming you are storing a MIMEDocument in the database. While I  
am not sure how the Magma drivers work I am going to assume that  
Magma brings in MIMEDocument's ivar content once MIMEDocument is  
referenced. content then , most likely, will stay in memory until  
MIMEDocument is not referenced anywhere in your image and/or you  
clean Magma's caches.
Again I am not sure how the Magma drivers work in this case someone  
else on this list might be better able to fill you in.

You might want to subclass MIMEDocument and change the way #content  
and #privateContent: work so that they store the contents of the file  
somewhere else (like a file on the filesystem) and not in a ivar.  
That way you can read the contents when #content is called and  
quickly forget about it like ....

    contents
	| file contents |

	file := ((FileDirectory on: fileLocation)  fileNamed: (pxxOID  
asString)).
	contents :=  file binary; contents.
	file close.
	^contents.

There also might be a way to tell the Magma driver to forget about an  
ivar until it is accessed again.

Will

> hello out there,
> i a struggling with using the magma-seaside extension as a  
> multimedia database backend for my seaside application.
> i don`t want the files to be located on the os filesystem. as  
> anybody can imagine: when i am loading a list of entries (whereas  
> each entry has a mimeDocument instance) into the WAMagmaSession the  
> image size explodes as more and more sessions are used.
> there is especially one problem i am facing :
>    i need a possibillity that the mimeDocument instance of each  
> listed entry is only loaded into the local cache (or  
> WAMagmaSession) when there is an explicit request in doing so. when  
> an anchor is clicked or something like that.
> any suggestions or experience on a topic like that?
>
> martin
> _______________________________________________
> Seaside mailing list
> Seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside



More information about the Seaside mailing list