Wicket
  1. Wicket
  2. WICKET-4478

DiskDataStore to use multi-level directory structure to avoid slowness when thousands of sessions are active.

    Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.5.5
    • Fix Version/s: 1.5.6, 6.0.0-beta2
    • Component/s: wicket
    • Labels:
      None
    • Environment:
      ext3, NTFS, and common FSs in general.

      Description

      If the number of sessions opened rises to thousands, DiskDataStore, which is default, doesn't scale, because it creates one dir for each session, and most filesystems don't perform well with large number of records in a dir. More, there's a hard limit e.g. for ext3 it's 31998.

      So I suggest to make it multi-level - simply, instead of "tmp/abcdef" it would be "tmp/a/b/cdef", where number of levels added would be configurable.

        Issue Links

          Activity

          Hide
          Ondra Žižka added a comment -

          Something like this.
          It's a 2-level dir, using first char.

          Show
          Ondra Žižka added a comment - Something like this. It's a 2-level dir, using first char.
          Hide
          Martin Grigorov added a comment -

          Improved by re-applying the patch from WICKET-1837.

          It uses the hashcode of the sessionId string to make it better distributed.

          Show
          Martin Grigorov added a comment - Improved by re-applying the patch from WICKET-1837 . It uses the hashcode of the sessionId string to make it better distributed.

            People

            • Assignee:
              Martin Grigorov
              Reporter:
              Ondra Žižka
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development