﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	launchpad_bug
329	dirnodes could cache encrypted/serialized entries for speed	warner	kevan	"We found that for large directories (353 entries), it takes a non-trivial
amount of time to serialize the child entries into a single string: 500ms.
This currently represents about 5% of the time necessary to update the
directory, and might grow to 10% once we make some other performance
improvements.

I suspect (but do not have confirmation) that most of this time is spent
encrypting the child write-caps. We do a couple of hashes, an HMAC, and a
short AES encryption for each one.

Since most updates only modify one row, we could consider caching the
serialized forms and re-using them during update. Basically _unpack_contents
would return a dict mapping childname to (name, rocap, rwcap, metadata,
serialized), and all update functions would put a None in the 'serialized'
slot. _pack_contents would use the 'serialized' slot if present, otherwise it
would re-serialize the other parameters.

This is only a minor improvement, so I expect it will be a long time before
we decide to implement it, but I wanted to get the ideas down before we
forgot.
"	enhancement	closed	minor	1.5.0	code-dirnodes	0.8.0	fixed	dirnode		
