3 ms·
cynical answer: I've seen alot of races get "fixed" by adding a sleep() or similar less cynical answer: Commonly you already have some kind of means to handle
by ekimekim 12y ago
cynical answer: I've seen alot of races get "fixed" by adding a sleep() or similar
less cynical answer: Commonly you already have some kind of means to handle races - locking, transactions, some other variety of extra check - and the fix for newly discovered races is "oh, I didn't realise that could happen. add lock"
- hobarrera 12y agoIf you get three requests in at the same time, and sleep the tree for N (say, 400) miliseconds they'll all still run concurrently. Adding a random time to sleep might work, but some requests would run noticeably slower.
- MichaelGG 12y agoUnless the code is doing read-write-read. If you're using a system that doesn't reflect writes immediately (like Elasticsearch), waiting after the writes can give time for the system to flush and make the other writes visible then you can execute rollback logic. It'd be much better to make sure you're updating the same unique key and/or use the DB's conflict resolution system.