Details
-
Improvement
-
Resolution: Won't Fix
-
Major
-
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.