﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
29550	Ease overriding pickling protocol in session serialization and cache backends	Simon Charette	Simon Charette	"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."	Cleanup/optimization	closed	Core (Other)	dev	Normal	fixed			Ready for checkin	1	0	0	0	0	0
