OpenLDAP
クッキーが存在しないか、コンシューマが完全に同期していないことを示している場合、プロバイダはリフレッシュ段階で、それが持つ各エントリの追加を送信する。 理想的な場合、応答時のリフレッシュステージには、コンシューマがプロバイダと最後に同期した時刻以降に発生したわずかな変更・削除が対象となる。 しかし、プロバイダに保持されているセッションログの状態が限られているため、現在の全エントリが必要になることがある。コンシューマがプロバイダと最後に同期した後、プロバイダが削除したものを処理するために、変更されていないすべてのエントリが必要となる。
検索は、refresh または refreshAndPersist モードで実行できる。 リフレッシュステージは常に最初に発生する。リフレッシュステージでは、present と delete の2つのフェーズが発生し、present は常に delete の前に発生する。 フェーズは、フェーズの完了を示す同期情報の応答によって区切られる。 リフレッシュおよび持続ステージもまた、同期情報の応答によって区切られる。 存在または削除されるエントリのグループをよりコンパクトに表現する最適化は、これらのエントリの entryUUID 値のリストを識別する syncIdSet を含む同期情報の応答を使用する。
OpenLDAPディストリビューションには17種類のバックエンドが含まれており、他にもサードパーティーが独自のバックエンドを開発している。標準バックエンドは大まかに以下の3種類に分類できる。
データストレージ型バックエンド - 実際にデータを格納する。 back-bdb: OpenLDAP用の最初のトランザクション型バックエンド。Berkeley DB をベースにしている。 back-hdb: back-bdb からの派生。完全な階層型データモデルで、サブツリーの改名をサポートしている。 back-ldif: プレーンテキストファイルである LDIF (LDAP Data Interchange Format) をベースにしている。 back-mdb: メモリマップドデータベース(LMDB) 上に構築したトランザクション型バックエンド。 back-ndb: MySQLのNDBクラスタエンジン上に構築したトランザクション型バックエンド。
プロキシ型バックエンド - 他のデータストレージシステムとのゲートウェイとして機能する。 back-ldap: 他のLDAPサーバへの単純なプロキシ back-meta: メタディレクトリ機能を持つプロキシ back-passwd: Unix系のパスワードおよびグループデータを使用。 back-relay: 別のslapdバックエンドへ内部的にリダイレクトする。 back-sql: 任意のSQLデータベースとやり取りする。
ダイナミック型バックエンド - 要求された時にデータを生成する。 back-config: LDAP経由でslapdの設定が可能。
OpenLDAP は、RFC 4533 に規定されているコンテンツ同期を使用したレプリケーションをサポートしている。この仕様を以後、syncrepl と呼ぶ。基本仕様に加えて、delta-syncrepl として知られる拡張もサポートされている。複数プライマリ型(マルチマスター)レプリケーションをサポートするために追加の拡張機能が実装された。