bdcd91c28c0f5269d8971b9f5ec5d68f7155492a |
|
08-Feb-2018 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-index: Fix assert-crash with lock_method=dotlock
The dotlock wasn't deleted in all code paths. Fix this by simplifying
the unlocking to be done the same way with and without dotlock.
Fixes:
Panic: file mail-cache.c: line 624 (mail_cache_lock_file): assertion failed: (cache->dotlock == NULL) |
69a43b024f964c86a73f7940922c79b2960843cf |
|
24-Jan-2018 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-index: Update comments for mail_cache_decision_*() |
67bbcd664bebce9a507a49c67273be4814d07c97 |
|
12-Oct-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-index: Add mail_index_cache_optimization_settings |
52b52b5f9e5d705f068cf38c4fd0e10931c776d9 |
|
06-Jun-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-index: Fix reset_id handling in mail_cache_get_missing_reason() cache
Broken by bd897f82a5d9b00ba256b462d2056c2dc7df257c |
bd897f82a5d9b00ba256b462d2056c2dc7df257c |
|
05-Jun-2017 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
lib-index: Add cache to mail_cache_get_missing_reason()
This avoids excessive CPU usage when it's called in a loop for many mails. |
38228c961f0e2c5fb8a0620a8ce620bb245dc88d |
|
11-May-2017 |
Aki Tuomi <aki.tuomi@dovecot.fi> |
lib-index: Add mail_cache_expunge_count
It can be called to correctly handle cache counters
when records are removed. |
e9594e86dc601b72c1636f2b901dcfbf4ffaf47f |
|
21-Nov-2016 |
Aki Tuomi <aki.tuomi@dovecot.fi> |
lib-index: Limit mmap errors in index cache to 1/s |
0dffa25d211be541ee3c953b23566a1a990789df |
|
06-Jun-2016 |
Timo Sirainen <timo.sirainen@dovecot.fi> |
global: unsigned int:1 -> bool:1
perl -i -pe 's/unsigned int ([^,:;]+):1;/bool $1:1;/' **/*.[ch] |
ab70f55bb8d824ca1ed7c74196f2f502edd29cc7 |
|
07-Oct-2014 |
Timo Sirainen <tss@iki.fi> |
lib-index: mail_cache_lock() partial rewrite.
require_same_reset_id is no longer needed, if it ever was. If we're locking
the cache file, we always want the latest one. The logic of locking in
general was somewhat confusing and it probably didn't always successfully
lock when it should have, because the reset_id happened to match an old
file. |
2219015cc814b18a72d8d37696a5bffc52edd767 |
|
07-Oct-2014 |
Timo Sirainen <tss@iki.fi> |
lib-index: Don't keep cache file locked for as long while syncing index.
The earlier code was required for updating the cache offsets, but this code
no longer exists. Now we just need to update the record counts in the
header, which can be done quickly at the end of the sync. |
d33fc6c584718efd46159e1d8f46488b9dfc66f5 |
|
26-May-2013 |
Timo Sirainen <tss@iki.fi> |
lib-index: mail_cache_lookup*() can now return fields recently added with mail_cache_add()
Previously it was returning them if they had already been written to
dovecot.index.cache, but not if they were still in the in-memory buffer.
This avoids caching/parsing the same field multiple times when messages
aren't accessed in ascending order (e.g. when sorting messages). |
285e73e04966dd57d5eda183be56e8a59e081c93 |
|
27-Nov-2012 |
Timo Sirainen <tss@iki.fi> |
lib-index: Added v2.2+ forwards compatibility to dovecot.index.cache |
f0ff961282e618945dfe997dc45ff95d656e5790 |
|
03-Nov-2012 |
Timo Sirainen <tss@iki.fi> |
lib-index: Replaced cache's deleted_space with deleted_record_count.
This way when expunging messages we don't need to actually read through the
cache file and calculate how many bytes will be freed, we can simply
increase the deleted_record_count by 1. We'll still compress the cache file
approximately after 20% of the space (records) has been deleted.
This also converts the old "hole offset" header field to tracking the number
of records in the cache file. Otherwise we'd have to assume that all of the
messages in mailbox have a cache record, but that isn't true for users who
have only temporary cache fields. This "hole offset" cannot be trusted
completely, because nothing prevents old Dovecot version from simply writing
a hole offset there and messing up the record counts. Because of this there
are a couple of extra sanity checks for it. (Unfortunately there wasn't any
easy way to simply add a new field to header without breaking backwards
compatibility.) |
920b9f0fdfa5a5d7763e05736601a31bcb291a53 |
|
03-Nov-2012 |
Timo Sirainen <tss@iki.fi> |
lib-index: Added minor version to dovecot.index.cache file header. |
330d54e9e3bf076efe91f101c562d1268160b128 |
|
03-Nov-2012 |
Timo Sirainen <tss@iki.fi> |
lib-index: If a cache record is larger than 64 kB, don't add it to cache file.
This shouldn't affect anything except mails that probably shouldn't exist in
the first place. |
131b073bdc3650083b00616dc778dd3017c2bbb5 |
|
03-Nov-2012 |
Timo Sirainen <tss@iki.fi> |
lib-index: Cache record linking is now while writing new records, not later with pwrite().
This should make performance somewhat better. It also means that now the
only overwrites to cache file are to the file header and the fields header.
This means that we no longer have to invalidate file_cache (with
mmap_disable=yes) except when reading the headers, which is always done
anyway.
It would be nice to move the overwritten fields in the headers to a cache
header in dovecot.index file, but this is a bit tricky currently. When
writing these headers the cache file needs to be locked to avoid race
conditions. To avoid deadlocks the transaction log would have to be locked
before the cache. The code to do all this would still be a bit complex, and
to keep backwards compatibility with old Dovecot versions it would still
have to do the overwriting until the backwards compatibility code is
disabled. |
18d92dbbb752c79dc461514e52f7ef11847e636b |
|
18-Oct-2012 |
Timo Sirainen <tss@iki.fi> |
lib-index: Added MAIL_INDEX_OPEN_FLAG_SAVEONLY to do only minimal reads from cache file. |
8ac66221e8fdc2c5523cff1893e0d1c5de25fa49 |
|
18-Oct-2012 |
Timo Sirainen <tss@iki.fi> |
lib-index: Code cleanup: Removed mail_cache.data |
82ed69779f49bd71ef1b570ce8aca67d357dbee8 |
|
18-Oct-2012 |
Timo Sirainen <tss@iki.fi> |
lib-index: mail_cache_map() API cleanup |
289064eb21595d3e4460439eccdc48232d13f5e1 |
|
04-Oct-2012 |
Timo Sirainen <tss@iki.fi> |
lib-index: Simplified writing to dovecot.index.cache file.
The old method was basically:
- write max. 32 kB to internal buffer
- flush it by writing to reserved areas (with no locks)
The reserved areas were acquired by doing (whenever needed):
- lock dovecot.index.cache
- reserve data from dovecot.index.cache for writing, potentially increasing
the file size by writing 0 bytes. the reserved area size varies.
- unlock dovecot.index.cache
This worked, but if multiple processes were writing to the cache file it
could have left incomplete reserved areas as holes. The holes were attempted
to be filled if they were large enough.
The new method is:
- write max. 256 kB to internal buffer
- lock dovecot.index.cache
- append the buffer to dovecot.index.cache
- unlock dovecot.index.cache
No reserved areas, holes or anything else weird going on.
Ideally no data would be overwritten in the dovecot.index.cache file, only
appended. Unfortunately currently some data is still overwritten:
- mail_cache_header.{deleted_space,continued_record_count}
- mail_cache_header_fields.next_offset when writing a new one
- mail_cache_header_fields.{last_used,decision}
- mail_cache_record.prev_offset
The changing headers could eventually be moved to dovecot.index. This
however is a backwards-incompatible change. The record's prev_offset could
maybe simply just not be written in those (somewhat rare) problematic
situations. |
a75d470c9223a75801418fcdda258885c36317e0 |
|
20-Aug-2012 |
Timo Sirainen <tss@iki.fi> |
Reverted "support for non-pointers" part of the hash table API changes.
Originally I wrote it using clang, which didn't give as many warnings as gcc
did. I guess this way is safer anyway.. |
678d0463849ba777106eb7875f27db07a5d8e3df |
|
19-Aug-2012 |
Timo Sirainen <tss@iki.fi> |
Hash table API is now (mostly) type safe. |
cb6b9d1ce0a3514b98feabef5a477afaf66ce549 |
|
09-Feb-2012 |
Timo Sirainen <tss@iki.fi> |
lib-index: mail_cache_open_and_verify() is now public. |
008a83e9f680f04f69789fb702232416eab2a86c |
|
10-Dec-2011 |
Timo Sirainen <tss@iki.fi> |
lib-index: Allow updating cache's last_used field with mail_cache_register_fields() |
ad6fe4a3c0d589bb2db5238e0a6418f8d863b3c2 |
|
30-Aug-2011 |
Timo Sirainen <tss@iki.fi> |
lib-index: Added mail_cache_view_update_cache_decisions() |
8fa86f7ef06aa6cf0239c7ca2eb98889691d40d4 |
|
30-Aug-2011 |
Timo Sirainen <tss@iki.fi> |
lib-index: Added mail_cache_view_update_cache_decisions() |
763f83d3cc47bce05cbc396419c4db2b71dd8e68 |
|
11-Sep-2008 |
Timo Sirainen <tss@iki.fi> |
Mail cache: If locking failed, the next time try to lock it only once.
Also increased the first timeout to 10 seconds.
--HG--
branch : HEAD |
d0bbbc7057aa33b52ee378196dee7d773437468f |
|
11-Sep-2008 |
Timo Sirainen <tss@iki.fi> |
Mail cache compression: If we can't get lock immediately, do it later.
--HG--
branch : HEAD |
5724e7103eed12fe36b55a7b5a8653284a2184b9 |
|
11-Sep-2008 |
Timo Sirainen <tss@iki.fi> |
Mail cache: lock_method=dotlock could have caused a process to deadlock with itself.
--HG--
branch : HEAD |
3f5b0dcbdc4f804a99935b648b34540bd2dc9c08 |
|
09-Sep-2008 |
Timo Sirainen <tss@iki.fi> |
Mail cache file: Changed lock timeout to just 2 seconds.
It's better to not update cache than waste a lot of time waiting for a lock.
Also increased staleness timeout to 5 minutes - it's safer that way and with
the reduced lock timeout doesn't matter as much.
--HG--
branch : HEAD |
84da9c6d6e162b064608cbfa9a47e0d60553c593 |
|
09-Sep-2008 |
Timo Sirainen <tss@iki.fi> |
mail_cache_lock(): Return -1 if locking times out.
This fixes cache compression starting even when locking timed out.
--HG--
branch : HEAD |
d6693dac50e4fb547d8dc61b85820f1761a33575 |
|
02-Mar-2008 |
Timo Sirainen <tss@iki.fi> |
Optimized cache record loop tracking.
--HG--
branch : HEAD |
ba8bdb9dfc467ed2e6a988c42567fc44a28bebfc |
|
02-Mar-2008 |
Timo Sirainen <tss@iki.fi> |
Optimized cache record loop tracking.
--HG--
branch : HEAD |
6a7f64562ddd0dd2fec755ec4e9c9afde8e85cf1 |
|
10-Jan-2008 |
Timo Sirainen <tss@iki.fi> |
Link cache records together directly when writing the new records, instead
of delaying them until later and causing lots of small writes. We still do
this delayed check and do the writes when it's required, but it shouldn't
happen normally.
--HG--
branch : HEAD |
ddbad7a661c0663fafd2b79393efa85f840d6af6 |
|
04-Jan-2008 |
Timo Sirainen <tss@iki.fi> |
Fixes to handling when fields are dropped from cache file.
--HG--
branch : HEAD |
0beb5d6c661ee68130a954ed0f31a34c19195fb7 |
|
29-Dec-2007 |
Timo Sirainen <tss@iki.fi> |
Update caching decision for fields even if it doesn't currently exist in the
cache file. If the field is added later within the session, the decision and
last_used field will be correct.
--HG--
branch : HEAD |
956f7778e413d3184d69e7b96e4a6b3cd5570bcd |
|
22-Nov-2007 |
Timo Sirainen <tss@iki.fi> |
mail_cache_field_want_add(): Return TRUE for temp fields only if we're
adding the field to a new enough message.
--HG--
branch : HEAD |
bc564f1d3d953cf724828322b11ae89e0f59ffc9 |
|
18-Nov-2007 |
Timo Sirainen <tss@iki.fi> |
NFS cache flushing APIs changed and backend implements it a bit differently.
Hopefully this works now more correctly.
--HG--
branch : HEAD |
2131ef7a3390f15ea6a958256ea54908f1096350 |
|
16-Nov-2007 |
Timo Sirainen <tss@iki.fi> |
Fixed cache file's NFS attribute cache flushing.
--HG--
branch : HEAD |
6e235046e1d8e9d89fc948f5c623676c20421a28 |
|
06-Nov-2007 |
Timo Sirainen <tss@iki.fi> |
When reading the latest fields, begin finding the fields from the last known
header instead of from the beginning.
--HG--
branch : HEAD |
f501ad38c51cf1d8f4f84313922c785e6ae6e81f |
|
06-Nov-2007 |
Timo Sirainen <tss@iki.fi> |
Keep a separate copy of mail_cache_header when mmap_disable=yes, otherwise
it could get cleared unexpectedly.
--HG--
branch : HEAD |
abb83d133dd082527d500916fca66a72fbbbaa8d |
|
05-Nov-2007 |
Timo Sirainen <tss@iki.fi> |
If we need to do more than 4 reads to get to the cached fields header,
compress the cache file.
--HG--
branch : HEAD |
6f73af3a3a6ee900c7e736874587968d76a20bc0 |
|
22-Sep-2007 |
Timo Sirainen <tss@iki.fi> |
mail_cache_transaction_commit()/rollback() API is now public and takes a **
pointer. Don't break if transaction is committed/rollbacked multiple times
for a cache view.
--HG--
branch : HEAD |
c25356d5978632df6203437e1953bcb29e0c736f |
|
16-Sep-2007 |
Timo Sirainen <tss@iki.fi> |
Changed .h ifdef/defines to use <NAME>_H format.
--HG--
branch : HEAD |
9a583c7a827f7a4d89ee43774f2d51ea6a214543 |
|
13-Aug-2007 |
Timo Sirainen <tss@iki.fi> |
Drop fields that haven't been used for 30 days when compressing.
--HG--
branch : HEAD |
73a44af966c790560a72a0447f37bb35b1031a83 |
|
15-Jul-2007 |
Timo Sirainen <tss@iki.fi> |
mail_cache_lookup_iter_next() returned -1 if entry didn't exist, causing
the first field for the record not to be added to cache.
--HG--
branch : HEAD |
51b979b6414b940f04677a7e2d064be119345954 |
|
12-Jul-2007 |
Timo Sirainen <tss@iki.fi> |
Flush NFS caches when needed if MAIL_INDEX_OPEN_FLAG_NFS_FLUSH is enabled.
--HG--
branch : HEAD |
df6478c4cf605bd81b3891c148b84c14eb6c4035 |
|
12-Jul-2007 |
Timo Sirainen <tss@iki.fi> |
Don't create cache file until something is actually being added to it.
--HG--
branch : HEAD |
6b85bc4b03e552cfaeeae872d63c2d8ac5fcb7c4 |
|
14-Jun-2007 |
Timo Sirainen <tss@iki.fi> |
Changed mail_cache_foreach() to be an iterator: mail_cache_lookup_iter_*()
--HG--
branch : HEAD |
1b97a59edb073e9a89ac43a21a9abe5d590d4a56 |
|
14-Jun-2007 |
Timo Sirainen <tss@iki.fi> |
Cache code cleanups
--HG--
branch : HEAD |
d8ade1a6747c57095fba2c3765bbd9c1a19efbbb |
|
14-Jan-2007 |
Timo Sirainen <tss@iki.fi> |
Removed file offset caching from mail_cache_foreach(). It didn't work
correctly when cache file was just compressed, and caused "cache file
corrupted" errors.
--HG--
branch : HEAD |
1a21e7049796c98d6d998fcf7a438d7a97193dc4 |
|
20-Dec-2006 |
Timo Sirainen <tss@iki.fi> |
Prefix COMPRESS_* defines with MAIL_CACHE_.
--HG--
branch : HEAD |
00efa7d99981e18e286c02b18c1163dde18ee521 |
|
15-Dec-2006 |
Timo Sirainen <tss@iki.fi> |
Type safe callbacks weren't as easy as I thought. Only callback(void
*context) can be handled generically. Others can be handled specially, but
only if all the parameters are pointers, otherwise eg. int parameter can be
replaced with long without compiler giving any warnings.
--HG--
branch : HEAD |
59151b71059df1190acd75d8717ed04a7920c862 |
|
15-Dec-2006 |
Timo Sirainen <tss@iki.fi> |
Added context parameter type safety checks for most callback APIs.
--HG--
branch : HEAD |
d9fdacd5fb3e07997e5c389739d2054f0c8441d8 |
|
06-Dec-2006 |
Timo Sirainen <tss@iki.fi> |
Lock handling changes. Everything goes through file-lock API now and there's
only a single enum listing the different lock methods. This change exposed
some unneeded (or possibly even wrong?) unlock calls in index file handling
which were fixed.
--HG--
branch : HEAD |
e192a3b1ca8ae857e7d87298ea507d32977ba570 |
|
13-Oct-2006 |
Timo Sirainen <tss@iki.fi> |
Don't use time_t anymore in cache file. uint32_t is large enough and makes
cache files compatible between 32bit and 64bit systems.
--HG--
branch : HEAD |
6a8a4c9f530668cd8961b73d702856ed94f05f80 |
|
13-Oct-2006 |
Timo Sirainen <tss@iki.fi> |
Delay opening the cache file until it's actually needed.
--HG--
branch : HEAD |
da985034a708db2f61394b30d117050ae6829ee5 |
|
11-Jul-2006 |
Timo Sirainen <tss@iki.fi> |
Added support for calling expunge handler for an extension even if the
extension isn't used in the opened index file. Added context-parameter to
the callback function. If the function returns -1, the sync is failed.
--HG--
branch : HEAD |
8d80659e504ffb34bb0c6a633184fece35751b18 |
|
28-Jun-2006 |
Timo Sirainen <tss@iki.fi> |
Array API redesigned to work using unions. It now provides type safety
without having to enable DEBUG, as long as the compiler supports typeof().
Its API changed a bit. It now allows directly accessing the array contents,
although that's not necessarily recommended. Changed existing array usage to
be type safe in a bit more places. Removed array_t completely. Also did
s/modifyable/modifiable/.
--HG--
branch : HEAD |
58be9d6bcc3800f5b3d76a064ee767fbe31a5a8a |
|
03-May-2006 |
Timo Sirainen <tss@iki.fi> |
Don't compress cache file if it was just compressed by another process.
--HG--
branch : HEAD |
8ecbb74bc4c7f6f6145da3525941d1d0e20e67f1 |
|
05-Feb-2006 |
Timo Sirainen <tss@iki.fi> |
Removed immediate_stale_timeout and changed the stale_timeout behavior to
check both dotlock and the file it protects, and overwrite the lock file
whenever neither of them have been modified for stale_timeout seconds (ie.
also immediately if their timestamps are old enough).
--HG--
branch : HEAD |
811f2e26d9782d9cb99fdf82e18ffa0a77564fe2 |
|
06-Jan-2006 |
Timo Sirainen <tss@iki.fi> |
Moved uoff_t and time_t compatibility checks to cache file, since they're
not needed for index/log. Only index file incompatibility check is now
endianess flag.
--HG--
branch : HEAD |
a817fdcc43aedf423e2134091d5f83f91d64bcc9 |
|
30-Sep-2005 |
Timo Sirainen <tss@iki.fi> |
Unlocking cache file can also corrupt it since it modifies it. Added a
return value for it and checks to handle the failure. Fixes a crash in some
error situations.
--HG--
branch : HEAD |
dbd9604da561399cc6255289d5b6f6f662ab2d00 |
|
14-May-2005 |
Timo Sirainen <tss@iki.fi> |
Whenever writing to cache file, also updated file_cache. Fixes problems with
mmap_disable=yes.
--HG--
branch : HEAD |
287ba82a8da3eaa473b5735d4eeac2fb4c5d8117 |
|
12-Mar-2005 |
Timo Sirainen <tss@iki.fi> |
Changed many buffers to arrays. Cleans up the code a lot.
--HG--
branch : HEAD |
13c6532dc104d23061e6901783ceb1ff8872c206 |
|
16-Jan-2005 |
Timo Sirainen <tss@iki.fi> |
Changed dotlocking API.
--HG--
branch : HEAD |
6931e77051716370803d2d69bdeb6c7dff7d559d |
|
19-Dec-2004 |
Timo Sirainen <tss@iki.fi> |
mail_cache_decision_*() prototypes were wrong.
--HG--
branch : HEAD |
2af769daebd83719ac696a440e06f6020471cec0 |
|
05-Dec-2004 |
Timo Sirainen <tss@iki.fi> |
lock_method=dotlock doesn't crash anymore while trying to modify cache file.
We didn't previously deal with any fatal errors that fcntl/flock locking
could have given but assumed that the locking succeeded.
--HG--
branch : HEAD |
f23298fea47eecbeded985ee2537a34c4c4ef56b |
|
05-Dec-2004 |
Timo Sirainen <tss@iki.fi> |
Added "sync lost" handlers which are called with mmap_disable=yes when index
file is re-read without going through all of the transaction log.
--HG--
branch : HEAD |
fcfb528483369975066c6adf1c55c16e6fb6e91f |
|
29-Nov-2004 |
Timo Sirainen <tss@iki.fi> |
Crashfixes for reading corrupted cache files.
--HG--
branch : HEAD |
1098fc409a45e7603701dc94635927a673bee0c1 |
|
08-Nov-2004 |
Timo Sirainen <tss@iki.fi> |
Cache file works now with mmap_disable=yes. Still needs a few optimizations.
--HG--
branch : HEAD |
6a19e109ee8c5a6f688da83a86a7f6abeb71abdd |
|
06-Nov-2004 |
Timo Sirainen <tss@iki.fi> |
Removed cache_offset from mail_index_record and changed it to use extension
instead. Added possibility to register sync and expunge handlers for
extensions. Changed the way extension resets work: all extension updates
which were committed without having seen the reset are ignored.
--HG--
branch : HEAD |
58febed28f2af78b2d8a281c851d9b67160c4bd3 |
|
16-Sep-2004 |
Timo Sirainen <tss@iki.fi> |
Fix for circular record list detection, we can't use data stack for buffer.
--HG--
branch : HEAD |
4edf90751f075cc6ab3d6f53fc78b656efa80922 |
|
12-Sep-2004 |
Timo Sirainen <tss@iki.fi> |
ID mapping fixes.
--HG--
branch : HEAD |
44ff75ca53188056ff5a3e50428e3f2078800b3c |
|
31-Jul-2004 |
Timo Sirainen <tss@iki.fi> |
Transaction log file is now read-lockless.
--HG--
branch : HEAD |
e96fb85799dc95603bb1a6b4d3685df2d042a2f8 |
|
20-Jul-2004 |
Timo Sirainen <tss@iki.fi> |
Fixes for big endian systems.
--HG--
branch : HEAD |
0a51697f82fbd45a511710479e99efd42dc18453 |
|
20-Jul-2004 |
Timo Sirainen <tss@iki.fi> |
Limit how much a single transaction can reserve space
--HG--
branch : HEAD |
4bbee99b3aef449a9a2a11a5b5cf1ca486915c49 |
|
20-Jul-2004 |
Timo Sirainen <tss@iki.fi> |
Cache fixes. Decisions are saved again.
--HG--
branch : HEAD |
e015e2f7e7f48874495f9df8b0dd192b7ffcb5cc |
|
18-Jul-2004 |
Timo Sirainen <tss@iki.fi> |
Header caching redesigned. New design allows caching decisions per field, so
they can be divided to temporary/permanent. Cached headers are now always
returned in original order, old code didn't guarantee it. Some other caching
changes. (still missing code to store changes in caching decisions)
--HG--
branch : HEAD |
ca316aeb7648d3f1bcf45231f73ddeb1b67a6961 |
|
10-Jul-2004 |
Timo Sirainen <tss@iki.fi> |
Cache fixes. Lookups now look into transactions too.
--HG--
branch : HEAD |
992a13add4eea0810e4db0f042a595dddf85536a |
|
08-Jul-2004 |
Timo Sirainen <tss@iki.fi> |
Cache file fixes, API changes, etc. It's still in somewhat ugly state, but
getting better..
--HG--
branch : HEAD |
72cbf33ae81fde08384d30c779ff540752d9256c |
|
04-Jul-2004 |
Timo Sirainen <tss@iki.fi> |
Cache updating is done now by first reserving space where to write, and then
writing to it whenever buffer gets full. There is no persistent cache file
locks anymore because of this, but it also means that the same cached field
may be written multiple times to the file by different processes. Also since
we reserve more space than we actually need at first, it some space can be
wasted if multiple processes are updating the cache.
--HG--
branch : HEAD |
a40d26f83af808a0ea1e212c001d682a96d870b0 |
|
04-Jul-2004 |
Timo Sirainen <tss@iki.fi> |
Caching fixes and optimizations. Removed all network byte ordering code -
it's not worth the trouble and would require massive changes in indexing
code as well to be useful. Changed next_offset to prev_offset which is
updated while syncing index.
--HG--
branch : HEAD |
fd2f5fbc1f07aa93e2214a28cdf02437fb7d06c8 |
|
04-Jul-2004 |
Timo Sirainen <tss@iki.fi> |
Cache file compression works now and compressed cache file is reopened.
Several other cleanups related to opening - cache file isn't created
immediately anymore.
--HG--
branch : HEAD |
8aacc9e7c84f8376822823ec98c2f551d4919b2e |
|
28-Jun-2004 |
Timo Sirainen <tss@iki.fi> |
Added some smartness for deciding what to cache. Cache compression code compiles, but untested.
--HG--
branch : HEAD |
56f45b3f3ae20e5c933701f4657dda5ef1916855 |
|
19-Jun-2004 |
Timo Sirainen <tss@iki.fi> |
Several fixes and cleanups to cache file code, still badly broken
--HG--
branch : HEAD |
da5d50534cfca45d0aaaf0bdac17b287b4588809 |
|
20-Jun-2004 |
Timo Sirainen <tss@iki.fi> |
Beginnings of getting cache file working again. Easy to break currently, but
basics seem to work.
--HG--
branch : HEAD |
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834 |
|
27-Apr-2004 |
Timo Sirainen <tss@iki.fi> |
importing new index code. mbox still broken.
--HG--
branch : HEAD |