the timestamp of any resource is mainly to avoid write conflict.
say user A reads a resource R and made some modifications to make it R'.
When A tries to persistent  R' , it has to make sure resource R has not
been changed by another concurrent user B.

This patch fixes potential bug when updating cube segments(especially in
2.x branches where streaming data ingestion is enabled, more frequent cube
updating is occurring)

the scenario is described by liyang:

- A read content
- B write content & timestamp
- A read timestamp* (notice A did not read timestamp and content at same
time, this is the root cause)*
- A write again which overwrite B without detection

if you're using versions prior to 2.0, it's fixing a bug that almost never
happened(in theory it can happen,but we have never seen it)



-- 
Regards,

*Bin Mahone | 马洪宾*
Apache Kylin: http://kylin.io
Github: https://github.com/binmahone

Reply via email to