1globus-rls-server(8)        System Manager's Manual       globus-rls-server(8)
2
3
4

NAME

6       globus-rls-server - Replica Location Server
7

SYNOPSIS

9       globus-rls-server  [ -B update_bf_int ] [ -b maxbackoff ] [ -C rlscert‐
10       file ] [ -c conffile ] [ -d ] [ -e rli_expire_int ] [ -F  update_factor
11       ] [ -f maxfreethreads ] [ -I true|false [ -i idletimeout ] [ -K rlskey‐
12       file ] [ -L loglevel ] [ -l true|false ] [ -M  maxconnections  ]  [  -m
13       maxthreads  ]  [  -N  ]  [  -o  update_buftime ] [ -p pidfiledir ] [ -r
14       true|false ] [ -S rli_expire_stale ] [ -s startthreads ] [ -t timeout ]
15       [ -U myurl ] [ -u update_ll_int ] [ -v ]
16

DESCRIPTION

18       The RLS server globus-rls-server supports both a Location Replica Cata‐
19       log (LRC) server, which manages  Logical  FileName  (LFN)  to  Physical
20       FileName  (PFN)  mappings  in  a database, and a Replica Location Index
21       (RLI) server, which manages mappings of LFNs to LRC  servers.   globus-
22       rls-server  may  be configured as either an LRC or RLI server, or both.
23       Both LRCs and RLIs may be configured to  send  updates  to  other  RLIs
24       (using globus-rls-admin(8)).
25
26       Clients  wishing to locate 1 or more physical filenames associated with
27       a logical filename may first contact an RLI server, which will return a
28       list  of  LRCs  that  may know about the LFN.  The LRC servers are then
29       contacted in turn to find the physical filenames.  Note that RLI infor‐
30       mation may be out of date, so clients should be prepared to get a nega‐
31       tive response when contacting an LRC (or no response at all if the  LRC
32       server is unavailable).
33
34       globus-rls-server  uses  syslog(3)  to log errors and other information
35       (facility LOG_DAEMON) when it's running in normal  (daemon)  mode.   If
36       the  -d  option  (debug)  is specified then log messages are written to
37       stdout.
38

LRC to RLI Updates

40       Two methods exist for LRC or RLI servers to inform RLI servers of their
41       LFNs.  By default the list of LFNs are sent from the source to the RLI.
42       This can be time consuming if the number of LFNs  is  large,  but  does
43       give  the  RLI an exact list of the LFNs known to the LRC.  This allows
44       wildcard searching of the RLI.   Alternatively  Bloom  filters  may  be
45       sent,  which  are highly compressed summaries of the LFNs, however they
46       do not allow wildcard searching, and they  will  generate  more  "false
47       positives"  when  querying  an RLI.  Please see below for more on Bloom
48       filters.  The program globus-rls-admin(8) can be  used  to  manage  the
49       list  of RLIs that an LRC or RLI server sends updates to, this includes
50       partitioning LFNs amongst multiple RLI servers.
51
52       A softstate algorithm is used  for  updates,  periodically  the  source
53       server sends its state (LFN information) to the RLI servers it updates.
54       The RLI servers add these LFNs to their index, or update a timestamp if
55       the  LFNs  were  already  known.   RLI servers expire information about
56       LFN,LRC mappings if they haven't been updated for a period longer  than
57       the softstate update interval.
58
59       Options  that can be configured to control the softstate algorithm when
60       a source server updates an RLI by sending LFNs are include:
61
62       rli_expire_int (seconds)
63              How often an RLI server will check  for  stale  entries  in  its
64              database.
65
66       rli_expire_stale (seconds)
67              How  old an entry must be in an RLI database before it's consid‐
68              ered stale.  This value should be no smaller than update_ll_int.
69              Note  if  the  LRC  server is responding this value is not used,
70              instead the value of update_ll_int or update_bf_int is retrieved
71              from  the  LRC  server, multiplied by 1.2, and used as the value
72              for rli_expire_stale.
73
74       update_bf_int seconds
75              Interval between RLI updates when using Bloom filters.
76
77       update_ll_int (seconds)
78              Interval between RLI updates when using LFN lists for  softstate
79              updates.
80
81       Updates  to  an LRC (new LFNs or deleted LFNs) normally don't propagate
82       to  RLI  servers  until  the  next  softstate  update  (controlled   by
83       update_ll_int  and  update_bf_int).   However  by  enabling  "immediate
84       update" mode an LRC will send updates to an RLI  within  update_buftime
85       seconds.   Immedate  updates are enabled by setting update_immediate to
86       true.  If updates are done with LFN lists then only the LFNs that  have
87       been  added  or deleted to the source server are sent, if Bloom filters
88       are used then the entire Bloom filter is sent.
89
90       When immediate updates  are  enabled  the  interval  between  softstate
91       updates  is  multiplied  by  update_factor  as  long as no updates have
92       failed (source and RLI are considered to be in sync).  This can greatly
93       reduce  the  number  of  softstate updates a source needs to send to an
94       RLI.  Incremental updates are  buffered  by  the  source  server  until
95       either  100  udpates  have  accumulated  (when  LFN lists are used), or
96       update_buftime seconds have passed since the last update.
97
98       A Bloom filter is an array of bits.  Each LFN is hashed multiple  times
99       and  the  corresponding  bits in the Bloom filter are set.  Querying an
100       RLI to verify if an LFN exists is done by performing the  same  hashes,
101       and  checking if the bits in the filter are on.  If not then the LFN is
102       known not to exist, however if they're all on then all that's known  is
103       that  the LFN probably exists.  The size of the Bloom filter (as a mul‐
104       tiple of the number of LFNs) and the number of hash functions,  control
105       the  false  positive rate.  The default values of 10 and 3 give a false
106       positive rate of approximately 1%.  The advantage of Bloom  filters  is
107       their  efficiency.   For  example, if the LRC has 1,000,000 LFNs in its
108       database, of average length 20 bytes, then  20,000,000  bytes  must  be
109       sent  to  an  RLI during a softstate update (assuming no partitioning).
110       The RLI server must perform 1,000,000 updates to its database to create
111       new  LFN,LRC  mappings, or update timestamps on existing entries.  With
112       Bloom filters only 1,250,000 bytes are sent (10 x 1,000,000 bits /  8),
113       and  there  are  no  database  operations on the RLI (Bloom filters are
114       maintained entirely in memory).  A comparison of the time to perform  a
115       1,000,000  LFN  update  took  20 minutes sending all the LFNs, and less
116       than 1 second using a Bloom filter.  However as noted before wild  card
117       searches of an RLI are not supported with Bloom filters.
118
119       The options that control Bloom filter updates are:
120
121       rli_bloomfilter true|false
122              RLI servers must have this set to accept Bloom filter updates.
123
124       rli_bloomfilter_dir none|default|pathname
125              Bloom  filters saved in this directory and read at start time if
126              not "none".  See CONFIGURATION for details.
127
128       lrc_bloomfilter_numhash N
129              Number of hash functions, an integer from 1 to 8.   The  default
130              is 3.
131
132       lrc_bloomfilter_ratio N
133              Size  of the Bloom filter as a multiple of the number of LFNs in
134              the LRC database.  Too small a  value  will  generate  too  many
135              false positives, too large wastes memory and network bandwidth.
136
137       Note  an LRC server can update some RLIs with Bloom filters, and others
138       with LFNs.  However an RLI server can only be updated using one method,
139       and  an  RLI  acting  as a source for updates can only send the type of
140       updates that it receives.
141

OPTIONS

143       -b maxbackoff
144              Maximum time, in seconds, that globus-rls-server will attempt to
145              reopen the socket it listens on after an I/O error.
146
147       -C rlscertfile
148              Name  of X.509 certificate file that identifies the server, sets
149              environment variable X509_USER_CERT.
150
151       -c conffile
152              Name  of  configuration  file  for  server.   The   default   is
153              $GLOBUS_LOCATION/etc/globus-rls-server.conf  if  the environment
154              variable   GLOBUS_LOCATION   is   set,   else   /etc/globus-rls-
155              server.conf.
156
157       -d     Enable  debugging.  Server will not detach from controlling ter‐
158              minal and log messages will be written  to  stdout  rather  than
159              syslog.   For  additional logging verbosity set loglevel (see -L
160              option) to higher values.
161
162       -e rli_expire_int
163              Interval (seconds) at which an RLI server  should  expire  stale
164              entries.
165
166       -F update_factor
167              If update_immediate mode is on, and the source server is in sync
168              with an RLI server (an LRC and RLI are synced if there have been
169              no  failed  updates  since the last full softstate update), then
170              the interval between RLI updates for this server ( update_ll_int
171              ) is multipled by update_factor.
172
173       -f maxfreethreads
174              Maximum  number  of  idle  threads  server  will  leave running.
175              Excess threads are terminated.
176
177       -I true|false
178              Turns LRC to RLI immediate update mode on or  off.   Default  is
179              false.
180
181       -i idletimeout
182              Seconds after which idle client connections are timed out.
183
184       -K rlskeyfile
185              Name   of   X.509   key   file.    Sets   environment   variable
186              X509_USER_KEY.
187
188       -L loglevel
189              Sets log level.  By default this is 0, which means  only  errors
190              will be logged.  Higher values mean more verbose logging.  Level
191              1 causes logging of major events (eg  start  of  full  softstate
192              update),  2  includes  medium  level  events (eg writing pending
193              updates to an RLI), 3 enables all tracing.  Level 4 includes all
194              the SQL commands executed by the server.
195
196       -l true|false
197              Configure whether server is an LRC server.  Default is false.
198
199       -M maxconnections
200              Maximum number of active connections.  Should be small enough to
201              prevent server  from  running  out  of  open  file  descriptors.
202              Default is 100.
203
204       -m maxthreads
205              Maximum number of threads server will start up to support simul‐
206              taneous requests.
207
208       -N     Disable  authentication  checking.   Intended   for   debugging.
209              Clients should use the URL RLSN://host to disable authentication
210              on the client side.
211
212       -o update_buftime
213              Softstate updates are buffered until either the buffer  is  full
214              or this much time has elapsed since the last update.  Default is
215              30 seconds.
216
217       -p pidfiledir
218              Directory where pid file should be written.
219
220       -r     Configure whether server is an RLI server.  Default is false.
221
222       -S rli_expire_stale
223              Interval after which entries in the RLI database are  considered
224              stale  (presumably because they were deleted in the LRC).  Stale
225              entries are not returned in queries.
226
227       -s startthreads
228              Number of threads to start up initially.
229
230       -t timeout
231              Timeout (in seconds) for calls to other RLS servers (eg for  LRC
232              calls to send an update to an RLI).  A value of 0 disables time‐
233              outs.  The default is 30 seconds.
234
235       -U myurl
236              URL for this server.
237
238       -u update_ll_int
239              Interval (in seconds) between lfn-list LRC to RLI updates.
240
241       -v     Show version and exit.
242

SIGNALS

244       The server will reread its configuration file if it receives a HUP sig‐
245       nal.   It  will wait for all current requests to complete and shut down
246       cleanly if sent a INT, QUIT or TERM signal.
247

CONFIGURATION

249       If the configuration file is not specified on the command line (see the
250       -c  option)  then  it's  looked for in $GLOBUS_LOCATION/etc/globus-rls-
251       server.conf, or /etc/globus-rls-server.conf if GLOBUS_LOCATION  is  not
252       set.
253
254       Most  command  line  options may also be set in the configuration file,
255       however command line options always override items found in the config‐
256       uration file.  The configuration file is a sequence of lines consisting
257       of a keyword, whitespace, and a value.  Comments begin with a # and end
258       with a newline.
259
260       acl user: permission [permission]
261              user  is  a  regular expression matching distinguished names (or
262              local usernames if a gridmap file is used) of users  allowed  to
263              make  calls  to  the  server.   Permission  is  one  or  more of
264              lrc_read, lrc_update, rli_read, rli_update,  admin,  stats,  and
265              all.   There  may be multiple acl entries, the first match found
266              is used to determine a user's privileges.  The  admin  privilege
267              is necessary to update an LRC's list of RLIs to send updates to.
268              The stats privilege allows a client to read performance  statis‐
269              tics.
270
271              A  gridmap  file may also be used to map DNs to local usernames,
272              which in turn are matched against the regular expressions in the
273              acl list to determine the user's permissions.
274
275              acl entries may be a combination of DNs and local usernames.  If
276              a DN is not found in the gridmap file then it is used to  search
277              the acl list.
278
279       authentication true|false
280              Enable  or disable GSI authentication.  The default is true.  If
281              authentication is enabled clients  should  use  the  URL  schema
282              "rls:" to connect to the server, if disabled "rlsn:".
283
284       db_pwd password
285              Password   to  use  to  connect  to  MYSQL  server,  default  is
286              changethis.
287
288       db_user databaseuser
289              Username to use to connect to MYSQL server, default is dbperson.
290
291       idletimeout seconds
292              Seconds after which idle connections closed, default is 900.
293
294       loglevel N
295              Sets loglevel to N (default is 0).  Higher levels mean more ver‐
296              bosity.
297
298       lrc_bloomfilter_numhash N
299              Number  of  hash functions to use in Bloom filters.  The default
300              is 3.  Possible values are 1 to 8.  This value,  in  conjunction
301              with  lrc_bloomfilter_ratio,  will determine the number of false
302              positives that may be expected when  querying  an  RLI  that  is
303              updated  via Bloom filters.  The default values of 3 and 10 give
304              a false positive rate of approximately 1%.
305
306       lrc_bloomfilter_ratio N
307              Sets ratio of bloom filter size (in bits) to number of  LFNs  in
308              the  LRC  catalog.  Only meaningful if Bloom filters are used to
309              update an RLI.  The default is 10.
310
311       lrc_dbname
312              Name of LRC database, default is lrcdb.
313
314       lrc_server true|false
315              True if LRC server, default is false.
316
317       maxbackoff seconds
318              Max seconds to wait before retrying listen in the  event  of  an
319              I/O error, default is 300.
320
321       maxfreethreads N
322              Maximum  number  of  idle  threads,  excess  threads are killed.
323              Default is 5.
324
325       maxconnections N
326              Maximum number of simultaneous connections.  Default is 100.
327
328       maxthreads N
329              Maximum number of threads running at one time, default is 30.
330
331       myurl URL
332              URL of server.  Default is rls://<hostname>:port
333
334       odbcini filename
335              Sets  environment  variable  ODBCINI.   If  not  specified,  and
336              ODBCINI  is  not  already  set,  then  defaults to $GLOBUS_LOCA‐
337              TION/var/odbc.ini.
338
339       pidfiledir directory
340              Directory where pid file should be written, default is /var/run.
341
342       port N Port server listens on, default is 39281.
343
344       result_limit limit
345              Sets the maximum number of results returned by a  query.   If  a
346              query  request includes a limit greater than this value an error
347              (GLOBUS_RLS_BADARG) is returned.  If the query  request  has  no
348              limit  specified  then at most result_limit records are returned
349              by a query.  A value  of  zero  means  no  limit,  this  is  the
350              default.
351
352       rli_bloomfilter true|false
353              If  true then only Bloom filter updates are accepted from source
354              servers, otherwise full LFN lists are accepted.  Note  if  Bloom
355              filters  are  enabled  then  the RLI does not support wildcarded
356              queries.
357
358       rli_bloomfilter_dir none|default|pathname
359              If an RLI is configured to accept bloom filters (rli_bloomfilter
360              true)  then  bloom  filters may be saved to this directory after
361              updates.  This directory is scanned when an RLI server starts up
362              and  is  used  to  initialize  Bloom  filters  for each LRC that
363              updated the RLI.  This option is useful when it is desired  that
364              the RLI recover its data immediately after a restart rather than
365              wait for LRCs to send another update.  If the LRCs are  updating
366              frequently  this  option  is unnecessary, and may be wasteful in
367              that each Bloom filter is written to disk after each update.
368
369              If rli_bloomfilter_dir is set to the string  "none"  then  Bloom
370              filters  are  not  saved  to  disk,  this  is  the  default.  If
371              "default"  then  the  default  directory  is  used,   which   is
372              $GLOBUS_LOCATION/var/rls-bloomfilters if GLOBUS_LOCATION is set,
373              else /tmp/rls-bloomfilters.  Any other string  is  used  as  the
374              directory name unchanged.  The Bloom filter files in this direc‐
375              tory have the name of the URL of the LRC  that  sent  the  Bloom
376              filter, with slashes (/) changed to percent signs (%), and ".bf"
377              appended.
378
379       rli_dbname database
380              Name of RLI database, default is rlidb.
381
382       rli_expire_int seconds
383              Interval between RLI expirations of stale entries.   Default  is
384              28800 seconds.
385
386       rli_expire_stale seconds
387              Interval  after which entries in the RLI database are considered
388              stale  (presumably  because  they  were  deleted  in  the  LRC).
389              Default is 86400 seconds.  Stale RLI entries are not returned in
390              queries.
391
392       rli_server true|false
393              True if RLI server, default is false.
394
395       rlscertfile filename
396              Name of X.509 certificate file identifying server, set  by  set‐
397              ting environment variable X509_USER_CERT.
398
399       rlskeyfile
400              Name  of  X.509  key file for server, set by setting environment
401              variable X509_USER_KEY.
402
403       startthreads N
404              Number of threads to start initially, default is 3.
405
406       timeout seconds
407              Timeout (in seconds) for calls to other RLS servers (eg for  LRC
408              calls to send an update to an RLI).
409
410       update_bf_int seconds
411              Interval  between  RLI  updates when the RLI is updated by Bloom
412              filters.  The default is 900 seconds.
413
414       update_buftime N
415              RLI updates are buffered until either the buffer is full or this
416              much time has elapsed since the last update.  Default is 30 sec‐
417              onds.
418
419       update_factor N
420              If update_immediate mode is on, and the source server is in sync
421              with  an  RLI  server (a source and RLI are synced if there have
422              been no failed updates since the last  full  softstate  update),
423              then  the  interval  between  RLI  updates  for  this  server  (
424              update_ll_int ) is multipled by update_factor.
425
426       update_immediate true|false
427              Turn LRC to RLI immediate mode updates on or  off.   Default  is
428              false.
429
430       update_ll_int seconds
431              Seconds  between  lfn-list  softstate  updates, default is 86400
432              seconds.
433
434       update_retry seconds
435              Seconds to wait before a source server will retry to connect  to
436              an RLI server that it needs to update.  Default is 300.
437

FILES

439       $GLOBUS_LOCATION/etc/globus-rls-server.conf
440              Default configuration file.
441
442
443
444                                   24 Feb 02              globus-rls-server(8)
Impressum