Directory Studio
  1. Directory Studio
  2. DIRSTUDIO-120

100% CPU when deleting thousands of entries

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.8.0, 0.8.1
    • Fix Version/s: 1.1.0
    • Component/s: studio-ldapbrowser
    • Labels:
      None

      Description

      When we try to delete 1000 entries, the CPU goes up to 100% for several minutes.

        Activity

        Transition Time In Source Status Execution Times Last Executer Last Execution Date
        In Progress In Progress Open Open
        37m 40s 1 Stefan Seelmann 29/Aug/07 09:43
        Open Open In Progress In Progress
        135d 10h 26m 2 Stefan Seelmann 16/Oct/07 07:29
        In Progress In Progress Resolved Resolved
        50d 14h 28m 1 Stefan Seelmann 05/Dec/07 20:58
        Resolved Resolved Closed Closed
        42d 17h 10m 1 Emmanuel Lecharny 17/Jan/08 14:08
        Emmanuel Lecharny made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Stefan Seelmann made changes -
        Status In Progress [ 3 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Hide
        Stefan Seelmann added a comment -

        Fixed in several commits.

        Show
        Stefan Seelmann added a comment - Fixed in several commits.
        Stefan Seelmann made changes -
        Fix Version/s 1.1.0 [ 12312701 ]
        Stefan Seelmann made changes -
        Status Open [ 1 ] In Progress [ 3 ]
        Stefan Seelmann made changes -
        Fix Version/s 1.0.0 [ 12312288 ]
        Hide
        Stefan Seelmann added a comment -

        The deletion of entries is implemented very ineffectively in a pessemistic way: Before delting an entry a one-level search is performed to find out if there are child entries. This is done recursively. Not until an entry doesn't have any child entries the entry itself it removed. So when deleting an ou with thousands of child entries there are thousands of searches for each child entry.

        We should reimplement it more optimistic:

        • use the tree delete control if supported by the server
        • else try to delete the entry. If receiving an error code 66 (notAllowedOnNonLeaf) then perform a one-level search and try to delete these entries.

        This is a bigger change, lets postpone this issue and reimplement it together with DIRSTUDIO-123.

        Show
        Stefan Seelmann added a comment - The deletion of entries is implemented very ineffectively in a pessemistic way: Before delting an entry a one-level search is performed to find out if there are child entries. This is done recursively. Not until an entry doesn't have any child entries the entry itself it removed. So when deleting an ou with thousands of child entries there are thousands of searches for each child entry. We should reimplement it more optimistic: use the tree delete control if supported by the server else try to delete the entry. If receiving an error code 66 (notAllowedOnNonLeaf) then perform a one-level search and try to delete these entries. This is a bigger change, lets postpone this issue and reimplement it together with DIRSTUDIO-123 .
        Stefan Seelmann made changes -
        Status In Progress [ 3 ] Open [ 1 ]
        Stefan Seelmann made changes -
        Status Open [ 1 ] In Progress [ 3 ]
        Stefan Seelmann made changes -
        Field Original Value New Value
        Affects Version/s 0.8.1 [ 12312562 ]
        Fix Version/s 1.0.0 [ 12312288 ]
        Affects Version/s 0.8.0 [ 12312286 ]
        Assignee Stefan Seelmann [ seelmann ]
        Component/s studio-browser [ 12311538 ]
        Emmanuel Lecharny created issue -

          People

          • Assignee:
            Stefan Seelmann
            Reporter:
            Emmanuel Lecharny
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development