Warning: Can't synchronize with the repository (Unsupported version control system "darcs": Can't find an appropriate component, maybe the corresponding plugin was not enabled? ). Look in the Trac log for more information.

Ticket #39 (new enhancement)

Opened 20 months ago

Lazy deserialization

Reported by: ieslick Owned by: ieslick
Priority: minor Milestone:
Component: db-bdb Version:
Keywords: Cc:

Description

This is a significant change, but could improve performance characteristics or make database performance design simpler. The idea is to only deserialize values if they are used, or allow partial deserialization, say to detect the type tag. This does require copying the serialized byte stream from the various pages it is stored in, but that's usually just a memcpy.

This is a significant feature requiring changes to the serializer, map functions and various backend interfaces. It isn't worth it at this time as there is a workaround, which is to use lightweight persistent objects to keep references to larger values it is too expensive to deserialize, or to define derived indices which hash code or otherwise map the large datastructure to a simple range of integers or other small values.

Note: See TracTickets for help on using tickets.