1. A computer-implemented method, comprising: associating a plurality of locks with a data object accessed concurrently by a plurality of threads, wherein each lock of the plurality of locks corresponds to a respective partition of a plurality of partitions of the data object; in response to an indication that a first non-blocking transaction corresponding to a set of operations of a particular thread of the plurality of threads failed to complete, wherein the first non-blocking transaction accessed at least one of the plurality of locks and did not acquire any of the plurality of locks, acquiring a set of locks of the plurality of locks in an other non-blocking transaction of the particular thread, wherein the set of locks corresponds to a set of partitions of the plurality of partitions expected to be accessed in the set of operations; performing the set of operations; and releasing the set of locks.