Merge lp://staging/~maxb/bzr-svn/cache-dev into lp://staging/bzr-svn/1.0

Proposed by Max Bowsher
Status: Superseded
Proposed branch: lp://staging/~maxb/bzr-svn/cache-dev
Merge into: lp://staging/bzr-svn/1.0
Diff against target: 159 lines (+21/-14)
5 files modified
cache/__init__.py (+3/-0)
cache/sqlitecache.py (+8/-2)
cache/tdbcache.py (+0/-3)
repository.py (+10/-6)
revmeta.py (+0/-3)
To merge this branch: bzr merge lp://staging/~maxb/bzr-svn/cache-dev
Reviewer Review Type Date Requested Status
bzr-svn developers Pending
Review via email: mp+46761@code.staging.launchpad.net

This proposal has been superseded by a proposal from 2011-01-22.

Description of the change

Hi,

A trio of tweaks to the cache commit logic:

1. Since bzr-svn doesn't really care whether it's cache store is transactional or not, ideally this wouldn't need to be exposed in its interface more than is necessary. Therefore, move all of the period commit ("commit_conditionally") calls inside sqlitecache.py - which also makes sure that some code paths don't fail to call commit_conditionally when mutating the cache.

2. I found that bzr-svn was spending an awful lot of time doing "discovering revprop revisions" during many operations on some of my branches. It turns out that the "last checked revnum" watermark for the revid map cache was never being committed to the cache, so bzr-svn was needlessly reprocessing half a million revisions each time it was run. So, commit unconditionally when updating this watermark.

3. The previous thing got me thinking - if bzr-svn is throwing away work done because it's forgetting to commit, that's bad. So, looking around, it seems reasonable to commit during ForeignRepository.unlock().

To post a comment you must log in.

Unmerged revisions

3511. By Max Bowsher

Add additional muttering in sqlite RevisionIdMapCache.

3510. By Max Bowsher

Remove vestigial method.

3509. By Max Bowsher

Commit the sqlite cache during ForeignRepository.unlock.

3508. By Max Bowsher

Updating the last_revnum_checked marks then end of a potentially arbitrarily
large amount of work - building the revid map for a project's entire history -
so commit it immediately. (I experienced this work going uncommitted and being
lost.)

3507. By Max Bowsher

Move commit_conditionally calls inside the cache implementation. This avoids
there being code-paths that never directly commit their caching work
(DiskCachingRevidMap and DiskCachingParentsProvider).

3506. By Jelmer Vernooij

mark as compatibler with bzr 2.4.

3505. By Jelmer Vernooij

Avoid using deprecated code.

3504. By Jelmer Vernooij

Remove accidentally committed pdb.

3503. By Jelmer Vernooij

Store short testament rather than long testament in bzr:testament
revision property.

3502. By Jelmer Vernooij

Update NEWS.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.

Subscribers

People subscribed via source and target branches