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

Latency optimized write API

    • Type: Icon: New Feature New Feature
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Networking, Write Ops

      MongoDB's legacy OP_INSERT, OP_UPDATE, and OP_REMOVE wire protocol operations don't return a response. This allows users to write applications that provide good write throughput with very low latency, assuming they aren't concerned with individual failed writes (for example, storing clickstream data for later aggregate analysis). The write commands introduced in MongoDB 2.6 always return a response regardless of the w value passed for writeConcern. If / when legacy write operations are removed from the server, application developers will no longer have a way to achieve the same low latency write performance. This is particularly a problem for client languages that provide no real parallelism (CPython / pypy, Ruby MRI), no usable threading support (Perl) or no threads of any kind (PHP).

      One solution to this problem could be to provide a streaming write API, in addition to the existing RPC model. Clients could start a write session with the server, pushing mixed write operations (rather than batches of the same type of write operation required by existing write commands), then receive a write result when the session is closed.

        1. batch_vs_update.py
          2 kB
          James Blackburn

            Assignee:
            backlog-server-tuning [DO NOT USE] Backlog - Tuning Team
            Reporter:
            bernie@mongodb.com Bernie Hackett
            Votes:
            1 Vote for this issue
            Watchers:
            23 Start watching this issue

              Created:
              Updated:
              Resolved: