#19274: Separate DB connection creation and session state initialization
-------------------------------------+-------------------------------------
     Reporter:  akaariai             |                    Owner:  nobody
         Type:                       |                   Status:  new
  Cleanup/optimization               |                  Version:  master
    Component:  Database layer       |               Resolution:
  (models, ORM)                      |             Triage Stage:  Accepted
     Severity:  Normal               |      Needs documentation:  0
     Keywords:                       |  Patch needs improvement:  0
    Has patch:  0                    |                    UI/UX:  0
  Needs tests:  0                    |
Easy pickings:  0                    |
-------------------------------------+-------------------------------------

Comment (by akaariai):

 I have now a working implementation in:
 https://github.com/akaariai/django/compare/ticket_19274

 The work divides into three parts:
   - Backend conversion as mentioned in the ticket description
   - Removing the assumption that connection's self.settings_dict changes
 will be reflected in the global settings
   - Random test fixed (one Oracle specific fix, some fixes into how to
 create additional connections for testing and some fixes to accessing the
 connection.connection variable)

 After the fixes the work in https://github.com/akaariai/django_pooled/
 passes on all core backends. The pooling implementation in django_pooled
 is somewhere between ugly and hideous. What is interesting is that
 django_pooled shows that one can have generic pooling implementation
 outside core, and that it actually works.

 The separation of self.settings_dict from global settings is needed for
 the above pooling implementation (and I believe any pooling implementation
 wants that). The basic problem is that you need to tell Django to use the
 pool in ENGINE, and then you need to have the real engine somewhere
 (OPTIONS -> WRAPS in django_pooled). You need to alter the settings before
 passing to the real backend, but you can't do that to the global settings,
 otherwise the information is lost for next connection creation.

 Gis backends aren't converted yet.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/19274#comment:2>
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 post to this group, send email to django-updates@googlegroups.com.
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to