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

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Done
    • 2.1.0
    • 2.4.0
    • library
    • None
    • 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

          jmorris Jeff Morris added a comment -

          Push to 2.3.0

          jmorris Jeff Morris added a comment - Push to 2.3.0
          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.

          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.

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

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

          Closed this on accident.

          jmorris Jeff Morris added a comment - Closed this on accident.

          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.

          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.

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

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

          People

            mike.goldsmith Michael Goldsmith
            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