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

Add JSON streaming parser to DataMapper/ViewClient

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: 2.1.0
    • Fix Version/s: 2.4.0
    • Component/s: library
    • Labels:
      None
    • Sprint:
      SDK50: Sample App, DNS-SRV

      Description

      Update the DataMapper/ViewClient so that each View row gets processed and returned to the user so that the client does not have to maintain a large buffer for response etc. The Java 2.0 SDK can be used as an example, although it likely will be a quite different implementation perhaps using IQueryable (deferred execution), TAP and/or TPL data flow.

      Currently, the client streams the entire response into a buffer, then de-serializes the entire buffer into a list of objects and then returns that list. While very fast with small response bodies, performance quickly degrades with large response sizes causing latancy, high MEM, and CPU.

        Attachments

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

          Activity

          Hide
          jmorris Jeff Morris added a comment -

          Push to 2.3.0

          Show
          jmorris Jeff Morris added a comment - Push to 2.3.0
          Hide
          jmorris Jeff Morris added a comment - - edited

          Mike, you might want to hold off on this one...I started doing this sometime back and might as well finish. If you feel otherwise, go ahead and let me know.

          Show
          jmorris Jeff Morris added a comment - - edited Mike, you might want to hold off on this one...I started doing this sometime back and might as well finish. If you feel otherwise, go ahead and let me know.
          Hide
          mike.goldsmith Michael Goldsmith added a comment -

          Sure, if you already have more context with this ticket then please do continue with it.

          Show
          mike.goldsmith Michael Goldsmith added a comment - Sure, if you already have more context with this ticket then please do continue with it.
          Hide
          jmorris Jeff Morris added a comment -

          Closed this on accident.

          Show
          jmorris Jeff Morris added a comment - Closed this on accident.
          Hide
          mike.goldsmith Michael Goldsmith added a comment -

          Added commit to add Streaming View Client. This has been done using the N1QL streaming client as a template and so does not use the IDataMapper.

          A future improvement could be to refactor both the N1QL and View streaming clients to use the IDataMapper.

          Show
          mike.goldsmith Michael Goldsmith added a comment - Added commit to add Streaming View Client. This has been done using the N1QL streaming client as a template and so does not use the IDataMapper. A future improvement could be to refactor both the N1QL and View streaming clients to use the IDataMapper.
          Hide
          mike.goldsmith Michael Goldsmith added a comment -

          Created ticket NCBC-1255 to use IDataMapper in both N1QL and View streaming clients.

          Show
          mike.goldsmith Michael Goldsmith added a comment - Created ticket NCBC-1255 to use IDataMapper in both N1QL and View streaming clients.

            People

            • Assignee:
              mike.goldsmith Michael Goldsmith
              Reporter:
              jmorris Jeff Morris
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Gerrit Reviews

                There are no open Gerrit changes

                  PagerDuty

                  Error rendering 'com.pagerduty.jira-server-plugin:PagerDuty'. Please contact your Jira administrators.