1 |
This patch is the actual replacement cache subsystem. |
2 |
|
3 |
Cache db backend classes are now designed as repository centric, |
4 |
instead of category centric. Reasoning is that a cache should be |
5 |
standalone, should be able to specify single obj for a repo, and it |
6 |
allows moving the eclass cache into the cache backend, instead of |
7 |
having it seperated (and incredibly slow). |
8 |
|
9 |
anydbm, flat_hash, metadata (rsync's metadata/cache), flat_list are |
10 |
all reimplemented. |
11 |
|
12 |
Addition of a sql_template class, and a sqlite implementatin for |
13 |
testing the sql_template class. |
14 |
|
15 |
Right now... those are slow. Comes down the fact stable portage can |
16 |
only ask the cache for a single cpv at a time, so it's not exactly |
17 |
leveraging the power of a select statement. Inclusion of the sqlite |
18 |
class can be moved to another package, although sql_template should |
19 |
remain. |
20 |
|
21 |
Finally... cache/util.py . This module holds code for doing cache X |
22 |
-> cache Y cloning efficiently, while providing hooks for user code to |
23 |
register callbacks (implementation of percentage counts, every N |
24 |
merged, etc). |
25 |
~harring |