Uploaded image for project: 'InsightEdge Platform'
  1. GS-13433

Enhance LRMI network filter buffer allocation strategy by adding support for large objects (>10MB)

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Medium
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 12.0.1-patch3, 12.3
    • Labels:
      None
    • Platform:
      All
    • SalesForce Case ID:
      11488
    • Acceptance Test:
      NA
    • Sprint:
    • Product:
      XAP
    • Edition:
      Open Source

      Description

      When there are big objects around 30MB customer face a problem in using SSLFilter,
      Customer analyzed the issue and concluded the problem is related to the buffer enlargement in IOBlockFilterContainer:
      Stack Trace Objects Total Size(bytes) Pressure(%)
      java.nio.HeapByteBuffer.<init>(int, int) 32.074 140.523.490.480 99,067
      java.nio.ByteBuffer.allocate(int) 32.074 140.523.490.480 99,067
      com.gigaspaces.lrmi.nio.filters.IOBlockFilterContainer.enlargeBuffer(ByteBuffer, int) 1.492 140.050.563.008 98,734
      com.gigaspaces.lrmi.nio.filters.IOBlockFilterContainer.unwrap(IOFilterContext) 1.492 140.050.563.008 98,734

      The ByteBuffers are allocated with the initial size of 16916Bytes. This value is configured in sun.security.ssl.SSLSessionImpl.
      This size is not enough in some cases to store a full message so the buffer needs to be enlarged (method com.gigaspaces.lrmi.nio.filters.IOBlockFilterContainer.unwrap(IOFilterContext)). But the buffer is enlarged by max 16916 bytes at a time causing the issue, Customer suggests either enlarging by doubling the size each time or
      store the unwrapped size and allocate accordingly.

        Attachments

          Activity

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: