Next: Persistent HTTP
Up: Suggested Performance Improvements for
Previous: Compression
In this situation, a delta refers to the difference between two files. On UNIX
systems, the ``diff'' command can be used to generate the delta between two
files. Using the changed file, and the delta, the original file can be regenerated
again, and vice-versa.
For delta encoding on the web, the client initially requests a document and
the complete document is downloaded. This will result in about a 55% benefit
if using T/TCP and taking into account the mean size of a document. Once the
client has the page, it can be cached and stored indeterminately. When the client
requests the document the next time, the browser will already have the original
document cached, so, using delta encoding, the browser would present the web
server with the last date the cached document was modified. The server determines
if the document has been updated since the cached copy was stored, and if so,
a delta of the server side document is created. The delta, rather than the original
document is transferred.
Of course, there are quite a few difficulties that need to be considered.
- The client needs to retain a cached copy of the document. This is not so much
a hassle with more modern browsers, as this is already done. In fact the HTTP
protocol defines a command that can be used to request the last modified date
from a document on a server. This is then compared to the cached document and
a decision made whether to download the new file, or display the original.
- From the server side, multiple versions of the document have to be cached to
allow the server to create deltas. A decision has to be made of how many changed
versions are allowed. Should the older versions be kept in the user side, or
should a separate database of old versions be kept? A more detailed study of
the impact of caching documents can be found in [8].
- In the case where there have been a number of updates to the server side document
since the client side was cached, it should be decided how many updates are
allowed before the new document is sent - as opposed to sending a delta. The
more changes applied to a document, the larger a delta is, hence, a loss in
the savings by using delta encoding.
- Again there is the question of the load placed on the server by generating a
delta for each document requested, similar to the compression method.
Mogul et al. [11], investigated the effect that delta encoding
has on the web. In their testing, they not only used delta encoding, they also
compressed the delta generated to further reduce the amount of information transferred.
They discovered that using the ``vdelta'' delta generator and compression
they could achieve up to 83% savings in the transmission of data.
If this method was used with T/TCP, there could be as much as a further 66%
savings in packets transferred, a total of 94% reduction in packet transfer.
It should be noted however that this is a best case scenario. In this situation,
the document will already have been cached on both the server and the client
side, and the client and server will previously have completed the three way
handshake in order to facilitate the TAO tests.
Next: Persistent HTTP
Up: Suggested Performance Improvements for
Previous: Compression
Mark Stacey
Thu Apr 30 12:26:11 IST 1998