If thats true, I should be able to do inserts into the splayed table on disk while queries are running, because these changes are not visible to the reader until it remaps the table. It requires that I rewrite my application to not need updates, but for such a benefit it may be worth it.
The problem lies in the fact that even though readers do not see the updates until they remap, you cannot guarantee that they remap at the right time -- they might be free and remapping the database while the writer is still writing half-way. In this sense, some additional synchronization is still required. The red-blue approach I mentioned earlier, OTOH, was tested and working without the need to join results from two different copies -- still it was a bit tricky to implement.