This paper describes a space-efficient technique for recording successive differences between versions of data. The technique is based on the combined use of differential files and change area b-trees. The strengths of the technique are that a branching tree of versions can be accommodated; any data item in any version can be accessed with approximately equal access time; and very large volumes of data can be accommodated. The paper also describes the use of this technique to support very long transactions in the SDS2 software development system. Here the technique is used in an optimistic concurrency control scheme.
展开▼