#36526: Document memory usage of bulk_update and ways to batch updates.
-------------------------------------+-------------------------------------
     Reporter:  Anže Pečar           |                    Owner:  Jason
         Type:                       |  Hall
  Cleanup/optimization               |                   Status:  new
    Component:  Database layer       |                  Version:  5.2
  (models, ORM)                      |
     Severity:  Normal               |               Resolution:
     Keywords:                       |             Triage Stage:  Accepted
    Has patch:  1                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  1
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
Comment (by Natalia Bidart):

 Replying to [comment:10 Anže Pečar]:
 > Natalia Bidart, I pointed out in my initial description that the two
 issues are related but I am still not fully convinced that they are
 duplicates. In my case I was updating a large number of objects for
 several hours and it wouldn't have made a difference if the query took an
 extra hour or two. What did make a difference was that the script was
 killed with a SIGTERM when the container ran out of memory. :(
 >
 > Could we reopen until we fully understand what the performance impact of
 the code changes proposed from Jason Hall? I made a quick benchmark
 earlier today and Jason's solution with the longer transaction ended up
 being 6% slower (29.76s vs 28s) but I wanted to also test it on a dataset
 with more columns as was the example in #31202.

 Thanks for the clarification. As Simon noted in the PR, performing the
 expression resolution while the transaction is open (which is known to
 take significant time) is likely to be more harmful than the memory
 overhead it incurs.

 Since manual batching already works around the memory issue, we don't plan
 to pursue changes to defer expression resolution within `bulk_update`
 other than what is covered in #31202. I'll work on a patch to
 improve/extend the docs.
-- 
Ticket URL: <https://code.djangoproject.com/ticket/36526#comment:15>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-updates+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/django-updates/01070198f25320a0-de5f2934-9aa3-4b54-8898-d4e475e51f45-000000%40eu-central-1.amazonses.com.

Reply via email to