Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • C cmsgemos
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 95
    • Issues 95
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 15
    • Merge requests 15
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • cmsgemonline
  • gem-daq
  • cmsgemos
  • Merge requests
  • !303

Use a lock-less and read-only LMDB address table

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Laurent Petre requested to merge feature/ro-filsystem into main Feb 10, 2023
  • Overview 0
  • Commits 4
  • Pipelines 1
  • Changes 5

Description

This MR proposes to access the LMDB address table for lookups in a lock-less and read-only fashion. The idea stems from cmsgemonline/gem-ops/gem-daq-doc#2 (closed) which requires mounting the /mnt/persistent CTP7 partition in read-only mode for safe operations. Even with the absence of a lock, the read-only nature of the LMDB lookups allows for concurrent safe accesses. Care has been taken to also ensure safe address table updates.

Related Issue

Required to implement cmsgemonline/gem-ops/gem-daq-doc#2 (closed)

How Has This Been Tested?

The address table can be created and used seamlessly in the CVP13 build. Pending tests in production on the CTP7.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: feature/ro-filsystem