[SERVER-2563] When hitting disk, yield lock - phase 1 Created: 16/Feb/11  Updated: 12/Jul/16  Resolved: 01/Jul/11

Status: Closed
Project: Core Server
Component/s: Concurrency
Affects Version/s: None
Fix Version/s: 1.9.1

Type: New Feature Priority: Major - P3
Reporter: Eliot Horowitz (Inactive) Assignee: Eliot Horowitz (Inactive)
Resolution: Done Votes: 25
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
Related
related to SERVER-3633 three/four potential seg faults for n... Closed
related to SERVER-1241 Document-level locking Closed
related to SERVER-3356 disk/yield lock - initial query Closed
related to SERVER-3357 disk/yield lock - any update Closed
related to SERVER-3634 improve not in mem yielding hash func... Closed
related to SERVER-3635 for non in mem yielding, touch / chec... Closed
related to SERVER-3636 not in mem yielding for single doc de... Closed
related to SERVER-3637 not in mem yield processGetMore Closed
related to SERVER-3642 make sure yieldSometimes RecordNeeds ... Closed
is related to SERVER-1240 Collection-level locking Closed
Participants:

 Comments   
Comment by Dwight Merriman [ 01/Sep/11 ]

@remon are you doing one of these, and physical disk io is high?
> update by _id
> remove
> long cursor iteration

Comment by Remon van Vliet [ 01/Sep/11 ]

Is this first phase visible in performance metrics? We're not noticing any difference during load tests.

Comment by Eliot Horowitz (Inactive) [ 31/Aug/11 ]

Note fix for and status above.
Was put in 1.9.1 - so yes.

Comment by free [ 31/Aug/11 ]

Will 2.0 contains this fix?

Comment by Valery Khamenya [ 07/Jul/11 ]

wow, fixed, cool, thanks!
mongo-10gen-unstable still refers to 1.9.0 when do you plan to switch it to 1.9.1?

Comment by Eliot Horowitz (Inactive) [ 01/Jul/11 ]

phase 1 of this is complete.
that includes

  • infrastructure
  • tracking on pages in memory
  • doing correct yielding in hot spots
  • update by _id
  • remove
  • long cursor iteration
  • more to come
Comment by Dwight Merriman [ 28/Jun/11 ]

it's going pretty well. will know more in 1-2 weeks after some testing.

Comment by Valery Khamenya [ 28/Jun/11 ]

Hi Eliot, there are 3 commits in June – how is it going with this ticket? How far are you with the progress? Many thanks for your efforts!

Comment by auto [ 23/Jun/11 ]

Author:

{u'login': u'erh', u'name': u'Eliot Horowitz', u'email': u'eliot@10gen.com'}

Message: SERVER-2563 - make ClientCursor check disk location for record in memory if its going to be needed
Branch: master
https://github.com/mongodb/mongo/commit/6cd435b005974c0c3e0ea743d9196e9dc75c3618

Comment by auto [ 15/Jun/11 ]

Author:

{u'login': u'erh', u'name': u'Eliot Horowitz', u'email': u'eliot@10gen.com'}

Message: yield with disk prep for ClientCursor SERVER-2563
Branch: master
https://github.com/mongodb/mongo/commit/037cf2ea57f27e11a28cf54f3b6bf98944230f93

Comment by auto [ 15/Jun/11 ]

Author:

{u'login': u'erh', u'name': u'Eliot Horowitz', u'email': u'eliot@10gen.com'}

Message: yielding with disk lock backend, hooked into updates by _id SERVER-2563
Branch: master
https://github.com/mongodb/mongo/commit/5a5a18228173a9bb8b345f5695e8126e6d288312

Comment by Valery Khamenya [ 25/May/11 ]

Hi Eliot,
we know you have a lot of tickets, so, when you have a spare minute, let us know please how is it going with this one.
P.S. during writing this, my mongo is 8 hours busy with the atomic $set, mongostat shows me steady 100+% "locked" value, and mongo is not responsive for a very simple queries. If I could only have predicted this, I'd definitely create a tmp-collection for output, but it is too late now, I've got to wait And chat with mongodb team

Comment by Eliot Horowitz (Inactive) [ 22/Feb/11 ]

@valery

1) any time we actually have to hit disk. so if a memory mapped page is not in ram, then we should yield

2) the scope is still 100% nailed down, but yes, for both read and write operations

Comment by Valery Khamenya [ 22/Feb/11 ]

Q1. Do you mean the memory-mapped file disk I/O operations?

Q2. Do you mean writing operations and write-lock?

Generated at Thu Feb 08 03:00:24 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.