previous checkin increased the filesize, so we adjust
[rersyncrecent.git] / Todo
blob64b57366dea82204917da19429238828f036f9f7
1 2008-08-13  Andreas Koenig  <k@andreas-koenigs-computer.local>
3         * On OSes not supporting symlinks we expect that RECENT.recent contains
4         the contents of the principal recentfile. Actually this is identical on
5         systems supporting symlinks. Simple, what follows from that is that we
6         need to keep the serializer in the metadata because we cannot read it
7         from the filename, doesn't it? Of course not. It's a chicken and egg
8         problem. This leaves us with the problem to actually parse the
9         serialized data to find out in which format it is. So who can do the 4
10         or 5 magics we wanted to support?
12 2008-08-09  Andreas Koenig  <k@andreas-koenigs-computer.local>
14         * remotebase and recentfile_basename are ugly names. Now that we need a
15         word for the shortest/principal/driving recentfile too we should do
16         something about it.
18         localroot is good. rfile is good. local_path() is bad, local_path($path)
19         is medium, filenameroot() is bad, remotebase is bad, recentfile is
20         already deprecated.
22         Up to now remotebase was the string that described the remote root
23         directory in rsync notation, like pause.perl.org::authors. And
24         recentfile_basename was "RECENT-1h.yaml".
26 2008-08-08  Andreas Koenig  <k@andreas-koenigs-computer.local>
28         * The test that was added in today's checkin is a good start for a test
29         of rmirror. We should have more methods in Recent.pm: verify,
30         addmissingfiles. We should verify the current tree, then rmirror it and
31         then verifytree the copy. We could then add some arbitrary file and let
32         it be discovered by addmissingfiles, then rmirror again and then
33         verifytree the copy again.
35         Then we could start stealing from csync2 sqlite database [no port to
36         OSX!] and fill a local DB. And methods to compare the database with the
37         recentfiles. Our strength is that in principle we could maintain state
38         with a single float. We have synced up to 1234567890.123456. If the Z
39         file does not add new files all we have to do is mirror the new ones and
40         delete the goners.
42         This makes it clear that we should extend current protocol and declare
43         that we cheat when we add files too late, just to help the other end
44         keeping track. Ah yes, that's what was meant when zloop was mentioned
45         earlier.
47         Maybe need to revisit File::Mirror to help me with this task.
49 2008-08-07  Andreas Koenig  <k@andreas-koenigs-computer.local>
51         * There must be an allow-me-to-truncate flag in every recentfile.
52         Without it one could construct a sequence of updates winning the locking
53         battle against the aggregator. Only if an aggregator has managed to
54         merge data over to the next level, truncating can be allowed. DONE with
55         accessor merged.
57 2008-08-06  Andreas Koenig  <k@andreas-koenigs-computer.local>
59         * We should probably guarantee that no duplicates enter the aggregator
60         array.
62 2008-08-02  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>
64         * To get merge operation faster would need a good benchmark test. What
65         02 spits out isn't reliable enough and is dominated by many other
66         things. Between
68         commit 10176bf6b79865d4fe9f46e3857a3b8669fa7961
69         Author: Andreas J. Koenig <k@k75.(none)>
70         Date:   Sat Aug 2 07:58:04 2008 +0200
72         and
74         commit 3243120a0c120aaddcd9b1f4db6689ff12ed2523
75         Author: Andreas J. Koenig <k@k75.(none)>
76         Date:   Sat Aug 2 11:40:29 2008 +0200
78         there was a lot of trying but the effect is hardly measurable with
79         current tests.  
81         * overhead of connecting seems high. When setting
82         max_files_per_connection to 1 we see that.
84 2008-08-01  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>
86         * 1217622571.0889 - 1217597432.86734 = 25138.2215600014
88         25138.2215600014/3600 = 6.98283932222261
90         It jumps into the eye that this is ~ 7 hours, not ~6, so there seems to
91         be a bug in the aggregator. FIXED
93 2008-07-27  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>
95         * e.g. id/Y/YE/YEWENBIN/Emacs-PDE-0.2.16.tar.gz: Do we have it, should
96         we have it, can we mirror it, mirror it!
98         I fear this needs a new class which might be called
99         File::Rsync::Mirror::Recent. It would collect all recentfiles of a kind
100         and treat them as an entity. I realize that a single recentfile may be
101         sufficient for certain tasks and that it is handy for the low level
102         programmer but it is not nice to use. If there is a delete in the 1h
103         file then the 6h file still contains it. Seekers of the best information
104         need to combine at least some of the recentfiles most of the time.
106         There is the place for the Z loop!
108         But the combination is something to collect in a database, isn't it. Did
109         csync2 just harrumph?
111 2008-07-26  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>
113         * it just occurred to me that hosts in the same mirroring pool could
114         help out each other even without rewriting the recentfile. Just fetch
115         the stuff to mirror from several places, bingo. But that's something
116         that should rather live in a separate package or in rsync directly.
118         * cronjobs are unsuited because with ntp they would all come at the full
119         minute and disturb each other. Besides that I'd hate to have a backbone
120         with more than a few seconds latency.
122 2008-07-25  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>
124         * a second rsync server with access control for PAUSE. Port? 873 is the
125         standard port, let's take 8873.
127         * if there were a filesystem based on this, it would have a slow access
128         to inexistent files. It would probably provide wrong readdir (only based
129         on current content) or also a slow one (based on a recentfile written
130         after the call). But it would provide fast access to existing files. Or
131         one would deliberately allow slightly blurred answers based on some
132         sqlite reflection of the recentfiles.
134         * todo: write a variant of mirror() that combines two or more
135         recentfiles and treats them like one
137         * todo: signal handler to remove the tempfile
139 2008-07-24  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>
141         * now that we have the symlink I forgot how it should be used in
142         practice.
144         * the z loop: add missing files to Z file. Just append them (instead of
145         prepending). So one guy prepends something from the Y file from time to
146         time and another guy appends something rather frequently. Collecting
147         pond. When Y merges into Z, things get epoch and the collecting pond
148         gets smaller. What exactly are "missing files"?
150         take note of current epoch of the alpha file, let's call it the
151         recent-ts
153         find all files on disk
155         remove all files registered in the recentworld up to recent-ts
157         remove all files that have been deleted after recent-ts according to
158         recentworld
160 2008-07-23  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>
162         * rersyncrecent might be a cronjob with a (locked) state file which
163         contains things like after and maybe last z sync or such?
165         rrr-mirror might be an alternative name but how would we justify the
166         three Rs when there is no Re-Rsync-Recent?
168         With the --loop parameter it is an endless loop, without it is no loop.
169         At least this is simple.
171         * todo: new accssor z-interval specifies how often the Z file is updated
172         against the filesystem. We probably want no epoch stamp on these
173         entries. And we want to be able to filter the entries (e.g. no
174         by-modules and by-category tree)
176 2008-07-20  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>
178         * Fill the Z file. gc or fsck or both. Somehow we must get the old files
179         into Z. We do not need the other files filled up with filesystem
180         contents though.
182         * need interface to query for a file in order to NOT call update on
183         PAUSE a second time within a short time.
185 2008-07-19  Andreas J. Koenig  <andreas.koenig.7os6VVqR@franz.ak.mind.de>
187         * recommended update interval? Makes no sense, is different for
188         different users.
190         * Moosify
192         Local Variables:
193         mode: change-log
194         change-log-default-name: "Todo"
195         tab-width: 2
196         left-margin: 2
197         End: