magma as a multimedia database backend for seaside application

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

magma as a multimedia database backend for seaside application

Martin Schubert
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
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: magma as a multimedia database backend for seaside application

William Harford

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
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: magma as a multimedia database backend for seaside application

Martin Schubert
hey will,
thanks for your hints. i will try out your suggestions with rewriting
the contents method of MIMEDocument to the Filesystem, although i don`t
like this approach but could`nt really find something better. if it
works i will post some feedback on it.
best regards
maritn

>
> 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
>> [hidden email]
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>
> _______________________________________________
> Seaside mailing list
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>

_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside