my system work most in a bulk, so performance and loading are very important.
I want to advice with you about one of the main functionality in the application - "import items"
I get items need to validate them and merge them (if new create else merge).
item is a complex graph of objects.
I don't love that layers depends on another layers and they are not stateless , but as far as i see it i have to have kind of cache (if the entity was loaded take it from the cache) for the process .
I think thread local can be a good platform for this cache.
Don't build what you can buy or get free. There are plenty of open-source cache implementations around (for instance JCS) and also plenty of commercial products like IBM's WebSphere eXtreme Scale and Oracle's Coherence that will probably work fine for you as a caching layer.
I'm not sure I understand how you'd plan to use the cache. Can you please elaborate? Thanks!
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Joined: Jan 10, 2007
In the beginning of the process load the data that needed.(can be a lot of entities type)
Store each entity type in its own map , and store all those map in the thread local.