"process A reads only partial data from the record the CPU time goes to process B that completes the write action now process A runs and completes the query so the data process A receives is not complete. (some old and some new)"
Fortunately this does not happen with databases. A row is read completely before another thread/process is allowed to modify it (and vice verce).
One problem you will have with your scenario is table locking. While your batch update is running, the table will be locked most of the time and data retrieval will be really slow. A row that is being updated cannot be read.
The snapshot/update/switch approach you mentioned in your original post might be the best approach.