Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

gdp / gdplogd / gdplogd.8 @ master

History | View | Annotate | Download (7.65 KB)

1 bfc4dc23 Eric Allman
.Dd August 7, 2015
2
.Dt GDPLOGD 8
3
.Os Swarm-GDP
4
.Sh NAME
5
.Nm gdplogd
6
.Nd GDP log server
7
.Sh SYNOPSIS
8
.Nm gdplogd
9
.Op Fl D Ar debug-spec
10
.Op Fl F
11
.Op Fl G Ar router-ip
12
.Op Fl n Ar n-workers
13
.Op Fl N Ar my-name
14
.Op Fl s Ar sig-strictness
15
.Sh DESCRIPTION
16
.Nm gdplogd
17
serves up logs from stable storage,
18
accepting commands from clients.
19
.Sh OPTIONS
20
.Bl -tag
21
.It Fl D Ar debug-spec
22
Turns on debugging flags using the libep-style format.
23
Useful only with the code in hand.
24
Implies
25
.Fl F .
26
.It Fl F
27
Runs the daemon in foreground.
28
At the moment the daemon always runs in foreground,
29
so this flag does nothing.
30
.It Fl G Ar router-ip
31
Contact the given IP address (which may be a DNS name)
32
to get a connection to the GDP routing layer.
33
This will be replaced by automatic discovery
34
(for example, using Zeroconf)
35
soon.
36
The address may have an optional port number after a colon.
37
If this is not specified,
38
the names listed in the
39
.Va swarm.gdp.routers
40
runtime administrative parameter
41
are searched.
42
See
43
.Xr gdp 7
44
for details.
45
.It Fl n Ar n-workers
46
Set the number of worker threads.
47
A more flexible way of setting these uses the
48
.Va libep.thr.pool.min_workers
49
and
50
.Va libep.thr.pool.max_workers
51
to set the minimum and maximum number of threads in the thread pool.
52
See
53
.Xr gdp 7
54
for details.
55
.It Fl N Ar my-name
56
Sets the name of this log daemon instance.
57
This is the same name used in the
58 395537ec Eric Allman
.Xr gdp-create 8
59 bfc4dc23 Eric Allman
command.
60
.Em The name must be unique in the GDP,
61
and hence will usually have a structured name such as
62
.Qq edu.berkeley.eecs.gdp-01.gdplogd .
63
.It Fl S Ar sig-strictness
64
Specifies how strict the daemon will be about enforcing signatures
65
on append (write) requests to logs.
66
It is only possible to make the checking stricter using this flag.
67
See the description of the
68
.Va swarm.gdplogd.crypto.strictness
69
parameter below for details.
70
This option is only intended to be used during a transition period;
71
it will go away in the future.
72
.El
73 65309098 Eric Allman
.
74 bfc4dc23 Eric Allman
.Sh EXIT STATUS
75 65309098 Eric Allman
.
76 bfc4dc23 Eric Allman
.Sh ADMINISTRATIVE PARAMETERS
77
These only describe the parameters specific to
78
.Nm .
79
See
80
.Xr gdp 7
81
for descriptions of shared parameters.
82
.Bl -tag
83 65309098 Eric Allman
.
84 645d717a Eric Allman
.It swarm.gdplogd.admin.output
85
Specify the location for output of administrative information.
86
This is intended to be used for management and visualization
87
of the system itself.
88
The values can be:
89
.Bl -tag -nested -compact -width 12m
90
.It stdout
91
Write to stdout.
92
.It stderr
93
Write to stderr.
94
.It syslog
95
Write to syslog.  The messages will be LOG_INFO priority.
96
.It N
97
(where N is an integer) Log to the file descriptor indicated.
98
.It filename
99
Append output to the named file.
100
.El
101
The information printed includes interesting events
102
(e.g., when logs are created) as well as optional probe results
103
(see below).
104 65309098 Eric Allman
.
105 645d717a Eric Allman
.It swarm.gdplogd.admin.probeintvl
106
If set to a positive integer,
107
this specifies the interval in seconds
108
at which gdplogd will output a summary of the known logs.
109
If zero or negative no summaries will be produced.
110 65309098 Eric Allman
.
111 5c2abdd9 Eric Allman
.It swarm.gdplogd.advertise.delay
112
The time in microseconds between advertisements.
113
This is to avoid flooding the network on startup
114
when there are many logs to advertise.
115 b38a3bc2 Eric Allman
Defaults to 0 (no delay).
116 5c2abdd9 Eric Allman
.
117 67898fe7 Eric Allman
.It swarm.gdplogd.advertise.interval
118
The time in seconds before
119
.Nm
120
will renew its advertisements of known names.
121 a69835f5 Eric Allman
If set to zero, advertisements will not be renewed.
122 86c9dc0e Eric Allman
Defaults to 300 seconds.
123 67898fe7 Eric Allman
.
124 bfc4dc23 Eric Allman
.It swarm.gdplogd.crypto.strictness
125
Specifies how strict the daemon will be about enforcing signatures
126
on append (write) requests to logs.
127
The value is a comma-separated string of words
128
from the set:
129 645d717a Eric Allman
.Bl -tag -nested -compact -width 12m
130 bfc4dc23 Eric Allman
.It Li Verify
131
If a signature exists on an append command
132
it must correctly verify.
133
.It Li Required
134
Signatures are required to exist on all append commands;
135
any unsigned commands are rejected.
136
.It Li Pubkey
137
Logs must have a public key associated with them.
138
If they do not,
139
attempts to open a file for writing will fail.
140
.El
141
Only the first character is actually tested, so
142
.Qq V,R
143
and
144
.Qq Verify,Required
145
are semantically the same.
146
This variable is only intended to be used during a transition period;
147
it will go away in the future.
148 65309098 Eric Allman
.
149 55f8e918 Eric Allman
.It swarm.gdplogd.ignore.sigpipe
150
If set, ignore the
151
.Li SIGPIPE
152
signal.
153
This allows
154
.Nm
155
to reconnect to the router if it gets a write error.
156
Defaults to
157
.Li false
158
on systems that allow the signal to be ignored on individual sockets,
159
.Li true
160
otherwise.
161
See also the
162
.Li swarm.gdp.ignore.sigpipe
163
parameter described in
164
.Xr gdp 7 .
165 ccdbb5fe Eric Allman
.
166 395537ec Eric Allman
.It swarm.gdplogd.log.dir
167 bfc4dc23 Eric Allman
The directory in which physical logs are written.
168 92adefd5 Eric Allman
It is relative to
169 78d491b9 Eric Allman
.Li swarm.gdp.data.root
170
(see
171
.Xr gdp 7 ) .
172 bfc4dc23 Eric Allman
Defaults to
173 92adefd5 Eric Allman
.Qq Pa glogs .
174 65309098 Eric Allman
.
175 395537ec Eric Allman
.It swarm.gdplogd.gob.mode
176 65309098 Eric Allman
The file mode to use when creating on-disk log files.
177
Defaults to 0600.
178
.
179 bfc4dc23 Eric Allman
.It swarm.gdplogd.gdpname
180
Sets the name of this instance of
181
.Nm .
182
This is needed when using
183 395537ec Eric Allman
.Xr gdp-create 8
184 bfc4dc23 Eric Allman
to create a new log.
185 65309098 Eric Allman
.
186 bfc4dc23 Eric Allman
.It swarm.gdplogd.index.cachesize
187
The size (in entries) of the internal record offset cache.
188
This can be used to speed access to recently accessed records.
189
Defaults to 65536, which equals 1MiB.
190 65309098 Eric Allman
.
191 bfc4dc23 Eric Allman
.It swarm.gdplogd.reclaim.age
192
When an in-memory log reference count drops to zero
193
that log is a candidate for having resources
194
(such as memory and open file descriptors)
195
reclaimed.
196
However there is a high likelihood that the log will be referenced again soon,
197
so reclaimation is deferred for this parameter's value (in seconds).
198
Defaults to 300 (five minutes).
199 65309098 Eric Allman
.
200 bfc4dc23 Eric Allman
.It swarm.gdplogd.reclaim.interval
201
How often to scan the cached but unreferenced resources
202
that might be cleared (in seconds).
203
Defaults to 15.
204
This should generally be less than
205
.Va swarm.gdplogd.reclaim.age .
206 939b5f51 Eric Allman
.It swarm.gdplogd.reclaim.inthread
207
If set, resource reclaiming is run in a worker thread
208
rather than in the main event loop.
209 ccdbb5fe Eric Allman
Defaults to
210
.Li false.
211 65309098 Eric Allman
.
212 6ea74122 Eric Allman
.It swarm.gdplogd.sequencing.allowdups
213
Allows duplicate numbered records.
214
.Em "THIS PROBABLY DOESN'T DO WHAT YOU WANT!"
215
The old record with the same number will not be accessible.
216
.
217
.It swarm.gdplogd.sequencing.allowgaps
218
Allow gaps in record numbers.
219
This will likely confuse readers who try to read the record
220
that does not exist.
221 8f44f781 Eric Allman
.
222 55f8e918 Eric Allman
.It swarm.gdplogd.sqlite.log-posix-errors
223
Send any Posix errors to the system log.
224
May be useful for some debugging scenarios.
225
Default to
226
.Li false .
227
.
228
.It swarm.gdplogd.sqlite.log-sqlite-errors
229
Send any SQLite errors to the system log.
230
May be useful for some debugging scenarios.
231
Default to
232
.Li true .
233
.
234 b816dcbc Eric Allman
.It swarm.gdplogd.sqlite.pragma.busy_timeout
235
Set the timeout when SQLite will retry to get a lock
236
if the initial attempt fails.
237
This might occur if some other process is trying to write the database
238
while
239
.Nm 
240
is trying to read,
241
or holds a read lock when
242
.Nm
243
wants to write.
244
Defaults to 20 milliseconds.
245
.
246 8f44f781 Eric Allman
.It swarm.gdplogd.sqlite.pragma.cache_size
247
Set the SQLite cache size.
248
Defaults to the built-in SQLite default.
249
.
250
.It swarm.gdplogd.sqlite.pragma.journal_mode
251
Set the SQLite journalling mode.
252
May be
253
.Li DELETE ,
254
.Li TRUNCATE ,
255
.Li PERSIST ,
256
.Li MEMORY ,
257
.Li WAL ,
258
or
259
.Li OFF .
260
Defaults to
261
.Li TRUNCATE .
262
.
263
.It swarm.gdplogd.sqlite.pragma.journal_size_limit
264
Set the maximum size of the SQLite journal.
265
Defaults to the built-in SQLite default.
266
.
267
.It swarm.gdplogd.sqlite.pragma.locking_mode
268
Sets the file locking mode.
269
May be
270
.Li NORMAL
271
or
272
.Li EXCLUSIVE .
273
Defaults to
274
.Li EXCLUSIVE .
275
.
276
.It swarm.gdplogd.sqlite.pragma.synchronous
277
Specify the circumstances when SQLite will force pages to disk.
278
May be
279
.Li OFF ,
280
.Li NORMAL ,
281
.Li FULL ,
282
or
283
.Li EXTRA .
284
Defaults to
285
.Li NORMAL .
286
.
287
.It swarm.gdplogd.sqlite.pragma.temp_store
288
Indicate where temporary tables should be stored.
289
May be
290
.Li DEFAULT ,
291
.Li FILE ,
292
or
293
.Li MEMORY .
294
Defaults to the built-in SQLite default.
295 bfc4dc23 Eric Allman
.El
296 65309098 Eric Allman
.
297 bfc4dc23 Eric Allman
.Sh SEE ALSO
298
.Xr gdp 7 ,
299 395537ec Eric Allman
.Xr gdp-create 8
300 65309098 Eric Allman
.
301 bfc4dc23 Eric Allman
.Sh BUGS
302
The
303
.Fl S
304
flag is a horrible thing indeed.
305 101504b5 Eric Allman
.Pp
306
Subscription leases should be per-subscription
307
and negotiated between the clients and the log servers.