Bug 29484 - "ucr filter" sehr langsam
"ucr filter" sehr langsam
Status: RESOLVED WONTFIX
Product: UCS
Classification: Unclassified
Component: UCR
UCS 4.1
Other Linux
: P5 normal (vote)
: ---
Assigned To: UCS maintainers
:
: 22427 (view as bug list)
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-11-30 10:16 CET by Alexander Kläser
Modified: 2019-01-03 07:24 CET (History)
4 users (show)

See Also:
What kind of report is it?: Development Internal
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Ticket number:
Bug group (optional): Cleanup, UCS Performance
Max CVSS v3 score:
klaeser: Patch_Available+


Attachments
Patch für UCR run_filter() (4.21 KB, patch)
2012-12-03 09:35 CET, Alexander Kläser
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Kläser univentionstaff 2012-11-30 10:16:43 CET
Aus Bug 29418, Comment 11:
> Hinweis: ucr filter ist in meinen Testfällen sehr langsam und hat 50K Benutzer
> mit 10K Gruppen nach einigen Stunden noch nicht abgearbeitet. Also besser mit
> sed arbeiten.

ucr filter scheint sehr langsam für große Textdateien zu sein. In diesem Fall war die Datei (slapcat-Ausgabe) ca. 130MB groß. Kann das sein?
Comment 1 Philipp Hahn univentionstaff 2012-11-30 18:01:48 CET
(In reply to comment #0)
> Aus Bug 29418, Comment 11:
> > Hinweis: ucr filter ist in meinen Testfällen sehr langsam und hat 50K Benutzer
> > mit 10K Gruppen nach einigen Stunden noch nicht abgearbeitet. Also besser mit
> > sed arbeiten.
> 
> ucr filter scheint sehr langsam für große Textdateien zu sein. In diesem Fall
> war die Datei (slapcat-Ausgabe) ca. 130MB groß. Kann das sein?

Ja, sie Implementierung von branches/ucs-3.1/ucs/base/univention-config-registry/python/univention/config_registry/handler.py#run_filter; sie ist weit entfernt von optimal:
1. In beiden Schleifen wird nach jeder Ersetzung wieder von vom Anfang des Strings an nach den Token gesucht, obwohl man ja weiß, daß dort nicht sein kann.
2. Für jeden Python-Aschnitt wird ein eigener Python-Subprozeß geforkt.
Comment 2 Alexander Kläser univentionstaff 2012-12-03 09:35:46 CET
Created attachment 4855 [details]
Patch für UCR run_filter()

(In reply to comment #1)
> Ja, sie Implementierung von
> branches/ucs-3.1/ucs/base/univention-config-registry/python/univention/config_registry/handler.py#run_filter;
> sie ist weit entfernt von optimal:
> 1. In beiden Schleifen wird nach jeder Ersetzung wieder von vom Anfang des
> Strings an nach den Token gesucht, obwohl man ja weiß, daß dort nicht sein
> kann.
> 2. Für jeden Python-Aschnitt wird ein eigener Python-Subprozeß geforkt.

Au ja, das stimmt, dann liegt es daran :/ . Anbei ein möglicher Patch dafür.
Comment 3 Stefan Gohmann univentionstaff 2012-12-03 09:40:31 CET
Dadurch ändert sich das Verhalten in den Python Dateien. Deshalb eher zum Minor Release.
Comment 4 Philipp Hahn univentionstaff 2012-12-03 11:24:46 CET
Bei API-Änderungen bitte auch Bug #22427 beachten.
Comment 5 Alexander Kläser univentionstaff 2012-12-03 13:30:52 CET
(In reply to comment #4)
> Bei API-Änderungen bitte auch Bug #22427 beachten.

Der angehängte Patch hier würde auch das Problem in Bug 22427 beheben.
Comment 6 Alexander Kläser univentionstaff 2012-12-03 13:31:13 CET
*** Bug 22427 has been marked as a duplicate of this bug. ***
Comment 7 Stefan Gohmann univentionstaff 2019-01-03 07:24:05 CET
This issue has been filled against UCS 4.1. The maintenance with bug and security fixes for UCS 4.1 has ended on 5st of April 2018.

Customers still on UCS 4.1 are encouraged to update to UCS 4.3. Please contact
your partner or Univention for any questions.

If this issue still occurs in newer UCS versions, please use "Clone this bug" or simply reopen the issue. In this case please provide detailed information on how this issue is affecting you.