I am mainly using it the context of initially populating a database. So there 
isn't any danger of a race because there is only one user.

On Nov 5, 2012, at 12:47 PM, Jens Alfke <[email protected]> wrote:

> 
> On Nov 5, 2012, at 10:22 AM, Kevin Burton <[email protected]> wrote:
> 
>> I am calling CreateDocument<Document>() but I suspect that testing if the 
>> document exists first may perform better in the long run. I am using 
>> DreamSeat for my driver but I suspect other drivers have a similar "test". 
>> My problem is that I don't know what to test for and I am unfamiliar with 
>> the available methods. Any one successfully use such a pattern (preferably 
>> with DreamSeat) that tests for existence then creates if the document 
>> doesn't exist? Keep in mind I don't initially have an id. Thank you.
> 
> I don’t know anything about that particular API, but in general, 
> check-then-create doesn’t work well in a concurrent environment. It’s prone 
> to race conditions where something else creates the resource in between your 
> check call and your create call. (The canonical example is checking whether a 
> file exists, then creating the file, which is a classic old security hole in 
> privileged Unix tools.)
> 
> —Jens

Reply via email to