I have some curiosity about how others handle transactions and rollbacks when ingesting/updating objects and datastreams, using the RESTful API.
Here are the scenarios we encounter: 1. We create an object, then try to ingest a critical datastream (say, RELS-EXT, or DC). The datastream ingest fails. Do you then destroy the object? Do you mark it inactive? Some other flag to indicate it is in an inconsistent state? Or do you sweep your repo periodically, looking for objects in an inconsistent state? Do you handle non-critical datastream failures differently (say, an optional datastream?) 2. We create a parent object, then a series of child objects. One of the child objects fails to be created (perhaps because of a datastream ingest failure, as described above). Do you then destroy the entire tree of objects, as the whole hierarchy is now in an inconsistent state? Or do you somehow indicate in the parent object that its descendants are incomplete? Or, as above, do you regularly sweep the repo, and verify all the relations between objects, report dangling pointers? I'd be very interested to hear about practices that others have implemented in production that have worked well for them. thanks in advance, -- Scott -- Scott Prater Shared Development Group General Library System University of Wisconsin - Madison [email protected] 5-5415 ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60134071&iu=/4140/ostg.clktrk _______________________________________________ Fedora-commons-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/fedora-commons-users
