On Tue, Feb 28, 2012 at 7:15 PM, Yanni Chiu
<yanni@rogers.com> wrote:
On 28/02/12 11:03 AM, Norbert Hartl wrote:
I first used image persistence but the image grow to large. Then I added
fuel as journal to be written before image save in order to be able to
recover from an emergency.
Now we redo the persistence part. An account object graph is dissected
into configuration part and payload part. The payload is written
directly to mongo db in a Json format. The configuration part will be
written as fuel blob to mongo. Planned is that at startup a configured
amount of account fuel blobs are loaded and started. Those
configurations have their own proces ses that write back payload to
mongo. Etc.
That's similar to what I do, except no image save and no mongo db.
Here's how it goes:
- on restart the image reconstructs a Pier kernel saved via Fuel to a file
- included in the Pier kernel is what you're calling the "configuration part" - there are custom (non-std Pier) components here.
- the components in the reconstructed image can read/write a "payload" part, which is serialized to files using Fuel and SandstoneDb.
WOW. I didn't know there was a real user about that ;)
�
- additionally, a "sub-tree" of the Pier kernel can be exported to a file using Fuel serialization, and later imported using Fuel deserialization.
That's interesting!
�
No URL available at the moment.
Ok, let me know if you have one at some point in the future and I add it.
�
Aside - before Fuel/SandstoneDb, I was using Glorp/PostgreSQL. I've gained a lot of simplicity, but lost sequence numbers
Sequence numbers are the less thing you should care about since you can alwasy do it in image side ;)
and object caching (and maybe more things, that have not been a problem so far). I've written a seqno replacement, but the lack of object caching is not a problem at the moment (i.e. small data sets, so far).
Yes, object caching is NOT a problem itself, it is a feature of Glorp or whatever. If what you use (like Fuel) is slow, then it may require some tunning. It can be caching object or not. What I suggest is that you stress your system with big data sets and you will see if you really miss object caching or not.
�