Writing an object graph into a no-sql database [WAS] Re: [Seaside] ESUG SummerTalk - Fuel, binary object serializer

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

Writing an object graph into a no-sql database [WAS] Re: [Seaside] ESUG SummerTalk - Fuel, binary object serializer

Mariano Martinez Peck


I am looking at using Riak ( http://wiki.basho.com/ ) with Pharo. When
storing a “business object” you  have two choices:

-       Store a binary BLOB representing your object graph.
-       Store the object graph as JSON data.

The last option essentially means you must do something similar to OR
mapping, so I would prefer the first option. With Riak, you will soon
be able to store additional indexed properties, which you later will
be able to query. So you store your whole business object as a BLOB,
together with those properties you need to query.


Hi guys. Sorry to come back with this old post, but now I am interested ;)

Right now, I have a requirement where I need to write a graph into a file. I am using Fuel for that. Each graph, has its own file. In the image side I just store the filename,  When I need to load it it reads such file and materialize it with Fuel. I was thinking going a step forward and use a key/value (a.k.a no-sql) database. 

With Fuel, I can take a graph, and serialize directly into a ByteArray, hence I can take a graph to swap, I assign an ID, and and save it into the database. In the image side, I keep that ID. Then, when needed, I search it in the database and then after with that ByteArray found, I materialize it with Fuel.

So...first question is, do you think that could be faster/better than directly writing into a file as I am doing now?

Now, which are the available Pharo wrappers for no-sql databases that let me do that?   I would appreciate any link or documentation about them. What do I need to use such databases from Pharo? FFI and a library installed in my machine?  are there binaries for Mac OS?

Thanks in advance,


--
Mariano
http://marianopeck.wordpress.com


_______________________________________________
Esug-list mailing list
[hidden email]
http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org
Reply | Threaded
Open this post in threaded view
|

Re: Writing an object graph into a no-sql database [WAS] Re: [Seaside] ESUG SummerTalk - Fuel, binary object serializer

drush66
On Fri, Aug 5, 2011 at 11:57 AM, Mariano Martinez Peck
<[hidden email]> wrote:

>
>>
>> I am looking at using Riak ( http://wiki.basho.com/ ) with Pharo. When
>> storing a “business object” you  have two choices:
>>
>> -       Store a binary BLOB representing your object graph.
>> -       Store the object graph as JSON data.
>>
>> The last option essentially means you must do something similar to OR
>> mapping, so I would prefer the first option. With Riak, you will soon
>> be able to store additional indexed properties, which you later will
>> be able to query. So you store your whole business object as a BLOB,
>> together with those properties you need to query.
>>
>
> Hi guys. Sorry to come back with this old post, but now I am interested ;)
>
> Right now, I have a requirement where I need to write a graph into a file. I
> am using Fuel for that. Each graph, has its own file. In the image side I
> just store the filename,  When I need to load it it reads such file and
> materialize it with Fuel. I was thinking going a step forward and use a
> key/value (a.k.a no-sql) database.
>
> With Fuel, I can take a graph, and serialize directly into a ByteArray,
> hence I can take a graph to swap, I assign an ID, and and save it into the
> database. In the image side, I keep that ID. Then, when needed, I search it
> in the database and then after with that ByteArray found, I materialize it
> with Fuel.
>
> So...first question is, do you think that could be faster/better than
> directly writing into a file as I am doing now?
>
> Now, which are the available Pharo wrappers for no-sql databases that let me
> do that?   I would appreciate any link or documentation about them. What do
> I need to use such databases from Pharo? FFI and a library installed in my
> machine?  are there binaries for Mac OS?

I am not a big expert, but here is what I know. Firstly most NoSQL
databases expose their interface through network, for instance CouchDB
uses standard HTTP. So in order to spek to CouchDB you just need http
client library, and optionally some helper around it, there are a few
such packages on sqeaksource.

I would not expect typical NoSQL database outperform your approach on
single machine setup, since they have many overheads you do not have
like network, json parsing, etc.

Situation in which they would make sense is where you need to access
your objects from more than one machine, need indexing on various
fields in the stored objects, load balanced servers and mirroring.

Davorin Rusevljan
http://www.cloud208.com/

_______________________________________________
Esug-list mailing list
[hidden email]
http://lists.esug.org/mailman/listinfo/esug-list_lists.esug.org