I've just come up against a new problem (for me) and after some reading around on the net I'm still a little unsure what the correct solution is.

My problem is I have 1000 products going live for sale at a specific time of the day and there could be anything from 2000 to 3000 people on my site waiting for that split second they go live to purchase them.

What I need to do is when customer 1 searches for availability on 7 products it needs to first of all check if there are 7 products with a status of available, if it finds them then it needs to update their status to pending and time stamp them as they will have 4 minutes to purchase before the products are released for other user to buy them.

Doing the select and update queries is not a problem, the problem for me is that when there are so many users all trying to purchase at the same time that once customer 1 finds available products they are instantly updated to pending before anyone else can find them as available.

Does the "start transaction" function take care of this?