only use a single transaction per read/write even across arrays
optimize the last block like we do the first block on writes
add an API for making a read/write named snapshot