Hey,

I've been doing some tweaking of the MemoryEntityStore, and ran the performance tests. On my computer it can now create about 30k-40k entities per second if I do it in bulk, and 5k-15k if one-by-one. Obviously if you're going for performance then having as few UoW as possible is better.

Of course, this is only for doing writes. If you want to read any of the written Entities then you need to wait for all of the creates to actually be applied, which might take some time. Right now it's only done lazily on getEntityState. This needs to be enhanced with an eager background thread I think.

Also, both MemoryES and JDBMES use SerializableState, which used to be Serializable. An "empty" SerializableState previously took about 1000 bytes. With the change to a more optimized format using Externalizable it is now down to 150 bytes for a barebones SerializableState, which is much better. That should make the whole thing much more efficient to store.

There's still a loooot to be done with all of this, but so far I am happy with the improvements of the persistence refactoring.

/Rickard

_______________________________________________
qi4j-dev mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/qi4j-dev

Reply via email to