annotate TODO @ 165:8ea6b5ddc5a5 noffle

[svn] * src/lock.h,src/lock.c,src/noffle.c: Add lazy lock release. Only release the lock and close the databases if (a) another process signals us SIGUSR1 indicating it wants the lock, or (b) it is explicitly requested by a call to new function Lock_syncDatabases(). When waiting for the lock, SIGUSR1 the holding process every second. This is all an attempt to minimise the number of times we need to close and open the database. When (ha!) the database is replaced by something that can handle multiple simultaneous writers (with appropriate locking) this won't be necessary.
author bears
date Thu, 25 Jan 2001 13:38:31 +0000
parents 3d243292468d
children 1d92abe57427
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
42
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
1 -------------------------------------------------------------------------------
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
2 NOFFLE Todolist
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
3 -------------------------------------------------------------------------------
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
4
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
5 Urgent
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
6 ------
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
7
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
8 * Has Client_connect resource leaks if it fails?
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
9
126
7c7a7c96d35b [svn] Release-1-0 merge
bears
parents: 121
diff changeset
10 * Bug: Lock_closeDatabases must do a Cont_write() if dirty and Lock_openDatabases()
7c7a7c96d35b [svn] Release-1-0 merge
bears
parents: 121
diff changeset
11 should check if it is necessary to reread the group content using a timestamp.
42
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
12
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
13 Later
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
14 -----
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
15
161
fbbdc46429b4 [svn] Add handling of connection breakdown during a fetch to later section.
enz
parents: 126
diff changeset
16 * Make Noffle handle a connection break-down during a fetch more gracefully.
fbbdc46429b4 [svn] Add handling of connection breakdown during a fetch to later section.
enz
parents: 126
diff changeset
17 At present it still continues to fetch articles, generating a
fbbdc46429b4 [svn] Add handling of connection breakdown during a fetch to later section.
enz
parents: 126
diff changeset
18 retrieving failed article for each article left.
fbbdc46429b4 [svn] Add handling of connection breakdown during a fetch to later section.
enz
parents: 126
diff changeset
19
121
a0a96e1021c3 [svn] Performance of group database
enz
parents: 45
diff changeset
20 * Improve performance of group database. Using GDBM is a bad choice,
a0a96e1021c3 [svn] Performance of group database
enz
parents: 45
diff changeset
21 better use a btree from the Berkeley db library in libc.
a0a96e1021c3 [svn] Performance of group database
enz
parents: 45
diff changeset
22 This will be a good time for a redesign of the group.h interface
a0a96e1021c3 [svn] Performance of group database
enz
parents: 45
diff changeset
23 with respect to process concurrency if the simple global locking strategy
a0a96e1021c3 [svn] Performance of group database
enz
parents: 45
diff changeset
24 will be changed in the future.
a0a96e1021c3 [svn] Performance of group database
enz
parents: 45
diff changeset
25
42
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
26 * Add "hostname" config option for setting the FQHN in generated message IDs.
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
27
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
28 * Read timeout when running as server and automatically close if client
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
29 does not send data for a longer time.
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
30
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
31 * Implement simple filter using popen or fifos.
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
32
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
33 * Make compatible to latest NNTP draft.
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
34
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
35 * Improve speed of online mode: Keep connection to server open for a while
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
36
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
37 * Check all in
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
38 http://mars.superlink.net/user/tal/writings/news-software-authors.html
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
39 (Use NOV library? Use inews for validating posted articles? ... )
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
40
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
41 * Store requested articles by group + number. This would allow to create
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
42 pseudo-groups (like <groupname>.requested) that contained only fully
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
43 downloaded articles in overview mode (very nice and clever
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
44 idea sent in by a user, it would make using overview mode much easier).
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
45 Second advantage: Noffle would work with servers that have retrieving
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
46 articles by message-id disabled.
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
47
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
48 * Expire should clean up empty request/outgoing directories, so they will not
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
49 exists forever after a server change.
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
50
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
51 * Do not log program abortion due to SIGINT, if no inconsistency can occur,
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
52 (e.g. when calling 'noffle -d' to a pipe and next program terminates or
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
53 pressing ^C).
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
54
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
55 * Improve www page and documentation.
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
56
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
57 * Keeping the content list for several lock/unlock times could lead to
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
58 inconsistent results, because content list is maybe modified by
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
59 pseudo articles. Check this!
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
60
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
61 * Optimize NEWGROUPS (extra list?)
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
62
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
63 * Add noffle query option for checking all groups, if they are still
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
64 available at the remote server(s) and delete them otherwise.
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
65
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
66 * In online mode, retrieve full article header from remote server if client
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
67 sends a HEAD command. Presently, only the header lines from the overview
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
68 are returned and the article is only retrieved on an ARTICLE or BODY command.
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
69 The reason for this was that some readers (like pine) retrieve the group
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
70 overview by sending lots of HEAD commands and their performance would badly
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
71 suffer. On the other hand, some readers (like slrn) cache the header from
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
72 a HEAD command, even if a following ARTICLE command gets more header lines,
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
73 so that not all header lines are available when reading news in online mode,
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
74 before the next start of the reader. But some header lines (e.g. Reply-To)
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
75 are important.
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
76 Maybe make the behaviour configurable.
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
77
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
78
163
3d243292468d [svn] Added user wishlist section and first entry by Alberto Mardegan
enz
parents: 161
diff changeset
79 User-Wishlist
3d243292468d [svn] Added user wishlist section and first entry by Alberto Mardegan
enz
parents: 161
diff changeset
80 -------------
3d243292468d [svn] Added user wishlist section and first entry by Alberto Mardegan
enz
parents: 161
diff changeset
81
3d243292468d [svn] Added user wishlist section and first entry by Alberto Mardegan
enz
parents: 161
diff changeset
82 * Group requesting: I'd like noffle mantain a whitelist of users who can
3d243292468d [svn] Added user wishlist section and first entry by Alberto Mardegan
enz
parents: 161
diff changeset
83 request new subscriptions: for instance, if user mardy wants noffle to
3d243292468d [svn] Added user wishlist section and first entry by Alberto Mardegan
enz
parents: 161
diff changeset
84 fetch headers of it.comp.os.linux, he could just post a message to
3d243292468d [svn] Added user wishlist section and first entry by Alberto Mardegan
enz
parents: 161
diff changeset
85 noffle.control with something like this in the body:
3d243292468d [svn] Added user wishlist section and first entry by Alberto Mardegan
enz
parents: 161
diff changeset
86 subscribe-over: it.comp.os.linux
3d243292468d [svn] Added user wishlist section and first entry by Alberto Mardegan
enz
parents: 161
diff changeset
87
3d243292468d [svn] Added user wishlist section and first entry by Alberto Mardegan
enz
parents: 161
diff changeset
88
42
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
89 Some day far away
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
90 -----------------
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
91
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
92 * Understand supersedes header (useful for reading news.answers group)
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
93
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
94 * Get and execute cancel messages (read control.cancel, but use xpat to get
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
95 only cancels for groups in fetchlist). Seems to be expensive (20000 headers
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
96 a day, takes the remote server to search through)
2467ff423c15 [svn] * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
uh1763
parents:
diff changeset
97