git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [JGIT PATCH v2 00/11] WindowCache rewrite... with tests
@ 2009-04-29 18:54 Shawn O. Pearce
  2009-04-29 18:54 ` [JGIT PATCH 01/11] Fix more computation of integer average overflows Shawn O. Pearce
  2009-04-29 23:46 ` [JGIT PATCH v2 00/11] WindowCache rewrite... with tests Robin Rosenberg
  0 siblings, 2 replies; 13+ messages in thread
From: Shawn O. Pearce @ 2009-04-29 18:54 UTC (permalink / raw)
  To: Robin Rosenberg; +Cc: git

Actually, this is my entire outstanding patch set series.

1 and 2 should be trivial to apply.

3-6 should be fairly straightforward.

7 maybe we delay until later, but I don't think any applications
use that map type.

8 is pretty trivial, and is needed to prevent 9 from deadlocking.

9-11 is the rewrite of WindowCache, with new unit tests to get higher
levels of coverage in this section of the code.  Actually doing
better is really hard, as we'd need to cause thread race conditions
deep within critical sections.  The only way I can think to do that
is to add injection points where we can insert "evil other thread"
logic during the unit test, and rely on the JIT to compile them
out in normal application usage.  Ick.  Its also quite fragile.

Shawn O. Pearce (11):
  Fix more computation of integer average overflows
  Fix performance problem recently introduced to
    DeltaPackedObjectLoader
  Replace inefficient new String(String) constructor to silence
    FindBugs
  Replace inefficient new Long(long) constructor to silence FindBugs
  Change IndexPack to use ObjectIdSubclassMap instead of ObjectIdMap
  Use getCachedBytes in IndexPack to avoid an unnecessary copy
  Remove ObjectIdMap from the JGit library
  Don't use ByteWindows when checking pack file headers/footers
  Rewrite WindowCache to be easier to follow and maintain
  Add tests for WindowCache.reconfigure cases
  Add tests to increase coverage of WindowCache

 .../jgit/test/resources/all_packed_objects.txt     |   96 ++++
 .../org/spearce/jgit/lib/ConcurrentRepackTest.java |    4 -
 .../tst/org/spearce/jgit/lib/ObjectIdMapTest.java  |  103 ----
 .../org/spearce/jgit/lib/WindowCacheGetTest.java   |  143 ++++++
 .../jgit/lib/WindowCacheReconfigureTest.java       |  119 +++++
 .../src/org/spearce/jgit/lib/ByteArrayWindow.java  |   57 +--
 .../src/org/spearce/jgit/lib/ByteBufferWindow.java |   41 +-
 .../src/org/spearce/jgit/lib/ByteWindow.java       |   91 +---
 .../spearce/jgit/lib/DeltaPackedObjectLoader.java  |    1 +
 .../src/org/spearce/jgit/lib/ObjectIdMap.java      |  201 --------
 .../org/spearce/jgit/lib/ObjectIdSubclassMap.java  |   31 ++-
 .../src/org/spearce/jgit/lib/OffsetCache.java      |  534 ++++++++++++++++++++
 .../src/org/spearce/jgit/lib/PackFile.java         |  128 +++--
 .../src/org/spearce/jgit/lib/PackIndexV1.java      |    2 +-
 .../src/org/spearce/jgit/lib/PackIndexV2.java      |    6 +-
 .../org/spearce/jgit/lib/PackedObjectLoader.java   |   11 +-
 .../src/org/spearce/jgit/lib/RefDatabase.java      |    3 +-
 .../src/org/spearce/jgit/lib/WindowCache.java      |  424 +++++-----------
 .../src/org/spearce/jgit/lib/WindowCursor.java     |   42 +-
 .../src/org/spearce/jgit/transport/IndexPack.java  |  129 +++--
 .../src/org/spearce/jgit/transport/LongMap.java    |  152 ++++++
 org.spearce.jgit/src/org/spearce/jgit/util/NB.java |   32 ++
 22 files changed, 1465 insertions(+), 885 deletions(-)
 create mode 100644 org.spearce.jgit.test/tst-rsrc/org/spearce/jgit/test/resources/all_packed_objects.txt
 delete mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/lib/ObjectIdMapTest.java
 create mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/lib/WindowCacheGetTest.java
 create mode 100644 org.spearce.jgit.test/tst/org/spearce/jgit/lib/WindowCacheReconfigureTest.java
 delete mode 100644 org.spearce.jgit/src/org/spearce/jgit/lib/ObjectIdMap.java
 create mode 100644 org.spearce.jgit/src/org/spearce/jgit/lib/OffsetCache.java
 create mode 100644 org.spearce.jgit/src/org/spearce/jgit/transport/LongMap.java

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2009-04-29 23:46 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-29 18:54 [JGIT PATCH v2 00/11] WindowCache rewrite... with tests Shawn O. Pearce
2009-04-29 18:54 ` [JGIT PATCH 01/11] Fix more computation of integer average overflows Shawn O. Pearce
2009-04-29 18:54   ` [JGIT PATCH 02/11] Fix performance problem recently introduced to DeltaPackedObjectLoader Shawn O. Pearce
2009-04-29 18:54     ` [JGIT PATCH 03/11] Replace inefficient new String(String) constructor to silence FindBugs Shawn O. Pearce
2009-04-29 18:54       ` [JGIT PATCH 04/11] Replace inefficient new Long(long) " Shawn O. Pearce
2009-04-29 18:54         ` [JGIT PATCH 05/11] Change IndexPack to use ObjectIdSubclassMap instead of ObjectIdMap Shawn O. Pearce
2009-04-29 18:54           ` [JGIT PATCH 06/11] Use getCachedBytes in IndexPack to avoid an unnecessary copy Shawn O. Pearce
2009-04-29 18:54             ` [JGIT PATCH 07/11] Remove ObjectIdMap from the JGit library Shawn O. Pearce
2009-04-29 18:54               ` [JGIT PATCH 08/11] Don't use ByteWindows when checking pack file headers/footers Shawn O. Pearce
2009-04-29 18:54                 ` [JGIT PATCH v2 09/11] Rewrite WindowCache to be easier to follow and maintain Shawn O. Pearce
2009-04-29 18:54                   ` [JGIT PATCH 10/11] Add tests for WindowCache.reconfigure cases Shawn O. Pearce
2009-04-29 18:54                     ` [JGIT PATCH 11/11] Add tests to increase coverage of WindowCache Shawn O. Pearce
2009-04-29 23:46 ` [JGIT PATCH v2 00/11] WindowCache rewrite... with tests Robin Rosenberg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).