Hi Charles, I actually do this and keep them is a separate directory URI, but I keep the most current status available at all times while keeping a copy of each new status record for historical purposes. And they are small as you recommend.
If I didn't keep a current copy of the status, I'm not sure how I would be able to avoid contention for the latest record which I would still be required to access. It would avoid locking, but I wouldn't be guaranteed to get the latest copy of the status nor to keep it current when updating it. Admittedly I haven't looked into how to choose the transaction isolation. I suppose best and customary practices are dependent on system requirements, but can you provide an example of the implementation you describe? Thanks! Tim From: [email protected] [mailto:[email protected]] On Behalf Of Charles Greer Sent: Monday, February 25, 2013 12:40 PM To: [email protected] Subject: Re: [MarkLogic Dev General] Asyncronous Status Updates Hi Tim, To follow on what Damon's suggesting-- you might also want to make the status documents very small, such that each update is really an insert. We've seen this approach a lot; accessors will aggregate the status documents for examination, but each recorded fact is its own document. "A document is a row, not a table." No update locking contention in this scenario, and you can choose the transaction isolation or synchronous/asynch to address other requirements in the system. Partitioning these status documents from the rest of the database, by collection or directory, would help organize them.` Charles -- Charles Greer Senior Engineer MarkLogic Corporation [email protected] Phone: +1 707 408 3277 www.marklogic.com
_______________________________________________ General mailing list [email protected] http://developer.marklogic.com/mailman/listinfo/general
