<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg/pkgcachegen.cc, branch 1.1.exp1</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=1.1.exp1</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=1.1.exp1'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2014-06-18T10:41:11Z</updated>
<entry>
<title>correct 'apt-cache stats' to include more</title>
<updated>2014-06-18T10:41:11Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-06-13T07:10:11Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=ac2c559b33db7a2dbec3a95760ee2497baf7017a'/>
<id>urn:sha1:ac2c559b33db7a2dbec3a95760ee2497baf7017a</id>
<content type='text'>
It still doesn't reflect the size the cache has on the disk compared to
what is given as total size (90 vs 103 MB), but by counting all structs
in we are at least a bit closer to the reality.

Git-Dch: ignore
</content>
</entry>
<entry>
<title>cleanup datatypes mix used in binary cache</title>
<updated>2014-06-18T10:41:11Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-06-12T10:22:45Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=4ad8619bb1f0bf777d17c568bb7a6cf7f30aac34'/>
<id>urn:sha1:4ad8619bb1f0bf777d17c568bb7a6cf7f30aac34</id>
<content type='text'>
We had a wild mixture of (unsigned) int, long and long long here without
much sense, so this commit adds a few typedefs to get some sense in the
typesystem and ensures that a ID isn't sometimes computed as int, stored
as long and compared with a long long… as this could potentially bite us
later on as the size of the archive only increases over time.
</content>
</entry>
<entry>
<title>increase hashtable size for packages/groups by factor 5</title>
<updated>2014-06-18T10:41:11Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-06-11T18:42:16Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=e8a7b0b28ca01cd8c2c1bee0d83e5997b40de689'/>
<id>urn:sha1:e8a7b0b28ca01cd8c2c1bee0d83e5997b40de689</id>
<content type='text'>
It also makes the size configureable, so it can be adapted in the future
without the need for an abi break - and even by users…

The increase was long overdue as it gives a &gt;10% decrease in runtime of
e.g. 'apt-get check -s'. Some (useless) benchmark with 69933 groups and
187796 packages without a pre-built cache:
time apt-get check -so APT::Cache-HashTableSize=1 → 20m
time apt-get check -so APT::Cache-HashTableSize=1000 → 6,41s
time apt-get check -so APT::Cache-HashTableSize=2000 → 5,64s (old)
time apt-get check -so APT::Cache-HashTableSize=3000 → 5,30s
time apt-get check -so APT::Cache-HashTableSize=5000 → 5,08s
time apt-get check -so APT::Cache-HashTableSize=6000 → 5,05s
time apt-get check -so APT::Cache-HashTableSize=7000 → 5,02s
time apt-get check -so APT::Cache-HashTableSize=8000 → 5,00s
time apt-get check -so APT::Cache-HashTableSize=9000 → 4,98s
time apt-get check -so APT::Cache-HashTableSize=10000 → 4,96s (new)
time apt-get check -so APT::Cache-HashTableSize=15000 → 4,90s
time apt-get check -so APT::Cache-HashTableSize=20000 → 4,86s
time apt-get check -so APT::Cache-HashTableSize=30000 → 4,77s
time apt-get check -so APT::Cache-HashTableSize=40000 → 4,74s
time apt-get check -so APT::Cache-HashTableSize=50000 → 4,73s
time apt-get check -so APT::Cache-HashTableSize=60000 → 4,71s

The gap increases further for operations which have more package
lookups. Factor 5 was chosen as higher values do not provide any
really significant timing advantage anymore compared to the memory
increase in my testing and there is always the possibility to increase
it now if that changes. (also most users will not have 3 releases and
4 architectures in the cache, so theirs will be much smaller and faster).
</content>
</entry>
<entry>
<title>Merge remote-tracking branch 'mvo/feature/hash-stats' into debian/experimental</title>
<updated>2014-06-18T08:13:01Z</updated>
<author>
<name>Michael Vogt</name>
<email>mvo@debian.org</email>
</author>
<published>2014-06-18T08:13:01Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=da029b0aaebdc64a3a9f6b7012213539421c934b'/>
<id>urn:sha1:da029b0aaebdc64a3a9f6b7012213539421c934b</id>
<content type='text'>
Conflicts:
	apt-pkg/acquire-item.cc
	apt-pkg/acquire-item.h
	apt-pkg/deb/debmetaindex.h
	apt-pkg/pkgcache.cc
	test/integration/test-apt-ftparchive-src-cachedb
</content>
</entry>
<entry>
<title>[API-Break] rename pkgCache::Package::NextPackage to pkgCache::Package::Next</title>
<updated>2014-06-18T07:35:53Z</updated>
<author>
<name>Michael Vogt</name>
<email>mvo@ubuntu.com</email>
</author>
<published>2014-06-18T07:35:53Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=b686f453b14e11a69ecbd368509f7eaf1596c6e0'/>
<id>urn:sha1:b686f453b14e11a69ecbd368509f7eaf1596c6e0</id>
<content type='text'>
This is a internal struct not a external interface so the actual
breakage should be small.
</content>
</entry>
<entry>
<title>invalid cache if architecture set doesn't match</title>
<updated>2014-05-10T10:50:00Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-05-10T10:50:00Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=7a223b933cab0447438ca2e964576da39078eaf4'/>
<id>urn:sha1:7a223b933cab0447438ca2e964576da39078eaf4</id>
<content type='text'>
The cache heavily depends on the architecture(s) it is build for,
especially if you move from single- to multiarch. Adding a new
architecture to dpkg therefore has to be detected and must invalidate
the cache so that we don't operate on incorrect data.

The incorrect data will prevent us from doing otherwise sensible
actions (it doesn't allow bad things to happen) and the recovery is
simple and automatic in most cases, so this hides pretty well and is
also not as serious as it might sound at first.

Closes: 745036
</content>
</entry>
<entry>
<title>parse and retrieve multiple Descriptions in one record</title>
<updated>2014-05-09T11:06:27Z</updated>
<author>
<name>David Kalnischkies</name>
<email>kalnischkies@gmail.com</email>
</author>
<published>2013-08-18T20:20:25Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=ffe3c68e494efc1c2c4d748fa9d69e150867e5c2'/>
<id>urn:sha1:ffe3c68e494efc1c2c4d748fa9d69e150867e5c2</id>
<content type='text'>
It seems unlikely for now that proper archives will carry multiple
Description-* stanzas in the Packages (or Translation-*) file, but
sometimes apt eats its own output as shown by the usage of the CD team
and it would be interesting to let apt output multiple translations
e.g. in 'apt-cache show'.
</content>
</entry>
<entry>
<title>abstract version hash comparison a bit</title>
<updated>2014-03-13T12:58:46Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-03-12T16:55:08Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=68134bda8868a8614edf137aad7e9be61cd2a6ee'/>
<id>urn:sha1:68134bda8868a8614edf137aad7e9be61cd2a6ee</id>
<content type='text'>
In #737085 we see that apt can be confused if informations about
versions only differ slightly. This commit adds a way of at least adding
a few more data points with the next abi break to help a bit with it.

Git-Dch: Ignore
</content>
</entry>
<entry>
<title>cleanup headers and especially #includes everywhere</title>
<updated>2014-03-13T12:58:45Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-03-05T21:11:25Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=453b82a388013e522b3a1b9fcd6ed0810dab1f4f'/>
<id>urn:sha1:453b82a388013e522b3a1b9fcd6ed0810dab1f4f</id>
<content type='text'>
Beside being a bit cleaner it hopefully also resolves oddball problems
I have with high levels of parallel jobs.

Git-Dch: Ignore
Reported-By: iwyu (include-what-you-use)
</content>
</entry>
<entry>
<title>warning: unused parameter ‘foo’ [-Wunused-parameter]</title>
<updated>2014-03-13T12:58:45Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-03-01T14:11:42Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=655122418d714f342b5d9789f45f8035f3fe8b9a'/>
<id>urn:sha1:655122418d714f342b5d9789f45f8035f3fe8b9a</id>
<content type='text'>
Reported-By: gcc -Wunused-parameter
Git-Dch: Ignore
</content>
</entry>
</feed>
