isolation, not just during paging

Do we actually guarantee that PATCH and GET are isolated from each 
other?   We've talked about this problem with paging, but what about 
when you're not paging?

Scenario:

1.  http://example.org/products is a 100MB database of product information
2.  Alice does a GET, on a 0.5mbps connection, so it'll take 27 minutes 
to complete
3.  Just after she starts, Bob does a PATCH which modifies the product 
database in several places

Now does Alice still keep getting the representation of the resource at 
the time she started the GET?  That could be very expensive. What if 
there are lots and lots of Alices and Bobs?

Solutions:
  - the server can do some clever database tricks, maintaining many 
versions at once
  - the server can make Bobs wait a long time
  - the server can make a copy of the database for each Alice

I think the answer is YES, the server MUST do one of these (or something 
else clever to achieve isolation).   But I wanted to check....

What the server can't do is just have /products be a file, non-ACID 
database system, or ordinary in-memory structure.

       -- Sandro

Received on Tuesday, 10 June 2014 18:19:13 UTC