[JAVA-610] Make DBCursor finalizer optional and disable it in all cases where there is no cursor maintained on the server Created: 24/Jul/12  Updated: 29/Aug/12  Resolved: 31/Jul/12

Status: Closed
Project: Java Driver
Component/s: Performance
Affects Version/s: 2.6.5, 2.7.3, 2.8.0
Fix Version/s: 2.9.0

Type: Improvement Priority: Major - P3
Reporter: Jeffrey Yemin Assignee: Jeffrey Yemin
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by JAVA-601 Throughput mongo java driver Versus m... Closed
Backwards Compatibility: Fully Compatible

 Description   

Finalizers can have a negative affect on overall GC throughput. DBApiLayer.Result has a finalize method which pushes the cursor onto a queue of dead cursors for later cleanup. The problem is that driver users still pay the cost of of the finalizer in these cases:

  1. they are diligent about closing cursors
  2. findOne, or any query with a negative batch size or other situation where there is no cursor maintained on the server to clean up.

We can address this in two ways

  1. Add option to MongoOptions to allow driver users to disable the finalizer
  2. Always disable the finalizer when there is no cursor maintained on the server (cursor == 0 in query response)


 Comments   
Comment by Jeffrey Yemin [ 29/Aug/12 ]

Closing as part of 2.9.0 release process.

Comment by auto [ 02/Aug/12 ]

Author:

{u'date': u'2012-08-01T11:52:58-07:00', u'email': u'jeff.yemin@10gen.com', u'name': u'Jeff Yemin'}

Message: JAVA-610: only start cursor clean thread if cursor finalizer is enabled
Branch: master
https://github.com/mongodb/mongo-java-driver/commit/d41c197e1fe709ee98f8cbedd9d5991b22461f88

Comment by auto [ 27/Jul/12 ]

Author:

{u'date': u'2012-07-27T08:41:52-07:00', u'email': u'jeff.yemin@10gen.com', u'name': u'Jeff Yemin'}

Message: JAVA-610: Make DBCursor finalizer optional and disable it in all cases where there is no cursor maintained on the server
Branch: master
https://github.com/mongodb/mongo-java-driver/commit/72ad520cdb238b276ad8162bac477b8ee9a41347

Generated at Thu Feb 08 08:52:41 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.