[Ietf-not43] traditional searches
Eric A. Hall
ehall at ehsco.com
Fri Aug 22 14:55:04 EDT 2003
on 8/22/2003 1:53 PM Andrew Newton wrote:
> No publicly-facing server is going to trust that the client obeys a
> capabilities list and it will always do an authorization check on a
> query.
The benefits of a capabilities model go to both the client and the server
(the client benefits are arguably higher in some scenarios). I'm not
calling this a guarantee of use, just pointing out the motivation. On the
other hand, there is absolutely zero motivation for a client to use a
probe. This is illustrated below.
> A 'dry run' switch simply stops the trip to the data store,
> which is probably more expensive than the authorization check.
Here are some examples.
First, a basic rejection of a submitted query due to permission failures
of the query context does not require a trip to the mail store:
client: bind
server: okay
client: query
server: permission denied
client: bye
This is identical to a probe that gets rejected. There are zero savings in
this scenario, and the client would have gotten the same mileage from just
issuing the original query:
client: bind
server: okay
client: probe
server: rejected due to permissions
client: bye
Worse are successes. Here's a non-probe success:
client: bind
server: okay
client: query
server: answer data...
client: bye
Here's a probe success. Again, the client would have been better off by
just issuing the damn query:
client: bind
server: okay
client: probe
server: okay
client: query
server: answer data...
client: bye
Variations on those themes such as recovery probes/queries follow the same
basic math.
Here's what failure with the capabilities model looks like:
client: bind
server: okay; capabilities
client: bye
Here's what success with the capabilities model looks like:
client: bind
server: okay; capabilities
client: query <--known valid
server: answer data...
client: bye
So, probes are always of equal or higher cost than just issuing the
original query, while the capabilities model is always faster and cheaper.
This is demonstrably better for the servers, but is also better for
clients since latency is cumulative, and the cumulative penalty goes
against the client. EG, if the client gets directed to a resource entry on
a server that is three or four levels deep (domain.isp.co.uk, or a
netblock that is reallocated multiple times), then the extra round trips
really start adding up, especially if they are coming via a high-latency
link (eg, a cellular PDA).
--
Eric A. Hall http://www.ehsco.com/
Internet Core Protocols http://www.oreilly.com/catalog/coreprot/
More information about the Ietf-not43
mailing list