Remove custom version of memcached (no longer needed).
[awesomized/libmemcached] / memcached / doc / protocol-binary-range.xml
diff --git a/memcached/doc/protocol-binary-range.xml b/memcached/doc/protocol-binary-range.xml
deleted file mode 100644 (file)
index 02711a8..0000000
+++ /dev/null
@@ -1,226 +0,0 @@
-<?xml version="1.0" encoding="US-ASCII"?>
-<!DOCTYPE rfc SYSTEM "xml2rfc/rfc2629.dtd">
-<?xml-stylesheet type='text/xsl' href='xml2rfc/rfc2629.xslt'?>
-<?rfc toc="yes"?>
-<?rfc strict="yes"?>
-<?rfc symrefs="yes"?>
-<?rfc sortrefs="yes" ?>
-<?rfc compact="yes" ?>
-<?rfc subcompact="yes" ?>
-<rfc category="info" docName="draft-stone-memcache-udp-01" ipr="none">
-
-  <front>
-
-    <title abbrev="Memcache Over UDP"> Memcache Binary Protocol: Extensions for UDP </title>
-
-    <author fullname="Aaron Stone" surname="Aaron Stone" role="editor">
-      <organization>Six Apart, Ltd.</organization>
-      <address>
-        <postal>
-          <street>548 4th Street</street>
-          <city>San Francisco</city>
-          <region>CA</region>
-          <code>94107</code>
-          <country>USA</country>
-        </postal>
-        <email>aaron@serendipity.palo-alto.ca.us</email>
-      </address>
-    </author>
-
-    <date day="14" month="December" year="2007" />
-
-    <area>Applications</area>
-
-    <keyword>memcache memcached cache udp</keyword>
-
-    <abstract>
-      <t>
-      This memo explains extensions to the memcache binary protocol for use in a UDP environment.
-      </t>
-
-      <t>
-      Memcache is a high performance key-value cache. It is intentionally a
-      dumb cache, optimized for speed only. Applications using memcache do
-      not rely on it for data -- a persistent database with guaranteed reliability
-      is strongly recommended -- but applications can run much faster when
-      cached data is available in memcache.
-      </t>
-    </abstract>
-  </front>
-
-  <middle>
-    <section anchor="introduction" title="Introduction">
-      <t>
-      Memcache is a high performance key-value cache. It is intentionally a
-      dumb cache, optimized for speed only. Applications using memcache do
-      not rely on it for data -- a persistent database with guaranteed reliability
-      is strongly recommended -- but applications can run much faster when
-      cached data is available in memcache.
-      </t>
-      <t>
-      Sites may find that, due to their network architecture or application usage patterns,
-      the stateless <xref target="UDP"/> protocol better suits their needs. This document
-      provides extensions and descriptions of use of the <xref target="MEMCACHE">memcache protocol</xref>
-      in a UDP environment.
-      </t>
-      <t>
-      It is a goal of this document to provide sufficient information in each UDP packet
-      as to avoid any requirement for statefulness on the part of the server nor significant
-      caching of outstanding packets on the part of the client.
-      </t>
-      <section anchor="conventions" title="Conventions Used In This Document">
-        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
-        "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
-        document are to be interpreted as described in <xref target="KEYWORDS"/>.
-        </t>
-      </section>
-    </section>
-
-    <section anchor="values" title="Defined Values">
-      <section anchor="value-magic" title="Magic Byte">
-        <t>
-        The magic bytes remains the same as in <xref target="MEMCACHE"/>.
-        </t>
-      </section>
-
-      <section anchor="value-status" title="Response Status">
-        <t>
-        Additional status values:
-        <list hangIndent="8" style="hanging">
-          <t hangText="0x0004">Value is larger than a single response packet</t>
-        </list>
-        </t>
-      </section>
-
-      <section anchor="value-opcodes" title="Command Opcodes">
-        <t>
-        Additional opcode values:
-        <list hangIndent="8" style="hanging">
-          <t hangText="0x0C">Get Range</t>
-          <t hangText="0x0D">Set Range</t>
-        </list>
-        </t>
-      </section>
-
-      <section anchor="value-types" title="Data Types">
-        <t>
-        There are no new data types in this extension.
-        </t>
-      </section>
-    </section>
-
-    <section anchor="commands" title="Commands">
-
-      <section anchor="command-get" title="Get Response">
-        <t>
-        This section extends the behavior of the Get and GetQ commands as described in
-        <xref target="MEMCACHE" x:sec="command-get"/>.
-        </t>
-
-        <t>
-        When a Get or GetQ request is made via UDP, and the value of the key for which
-        the request was made is larger than can be placed into a single UDP packet (noting
-        that the protocol header must also be counted), a Get Range response packet
-        MUST be sent instead of the Get response packet. In this instance:
-        <list style="numbers">
-          <t>The Status field of the response header MUST be 0x0004.</t>
-          <t>The Offset field of the GetR response extras MUST be 0.</t>
-          <t>The Length field of the GetR response extras, and the data contained in
-             the Value field of the packet, SHOULD be the maximum
-             allowed length of a UDP packet, less the space required by the header
-             and extras; however it MAY be any amount below this maximum.</t>
-          <t>The Total value length field of the response extras MUST be the
-             actual length of the complete value.</t>
-        </list>
-        </t>
-
-        <t>
-        The client, upon receipt of a Get Range response bearing Status 0x004
-        and a Message ID corresponding to its Get request, shall then know that
-        it has received only the first portion of the value. The client MAY choose
-        to request the remaining portion of the value by sending one or more Get Range requests.
-        </t>
-      </section>
-
-      <section anchor="command-getr-request" title="Get Range Request">
-        <t>
-         The Get Range request is primarily intended for use over a UDP transport
-         to request byte ranges of the value for a key. In the event that the Data version
-         check fails to match that of the key, an error MUST be returned.
-       </t>
-        <t>
-      <figure>
-        <preamble>Extra data for get range request:</preamble>
-          <artwork>
-Byte/     0       |       1       |       2       |       3       |
-   /              |               |               |               |
-  |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
-  +---------------+---------------+---------------+---------------+
- 0| Flags                                                         |
-  +---------------+---------------+---------------+---------------+
- 4| Data version check                                            |
-  |                                                               |
-  +---------------+---------------+---------------+---------------+
-12| Offset                                                        |
-  +---------------+---------------+---------------+---------------+
-16| Length                                                        |
-  +---------------+---------------+---------------+---------------+
-Total 20 bytes
-      </artwork></figure>
-        </t>
-      </section>
-
-      <section anchor="command-getr-response" title="Get Range Response">
-        <t>
-         The Get Range request is primarily intended for use over a UDP transport
-         to indicate the location of the bytes of the value for a key contained in
-         a given packet. A client receives enough information in each Get Range
-         extras to construct an appropriately sized buffer in its own memory and
-         blindly insert the contents of the packet at the given byte offset.
-       </t>
-        <t>
-      <figure>
-        <preamble>Extra data for get range response:</preamble>
-          <artwork>
-Byte/     0       |       1       |       2       |       3       |
-   /              |               |               |               |
-  |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
-  +---------------+---------------+---------------+---------------+
- 0| Flags                                                         |
-  +---------------+---------------+---------------+---------------+
- 4| Data version check                                            |
-  |                                                               |
-  +---------------+---------------+---------------+---------------+
-12| Offset                                                        |
-  +---------------+---------------+---------------+---------------+
-16| Length                                                        |
-  +---------------+---------------+---------------+---------------+
-20| Total value length                                            |
-  +---------------+---------------+---------------+---------------+
-Total 24 bytes
-      </artwork></figure>
-        </t>
-      </section>
-
-    </section>
-
-    <section anchor="security" title="Security Considerations">
-      <t>
-      This document does not introduce any new security considerations
-      beyond those discussed in <xref target="MEMCACHE" x:sec="security"/>.
-      </t>
-    </section>
-
-  </middle>
-
-  <back>
-    <references title="Normative References">
-      <dwdrfc-ref anchor='UDP' src='http://xml.resource.org/public/rfc/bibxml/reference.RFC.0768.xml'/>
-      <dwdrfc-ref anchor='KEYWORDS' src='http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'/>
-      <!-- FIXME: Get a draft reference for the base document. -->
-      <dwdrfc-ref anchor='MEMCACHE' src='http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'/>
-    </references>
-  </back>
-
-</rfc>
-