While investigating performance issues on our Atlas hosted database, we began to observe a high count of Docs Returned in the Atlas profiler. This high number of returned documents is the result of the changestream getMore calls of the cursor, and we sometimes see the number of returned documents reaching over 5000 records. We are aware that we are not making that many changes and are wondering what could explain the high number of records being returned. Is this number a cumulative count from the time the cursor was established?
Mongo Changestream getmore profiling
106 views Asked by user1884081 At
1
There are 1 answers
Related Questions in MONGODB
- MongoDb not connecting C#
- How do I link two models in mongoose?
- MERN Stack App - User Avatar Upload - 500 Error After Deployment on Render
- On the server side, it returns undefined but on the client side, logs the values no problem
- Laravel: Using belongsToMany relationship with MongoDB
- What are some MERN projects that will grow me from junior dev to senior
- Save Interface in DB golang
- findOneAndUpdate not updating value in mongodb?
- Get Type Error when using .countDocuments with mongoDB
- Getting a Large Error Output When Calling MongoDB/Mongoose Functions Without an Error Message
- How to enter data in mongodb array at specific position such that if there is only 2 data in array and I want to insert at 5, then rest data is null
- using Python to insert_one to my mongo_db, How do I pass key values into a function?
- SSL Certificate Verification Error When Scraping Website and Inserting Data into MongoDB
- connect ECONNREFUSED 43.205.72.30:27017 while connecting to Atlas
- Vite is probably changing my import path. What should I do?
Related Questions in PROFILER
- what are the numbers in the operation names when profiling an application
- Unable to capture iterations on dlprof
- Linux perf does not record function in libstdc++.so correctly
- Where can I track subscribed events in unity?
- Intel Vtune hotspot can not see source code (only assembly code )
- How to use visual studio performance profiler ? after clicking start the application is running but not the profiler
- When profiling using torch.autograd.profiler, the run time changes every time I added profiler.record_function to different plac
- How to interpret Firefox profiler result evaluation for non-JS code?
- Is there a way to parse data generated by perf tool?
- Error while connecting to Snapdragon Profiler
- Too much memory used when using WebCamTexture in unity
- Intellij Profiler - read/copy/save value
- Memory leak in fragments : activity in ActivityThread$ActivityClientRecord
- How to construct a similar test program based on the behavior of a given program?
- How to Setup Netbeans Profiler for Payara server deployed in remote windows host?
Related Questions in CHANGESTREAM
- MongoDB change stream aggregation and projection on nested variable
- How to keep MongoDB change stream continuously running in Node.js?
- Change Stream throwing Error “Unauthorised to execute command”
- AWS Change Stream Logs Does Not Clear After Log Retention Period, Instead Clear When Size Exceed
- Can't find the reason to use VPC Endpoint for triggering AWS Lambda with Event Source Mapping(ESM), whose trigger is Change Streams in DocumentDb?
- Mongo Change Stream w/pipeline returning ALL changes to the collection
- AWS DocumentDB collection lock due to change stream log truncating process
- MongoDB C# Changestream cursor $Index was outside the bounds of the array
- NextJS Server Component update Client component when data changes
- Best way to handle multiple change streams with SignalR
- How to filter the update not to include a parent field when using change stream in Mongodb
- Mongo Changestream getmore profiling
- Multiple DB Connections are getting Created In MongoDb
- How to control change stream output using Mongoose
- Implementation of MongoDB Changestream
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)

From the comments:
No, the number in your screenshot is not cumulative.
Your screenshot is from the Atlas profiler. Both the Atlas profiler documentation as well your reference to the screenshot being associated with a
getMorecall point to the fact that we are looking at the results of a single operation.Somewhat relatedly, the
Response Lengthfield in that screenshot corresponds to thereslenof the operation. Again this is the amount of data transferred for that single call. There is a hard cap of 16MB of data transmitted per batch, so the size of the documents being returned influence how many will get sent in a single batch.Thanks for the additional context! You are looking at something 'different' here though which is the source of confusion and incorrect conclusion.
In this interface the object being reported against is the cursor itself. A cursor is the object that is created when a query, including a change stream, is executed and will return more than one batch of data.
As you have correctly concluded, the
nDocsReturnedmetric in this interface is cumulative for the cursor. The documentation confirms this:Immediately afterwards that page also informs us about
nBatchesReturned:So each individual
getMorecall will add to these cumulative cursor totals that can be observed incurrentOp. But the log file and profiler are only going to report the metrics associated with the individualgetMoreexecutions (that are slow enough to be reported in those places).It sounds like either there are more changes being made than you are expecting or change streams are being (re)opened more often than anticipated (or not using 'resume after' functionality appropriately).