#29550: Usages of pickling should easen protocol overriding
-------------------------------------+-------------------------------------
Reporter: Simon | Owner: Simon Charette
Charette |
Type: | Status: assigned
Cleanup/optimization |
Component: | Version: master
Uncategorized |
Severity: Normal | Keywords:
Triage Stage: | Has patch: 1
Unreviewed |
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
-------------------------------------+-------------------------------------
During the process of porting Django projects from Python versions to
newer ones a common late stage step is to turn some instances of a cluster
into canaries running the latest version. While state sharing between
canaries and the rest of the fleet should be avoided it's not always
possible to completely isolate them. For example, starting from a cold
isolated cache might be impractical at a certain scale.
This is particularly problematic when dealing with pickled data because
Django always uses the latest protocol (through the
`pickle.HIGHEST_PROTOCOL` constant) which prevent the data from being
unpickled on instances that don't have access. For example, if some data
is pickled on Python 3.4 canary where `pickle.HIGHEST_PROTOCOL == 4` it
won't be pickleable on the rest of the Python 3.3 servers sharing this
global state.
Django should make it easier to override the pickling protocol used within
methods and functions to allow users to temporarily _freeze_ the protocol
used during the transition period.
--
Ticket URL: <https://code.djangoproject.com/ticket/29550>
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 [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/052.625e6696a561c65da2e1e07965389c78%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.