reserve place then write to fix concurrency bug