From b3be3b59f1145343f140b7c0b304938a3924ee30 Mon Sep 17 00:00:00 2001 From: Takayuki Tanabe Date: Thu, 15 Feb 2024 12:30:17 +0900 Subject: [PATCH] refactor: improve occ node verify project-tsurugi/tsurugi-issues#525 --- src/concurrency_control/include/local_set.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/concurrency_control/include/local_set.h b/src/concurrency_control/include/local_set.h index ee0b85e16..c50e225d7 100644 --- a/src/concurrency_control/include/local_set.h +++ b/src/concurrency_control/include/local_set.h @@ -326,6 +326,7 @@ class node_set { Status update_node_set(yakushima::node_version64* nvp) { std::lock_guard lk{get_mtx_set()}; for (auto&& elem : set_) { + // compare node version ptr if (std::get<1>(elem) == nvp) { yakushima::node_version64_body nvb = nvp->get_stable_version(); if (std::get<0>(elem).get_vinsert_delete() + 1 != @@ -402,9 +403,7 @@ class node_set { for (auto&& itr : get_set()) { auto old_id = std::get<0>(itr); auto current_id = std::get<1>(itr)->get_stable_version(); - if (old_id.get_vinsert_delete() != - current_id.get_vinsert_delete() || - old_id.get_vsplit() != current_id.get_vsplit()) { + if (!comp_ver_for_node_verify(old_id, current_id)) { return Status::ERR_CC; } }