Uploaded image for project: '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
    • Status: Resolved
    • Priority: 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
          pekarna Ondra Žižka added a comment -

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

          Show
          pekarna Ondra Žižka added a comment - Something like this. It's a 2-level dir, using first char.
          Hide
          mgrigorov 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
          mgrigorov 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:
              mgrigorov Martin Grigorov
              Reporter:
              pekarna Ondra Žižka
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development