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

Reply via email to