Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-43065

Perf Tests Needed For Deprecation of legacy wire protocol



    • Type: Task
    • Status: Open
    • Priority: Major - P3
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: Backlog
    • Component/s: None
    • Labels:


      tl;dr: with some performance tests we can see if we can deprecate OP_QUERY and OP_GETMORE in favor of find and getMore. OP_QUERY and OP_GETMORE are legacy for FCV 3.2 servers and drivers.


      Charlie Swanson wrote in PM-1371:

      I believe there was some noticeable regression of the find and getMore commands compared to OP_QUERY and OP_GETMORE?


      I asked for more and he wrote:

      The summary is that the query team would love to deprecate the legacy wire protocol and move on to find and getMore commands for everything. Our understanding is that the command versions are the default in modern drivers, but no one is comfortable deprecating the old ones because there was some performance regression when first testing find and getMore command vs. the old OP_QUERY and OP_GETMORE. I have heard rumors that further investigation proved the server wasn't as much to blame as we thought it was, but we haven't followed up to build new performance tests and validate that performance is comparable. Supporting OP_QUERY and OP_GETMORE has slowed development of many query projects. The most recent example I can think of is change streams. We currently have two implementations for iterating a cursor: OP_GETMORE and getMore command are completely independent and definitely duplicate a lot of logic. We have postponed investing in refactoring this in hopes of deprecating OP_GETMORE. See SERVER-24478.





            • Votes:
              0 Vote for this issue
              7 Start watching this issue


              • Created: