Hi,
I'm looking forward to efficient, consistent(both atomic and in-order) chunck write on nvm. I have two questions to consult:
1. Is there any basic level atomicity on nvm? I have seen some papers saw nvm has atomic 8 byte writes. Is it true? If it's true, how does the 8-bytes come? It's due to a single 8-bytes store instruction of atomicity, or some otherwise reasons?
2. Is there any write patterns which can guarantee persistence order in practice? I know the main reason of out-of-order persistence is cache eviction. But if I ensure all writes in the same cache line? For example, for this codes:
void *addr = pmem_map_file(...); // addr is page size aligned
int* p = addr;
p[0] = 1;
p[1] = 2;
I'm wondering, if a power fail occurs, the result can be either p[0] = 0, p[1] = 0, or p[0] = 1, p[1] = 2, or p[0] = 1, p[1] = 0, but never be p[0] = 0, p[1] = 2. Is it true?
Thanks very much,
Tao