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
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
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
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
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
57 2008-08-06 Andreas Koenig <k@andreas-koenigs-computer.local>
59 * We should probably guarantee that no duplicates enter the aggregator
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
68 commit 10176bf6b79865d4fe9f46e3857a3b8669fa7961
69 Author: Andreas J. Koenig <k@k75.(none)>
70 Date: Sat Aug 2 07:58:04 2008 +0200
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
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
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
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
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
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
194 change-log-default-name: "Todo"