Skip to content

PBS-6 feature: Rework storage layer abstractions to support simultaneous reads and writes (part 3) - #190

Merged
percona-ysorokin merged 1 commit into
Percona-Lab:mainfrom
percona-ysorokin:mt_storage_mutex
Sep 23, 2026
Merged

percona-ysorokin merged 1 commit into
Percona-Lab:mainfrom
percona-ysorokin:mt_storage_mutex

Conversation

@percona-ysorokin

Copy link
Copy Markdown
Collaborator

https://perconadev.atlassian.net/browse/PBS-6

Implemented the most straightforward locking strategy for 'binsrv::storage_core'.

  • Added an instance of the 'std::shared_mutex' to the 'binsrv::storage_core' class.
  • Public const methods are now protected with 'std::shared_lock'.
  • Public mutable methods are now protected with 'std::unique_lock'.
  • For public methods that are called from other public methods introduced its 'xxx_unsafe()' version to avoid double locking.
  • Removed 'noexcept' qualifier from methods that create 'std::unique_lock' / 'std::shared_lock'.
  • Public const methods that return data that is initialized only once during object construction left without locks.
  • Some methods that used to return references to internal objects now return by value to achieve thread-safety guarantees.

…ous reads and writes (part 3)

https://perconadev.atlassian.net/browse/PBS-6

Implemented the most straightforward locking strategy for
'binsrv::storage_core'.
* Added an instance of the 'std::shared_mutex' to the
  'binsrv::storage_core' class.
* Public const methods are now protected with 'std::shared_lock'.
* Public mutable methods are now protected with 'std::unique_lock'.
* For public methods that are called from other public methods
  introduced its 'xxx_unsafe()' version to avoid double locking.
* Removed 'noexcept'  qualifier from methods that create
  'std::unique_lock' / 'std::shared_lock'.
* Public const methods that return data that is initialized only once
  during object construction left without locks.
* Some methods that used to return references to internal objects now
  return by value to achieve thread-safety guarantees.
@percona-ysorokin
percona-ysorokin merged commit 18d3290 into Percona-Lab:main Sep 23, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant