1. A method for building a concurrent data structure in a form of a ranked register, RR, wherein rr-read and rr-write operations are defined within the RR, each of the rr-read operations takes a rank as argument and returns a rank-value pair, each of the rr-write operations takes a rank-value pair as argument and returns either commit or abort, each of the rr-read operations returns a rank-value pair that was written in a previous rr-write operation, one of the rr-write operations W=rr-write(r_ 1 , v) commits and one of the rr-read operations R=rr-read(r_ 2 ), such that r_ 2 >r_ 1 , R returns (r′,v′), wherein r′>=r_ 1 , wherein v and v′ are values, and wherein r′, r_ 2 and r_ 1 are ranks, based on a rr-write operation W invoked with rank r_ 1 aborting, invoking one of the rr-read or rr-write operations with rank r_ 2 >r_ 1 before W returns, and based on one of the rr-read or rr-write operations being invoked by a non-faulty process, eventually returning the one of the rr-read or rr-write operations invoked by the non-faulty process, that the method comprising: building of the RR based on a Compare-And-Swap, CAS, functionality so as to store increasing versions of values within data objects and to ensure that newer values are never overwritten with older ones.