Uploaded image for project: 'Couchbase .NET client library'
  1. Couchbase .NET client library
  2. NCBC-2141

Improving document content memory allocations

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Won't Fix
    • Major
    • .backlog
    • 2.7.11
    • None
    • None
    • 1

    Description

      Rather than allocating the entire object in memory, The .net SDK should be able to support streaming large documents to/from couchbase when interacting with documents, similar to
      "QueryRequest.UseStreaming".

      Background
      When putting/getting to/from couchbase the entire object must be allocated in memory. In .NET anything higher than 85K is allocated on the large object heap, which causes issues with garbage collection. These issues can be significant at high loads with large objects. Application servers can get stuck at high CPU for an extended amount of time when garbage collection is triggered.

      Problem

      The .NET SDK can work directly with byte[] to avoid having to do (de)serialization until necessary that helps reduce CPU impact. However, the whole document content is read into the byte[] and doesn't stream from the socket like "Query.UseStreaming" does.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            ingenthr Matt Ingenthron
            yuvraj.kanwar Yuvraj Kanwar
            Votes:
            2 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty