Coder Social home page Coder Social logo

stroboscope / reopenldap Goto Github PK

View Code? Open in Web Editor NEW

This project forked from erthink/reopenldap

0.0 2.0 0.0 19.32 MB

aka "Telco LDAP" - the rework of well-known OpenLDAP with a lot of heisenbugs fixing, mostly for replication.

Home Page: https://github.com/ReOpen/ReOpenLDAP/wiki

License: Other

Makefile 11.11% Shell 9.13% Roff 0.25% C++ 1.45% C 76.34% M4 1.52% Perl 0.10% PLSQL 0.10%

reopenldap's Introduction

ReOpenLDAP is...

  1. Also known as "TelcoLDAP" - is the telco-oriented fork of OpenLDAP.
  2. A number of new features, most of which deal with highload and multi-master clustering.
  3. Bug fixing and code quality improvement.

But no Windows, Mac OS, FreeBSD, Solaris or HP-UX; just only Linux!

Build Status

ReOpenLDAP is currently running in telcos across Russia:
  • Several 2x2 multi-master clusters
  • Up to ~100 million records, up to ~100 GB of data
  • Up to ~10K updates per second, up to ~25K searches

No other LDAP server can provide this level of performance now (due to replication failures, inadequate performance or high risk of a crash).

ReOpenLDAP preamble

We consider that the original OpenLDAP project was failed due the following reasons:

  • disregard for support by community and code clarity.
  • giant technical debt and incredible low code quality.
  • unreasonable desire to support the wide range of an obsolete archaic systems and compilers.

Change List

Below is a list of changes made within the ReOpenLDAP project. For a description of the new features, please see the man page for slapd.conf. For the changes merged from OpenLDAP project, please see the CHANGES.OpenLDAP file.

Features (major):

  • multi-master replication is working properly and robustly (it seems no other LDAP server can do this)
  • reopenldap [iddqd] [idkfa] [idclip]
  • quorum { [vote-sids ...] [vote-rids ...] [auto-sids] [auto-rids] [require-sids ...] [require-rids ...] [all-links] }
  • quorum limit-concurrent-refresh
  • biglock { none | local | common }
  • storage (mdbx): dreamcatcher & oom-handler (ITS#7974)
  • storage (mdbx): lifo & coalesce (ITS#7958)
  • storage (mdbx): steady & weak datasync
  • bundled with all known contributed modules/overlays/plugins

Features (minor):

  • syncprov-showstatus { none | running | all }
  • crash-backtrace on|off
  • coredump-limit <mbytes>
  • memory-limit <mbytes>
  • checkpoints by volume-of-changes and periodically in seconds
  • syncrepl's requirecheckpresent option
  • keepalive <idle>:<probes>:<interval> for incoming connections
  • built-in memory checker, including ls-malloc
  • ready for AddressSanitizer and Valgrind
  • ready for LTO (Link-Time Optimization) by GCC and clang
  • support for OpenSSL 1.1.x, Mozilla NSS, GnuTLS and LibreSSL 2.5.x

Fixes:

  • all from openldap/master and openldap/2.4 branches
  • a lot for replication, especially for multi-master
  • removed ~5K warnings from GCC/clang
  • removed ~1K warnings from ThreadSanitizer (a data race detector)
  • removed most of memory leaks (tests could be passed under Valgrind)
  • checked with PVS-Studio static analyser, see details
  • Coverity Scan Build Status

reopenldap's People

Contributors

abbra avatar bjencks avatar brettsheffield avatar cbueche avatar chipitsine avatar djpohly avatar erthink avatar fcelda avatar hamano avatar heirecka avatar hfuru avatar hgschmie avatar hyc avatar ixpict avatar jtlayton avatar lmb avatar lukeyeager avatar marschap avatar mikkoau avatar mistotebe avatar mreynolds389 avatar orivej avatar paterry avatar proldapru avatar pstorz avatar quanah avatar richm avatar rtandy avatar tiniesst avatar vorlonofportland avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.