bdii

Berkeley Database Information Index

https://github.com/egi-federation/bdii

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.0%) to scientific vocabulary

Keywords

bdii cloud database grid information
Last synced: 4 months ago · JSON representation

Repository

Berkeley Database Information Index

Basic Info
  • Host: GitHub
  • Owner: EGI-Federation
  • License: apache-2.0
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 908 KB
Statistics
  • Stars: 8
  • Watchers: 7
  • Forks: 7
  • Open Issues: 2
  • Releases: 7
Topics
bdii cloud database grid information
Created about 9 years ago · Last pushed 5 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Codeowners Authors Codemeta

README.md

BDII

Documentation: bdii.readthedocs.io.

Function

The Berkeley Database Information Index (BDII) consists of two or more standard LDAP databases that are populated by an update process. Port forwarding is used to enable one or more databases to serve data while one database is being refreshed. The databases are refreshed cyclically. Any incoming connection is forwarded to the most recently updated database, while old connections are allowed to linger until it is the turn of their database to be refreshed and restarted. The update process obtains LDIF from either doing an ldapsearch on LDAP URLs or by running a local script (given by a URL with "file" protocol) that generates LDIF. The LDIF is then inserted into the LDAP database. Options exist to update the list of LDAP URLs from a web page and to use an LDIF file from a web page to modify the data before it is inserted into the database.

Cache use

Whenever a remote server is contacted and the ldapsearch command times out the update process tries to find an (old) cached entry in the /var/cache/ directory. If no entry is found a message is printed to the logfile.

Attention! If the remote host cannot be contacted due to a connection problem no cached entry is taken. No message is printed to the logfile.

Compressed Content Exchange Mechanism (CCEM)

The Compressed Content Exchange Mechanism is intended to speed up the gathering of information in case of a ldapsearch to another BDII instance. The update process first tries to find the entry containing the compressed content of the queried instance and subsequently adds the information to its upcoming database. If the CCEM fails the normal procedure as described in the previous paragraph is executed. The CCEM function is enabled by default in version >= 3.9.1. To disable, add the following to your bdii.conf:

shell BDII_CCEM=no

BDII Status Information Mechanism (BSIM)

The BDII Status Information Mechanism is intended to allow better monitoring possibilities, spotting of upraising problems and resulting error prevention. It adds status information about the BDII instance into the o=infosys root containing metrics like the number of entries added in the last cycle, the time to do so, etc. The description of those metrics can be found in the etc/BDII.schema file.

Installing from source

shell $ make install

  • Build dependencies: None
  • Runtime dependencies: openldap, python3

Installing from packages

On RHEL-based systems

For RHEL-based systems, it's possible to install packages from two sources:

On debian

Official debian packages are maintained by Mattias Ellert.

Building packages

Building a RPM

The required build dependencies are:

  • rpm-build
  • make
  • rsync
  • systemd-rpm-macros, for RHEL >= 8

```shell

Checkout tag to be packaged

$ git clone https://github.com/EGI-Federation/bdii.git $ cd bdii $ git checkout X.X.X

Building in a container

$ docker run --rm -v $(pwd):/source -it quay.io/centos/centos:7 [root@2fd110169c55 /]# yum install -y rpm-build make rsync [root@2fd110169c55 /]# cd /source && make rpm ```

The RPM will be available into the build/RPMS directory.

Building a deb

Debian build files maintained by Mattias Ellert are available in the Debian Salsa GitLab.

Preparing a release

  • Prepare a changelog from the last version, including contributors' names
  • Prepare a PR with
    • Updating version and changelog in CHANGELOG and bdii.spec
    • Updating codemeta.json, if needed
  • Once the PR has been merged tag and release a new version in GitHub
    • Packages will be built using GitHub Actions and attached to the release page

History

This work started under the EGEE project, and was hosted and maintained for a long time by CERN. This is now hosted here on GitHub, maintained by the BDII community with support of members of the EGI Federation.

Owner

  • Name: EGI Federation
  • Login: EGI-Federation
  • Kind: organization
  • Email: contact@egi.eu
  • Location: Science Park, Amsterdam, The Netherlands

Advanced Computing for Research

CodeMeta (codemeta.json)

{
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
  "@type": "Code",
  "name": "Berkeley Database Information Index (BDII)",
  "description": "The BDII implementation of the information",
  "provider": {
    "@type": "Organization",
    "name": "",
    "url": ""
  },
  "maintainer": [
    {
      "@type": "Person",
      "@id": "https://orcid.org/0000-0002-5686-3193",
      "name": "Baptiste",
      "familyName": "Grenier",
      "affiliation": {
        "@type": "Organization",
        "name": "EGI Foundation",
        "url": "https://www.egi.eu"
      }
    },
    {
      "@type": "Person",
      "@id": "https://orcid.org/0000-0002-5152-5902",
      "name": "Enol",
      "familyName": "Fernndez",
      "affiliation": {
        "@type": "Organization",
        "name": "EGI Foundation",
        "url": "https://www.egi.eu"
      }
    },
    {
      "@type": "Person",
      "@id": "https://orcid.org/0000-0001-7949-2199",
      "name": "Andrea",
      "familyName": "Manzi",
      "affiliation": {
        "@type": "Organization",
        "name": "EGI Foundation",
        "url": "https://www.egi.eu"
      }
    },
    {
      "@type": "Person",
      "@id": "https://orcid.org/0000-0001-5265-3175",
      "name": "Mattias",
      "familyName": "Ellert",
      "affiliation": {
        "@type": "Organization",
        "name": "Uppsala Universitet",
        "url": "https://www.physics.uu.se"
      }
    },
    {
      "@type": "Role",
      "roleName": "Security and Vulnerability",
      "url": ""
    }
  ],
  "operatingSystem": [
    "centos 7",
    "centos 8",
    "centos 9"
  ],
  "installUrl": "https://github.com/EGI-Federation/glite-info-update-endpoints/releases",
  "buildInstructions": "http://gridinfo-documentation.readthedocs.io/",
  "releaseNotes": "",
  "codeRepository": "https://github.com/EGI-Federation/bdii",
  "contIntegration": "https://travis-ci.org/EGI-Federation/bdii",
  "networkStack": "",
  "supportUnit": {
    "@type": "contactPoint",
    "contactType": "GGUS",
    "name": "Information System Development"
  },
  "developmentStatus": "supported",
  "author": [],
  "citation": "",
  "dateCreated": "",
  "dateModified": "",
  "keywords": [
    "grid",
    "information",
    "index"
  ],
  "license": "Apache-2.0"
}

GitHub Events

Total
  • Delete event: 1
  • Push event: 1
  • Pull request review event: 1
  • Pull request event: 2
  • Create event: 2
Last Year
  • Delete event: 1
  • Push event: 1
  • Pull request review event: 1
  • Pull request event: 2
  • Create event: 2

Dependencies

.github/workflows/build.yml actions
  • actions/checkout v3 composite
  • actions/download-artifact v3 composite
  • actions/upload-artifact v3 composite
.github/workflows/check-links.yml actions
  • actions/checkout v3 composite
  • gaurav-nelson/github-action-markdown-link-check v1 composite
.github/workflows/lint.yml actions
  • actions/checkout v3 composite
  • docker://ghcr.io/github/super-linter slim-v4 composite
.github/workflows/release.yml actions
  • actions/checkout v3 composite
  • actions/download-artifact v3 composite
  • actions/upload-artifact v3 composite
  • softprops/action-gh-release v1 composite