Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

gdp / gdplogd / gdplogd.8 @ master

History | View | Annotate | Download (7.65 KB)

1
.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
.Xr gdp-create 8
59
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
.
74
.Sh EXIT STATUS
75
.
76
.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
.
84
.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
.
105
.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
.
111
.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
Defaults to 0 (no delay).
116
.
117
.It swarm.gdplogd.advertise.interval
118
The time in seconds before
119
.Nm
120
will renew its advertisements of known names.
121
If set to zero, advertisements will not be renewed.
122
Defaults to 300 seconds.
123
.
124
.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
.Bl -tag -nested -compact -width 12m
130
.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
.
149
.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
.
166
.It swarm.gdplogd.log.dir
167
The directory in which physical logs are written.
168
It is relative to
169
.Li swarm.gdp.data.root
170
(see
171
.Xr gdp 7 ) .
172
Defaults to
173
.Qq Pa glogs .
174
.
175
.It swarm.gdplogd.gob.mode
176
The file mode to use when creating on-disk log files.
177
Defaults to 0600.
178
.
179
.It swarm.gdplogd.gdpname
180
Sets the name of this instance of
181
.Nm .
182
This is needed when using
183
.Xr gdp-create 8
184
to create a new log.
185
.
186
.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
.
191
.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
.
200
.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
.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
Defaults to
210
.Li false.
211
.
212
.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
.
222
.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
.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
.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
.El
296
.
297
.Sh SEE ALSO
298
.Xr gdp 7 ,
299
.Xr gdp-create 8
300
.
301
.Sh BUGS
302
The
303
.Fl S
304
flag is a horrible thing indeed.
305
.Pp
306
Subscription leases should be per-subscription
307
and negotiated between the clients and the log servers.