"I like the notion of using arrays to hold collections (efficiency (really cool paper), ease of access), but how do you incrementally migrate a collection from one array to another without blocking? By it's nature, you can't atomically update the entire array at one go. By the nature of concurrency, there can always be a 'late arriving writer' who wants to update the old array and isn't aware that a migration is in progress. If you let the writer's write proceed, you risk losing his update (classic hard problem in non-blocking algorithms: dropped update during a 'resize'). How do you get the late-writer's attention that something is going on, when (pretty much by definition) checking an unrelated volatile flag can't do the job?" - Jim Norris via Bookmarklet