Univention Bugzilla – Bug 15720
Neues Storage-Backend für UCR
Last modified: 2020-07-03 20:53:31 CEST
Wenn die UCR eine Datenbank wie die Berkeley DB oder SQLite anstatt einer einfach Textdatei verwenden würde, würden sich viele Probleme nicht ergeben: Fehlende/Falsche fsync-Aufrufe: Bug #14207 Inkonsistenzen bei simultanen Zugriffen: Bug #15518 Einschränkung der möglichen Zeichen für Schlüssel oder Werte: Bug #15561 Die BDB bietet sich hier wohl an, da es auch nur Schlüssel/Wert-Paare speichert. Dies hat eventuell den Nachteil, dass grep auf die base.conf nicht mehr möglich ist, aber da das nicht konsistent ist, kann man es durch "ucr dump" und "ucr search" ersetzen. Eventuell kann das gleich mit einem Daemon implementiert werden, der dann wie in Bug #9339 beschrieben verschiedene Zugriffsrechte unterstützt.
*** Bug 15723 has been marked as a duplicate of this bug. ***
This issue has been filed against UCS 3. UCS 3 is out of the normal maintenance and many UCS components have vastly changed in UCS 4. If this issue is still valid, please change the version to a newer UCS version otherwise this issue will be automatically closed in the next weeks.
Still valid in UCS 4.2. There is WIP on this.
From Daniel: > Dafür kommen zB in Frage: LevelDB, RocksDB, SQLite, LMDB, unQLite. > Es gibt schöne Python-libs die deren Verwendung komfortabel und sicher > machen. Mein aktueller Favorit ist "python-diskcache", was auf SQLite > aufsetzt. Answer from Arvid: > Da bin ich bei Dir. Meine Präferenz wäre py-lmdb, auch weil ich aktuell nicht sehe, wofür wir SQL auf dieser niedrigen Ebene benötigen.
"diskcache" abstrahiert vom SQL und bietet ein memcache-artiges Interface (dict-Interface) in der "Cache" Klasse. Dazu kommen Klassen "Deque" (deque-Interface) und "Index" (auch dict-Interface). SQL kommt nicht vor. "aufsetzen" meint hier "backend". Das Interface von py-lmdb ist offensichtlich ein C-wrapper, das von diskcache ist schön pythonic.
This issue has been filed against UCS 4.2. UCS 4.2 is out of maintenance and many UCS components have changed in later releases. Thus, this issue is now being closed. If this issue still occurs in newer UCS versions, please use "Clone this bug" or reopen it and update the UCS version. In this case please provide detailed information on how this issue is affecting you.