You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by bu...@apache.org on 2015/07/14 04:49:29 UTC

[04/15] hbase git commit: HBASE-14066 clean out old docbook docs from branch-1.

http://git-wip-us.apache.org/repos/asf/hbase/blob/fdd2692f/src/main/docbkx/shell.xml
----------------------------------------------------------------------
diff --git a/src/main/docbkx/shell.xml b/src/main/docbkx/shell.xml
deleted file mode 100644
index a400d8d..0000000
--- a/src/main/docbkx/shell.xml
+++ /dev/null
@@ -1,386 +0,0 @@
-<?xml version="1.0"?>
-<chapter
-    xml:id="shell"
-    version="5.0"
-    xmlns="http://docbook.org/ns/docbook"
-    xmlns:xlink="http://www.w3.org/1999/xlink"
-    xmlns:xi="http://www.w3.org/2001/XInclude"
-    xmlns:svg="http://www.w3.org/2000/svg"
-    xmlns:m="http://www.w3.org/1998/Math/MathML"
-    xmlns:html="http://www.w3.org/1999/xhtml"
-    xmlns:db="http://docbook.org/ns/docbook">
-    <!--
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
--->
-    <title>The Apache HBase Shell</title>
-
-    <para> The Apache HBase Shell is <link
-            xlink:href="http://jruby.org">(J)Ruby</link>'s IRB with some HBase particular commands
-        added. Anything you can do in IRB, you should be able to do in the HBase Shell.</para>
-    <para>To run the HBase shell, do as follows:</para>
-    <programlisting>$ ./bin/hbase shell</programlisting>
-    <para>Type <command>help</command> and then <command>&lt;RETURN&gt;</command> to see a listing
-        of shell commands and options. Browse at least the paragraphs at the end of the help
-        emission for the gist of how variables and command arguments are entered into the HBase
-        shell; in particular note how table names, rows, and columns, etc., must be quoted.</para>
-    <para>See <xref
-            linkend="shell_exercises" /> for example basic shell operation. </para>
-    <para>Here is a nicely formatted listing of <link
-            xlink:href="http://learnhbase.wordpress.com/2013/03/02/hbase-shell-commands/">all shell
-            commands</link> by Rajeshbabu Chintaguntla. </para>
-
-    <section
-        xml:id="scripting">
-        <title>Scripting with Ruby</title>
-        <para>For examples scripting Apache HBase, look in the HBase <filename>bin</filename>
-            directory. Look at the files that end in <filename>*.rb</filename>. To run one of these
-            files, do as follows:</para>
-        <programlisting>$ ./bin/hbase org.jruby.Main PATH_TO_SCRIPT</programlisting>
-    </section>
-
-    <section>
-        <title>Running the Shell in Non-Interactive Mode</title>
-        <para>A new non-interactive mode has been added to the HBase Shell (<link
-                xlink:href="https://issues.apache.org/jira/browse/HBASE-11658">HBASE-11658)</link>.
-            Non-interactive mode captures the exit status (success or failure) of HBase Shell
-            commands and passes that status back to the command interpreter. If you use the normal
-            interactive mode, the HBase Shell will only ever return its own exit status, which will
-            nearly always be <literal>0</literal> for success.</para>
-        <para>To invoke non-interactive mode, pass the <option>-n</option> or
-                <option>--non-interactive</option> option to HBase Shell.</para>
-    </section>
-    
-    <section xml:id="hbase.shell.noninteractive">
-        <title>HBase Shell in OS Scripts</title>
-        <para>You can use the HBase shell from within operating system script interpreters like the
-            Bash shell which is the default command interpreter for most Linux and UNIX
-            distributions. The following guidelines use Bash syntax, but could be adjusted to work
-            with C-style shells such as csh or tcsh, and could probably be modified to work with the
-            Microsoft Windows script interpreter as well. Submissions are welcome.</para>
-        <note>
-            <para>Spawning HBase Shell commands in this way is slow, so keep that in mind when you
-                are deciding when combining HBase operations with the operating system command line
-                is appropriate.</para>
-        </note>
-        <example>
-            <title>Passing Commands to the HBase Shell</title>
-            <para>You can pass commands to the HBase Shell in non-interactive mode (see <xref
-                    linkend="hbasee.shell.noninteractive"/>) using the <command>echo</command>
-                command and the <literal>|</literal> (pipe) operator. Be sure to escape characters
-                in the HBase commands which would otherwise be interpreted by the shell. Some
-                debug-level output has been truncated from the example below.</para>
-            <screen>$ <userinput>echo "describe 'test1'" | ./hbase shell -n</userinput>
-                <computeroutput>
-Version 0.98.3-hadoop2, rd5e65a9144e315bb0a964e7730871af32f5018d5, Sat May 31 19:56:09 PDT 2014
-
-describe 'test1'
-
-DESCRIPTION                                          ENABLED
- 'test1', {NAME => 'cf', DATA_BLOCK_ENCODING => 'NON true
- E', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0',
-  VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIO
- NS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS =>
- 'false', BLOCKSIZE => '65536', IN_MEMORY => 'false'
- , BLOCKCACHE => 'true'}
-1 row(s) in 3.2410 seconds    
-                </computeroutput>            
-            </screen>
-            <para>To suppress all output, echo it to <filename>/dev/null:</filename></para>
-            <screen>$ <userinput>echo "describe 'test'" | ./hbase shell -n > /dev/null 2>&amp;1</userinput></screen>
-        </example>
-        <example>
-            <title>Checking the Result of a Scripted Command</title>
-            <para>Since scripts are not designed to be run interactively, you need a way to check
-                whether your command failed or succeeded. The HBase shell uses the standard
-                convention of returning a value of <literal>0</literal> for successful commands, and
-                some non-zero value for failed commands. Bash stores a command's return value in a
-                special environment variable called <varname>$?</varname>. Because that variable is
-                overwritten each time the shell runs any command, you should store the result in a
-                different, script-defined variable.</para>
-            <para>This is a naive script that shows one way to store the return value and make a
-                decision based upon it.</para>
-            <programlisting language="bourne">
-#!/bin/bash
-
-echo "describe 'test'" | ./hbase shell -n > /dev/null 2>&amp;1
-status=$?
-echo "The status was " $status  
-if ($status == 0); then
-    echo "The command succeeded"
-else
-    echo "The command may have failed."
-fi
-return $status
-            </programlisting>
-        </example>
-        <section>
-            <title>Checking for Success or Failure In Scripts</title>
-            <para>Getting an exit code of 0 means that the command you scripted definitely
-                succeeded. However, getting a non-zero exit code does not necessarily mean the
-                command failed. The command could have succeeded, but the client lost connectivity,
-                or some other event obscured its success. This is because RPC commands are
-                stateless. The only way to be sure of the status of an operation is to check. For
-                instance, if your script creates a table, but returns a non-zero exit value, you
-                should check whether the table was actually created before trying again to create
-                it.</para>
-        </section>
-    </section>
-    
-    <section>
-        <title>Read HBase Shell Commands from a Command File</title>
-        <para>You can enter HBase Shell commands into a text file, one command per line, and pass
-            that file to the HBase Shell.</para>
-        <example>
-            <title>Example Command File</title>
-            <screen>
-create 'test', 'cf'
-list 'test'
-put 'test', 'row1', 'cf:a', 'value1'
-put 'test', 'row2', 'cf:b', 'value2'
-put 'test', 'row3', 'cf:c', 'value3'
-put 'test', 'row4', 'cf:d', 'value4'
-scan 'test'
-get 'test', 'row1'
-disable 'test'
-enable 'test'
-            </screen>
-        </example>
-        <example>
-            <title>Directing HBase Shell to Execute the Commands</title>
-            <para>Pass the path to the command file as the only argument to the <command>hbase
-                    shell</command> command. Each command is executed and its output is shown. If
-                you do not include the <command>exit</command> command in your script, you are
-                returned to the HBase shell prompt. There is no way to programmatically check each
-                individual command for success or failure. Also, though you see the output for each
-                command, the commands themselves are not echoed to the screen so it can be difficult
-                to line up the command with its output.</para>
-            <screen>
-$ <userinput>./hbase shell ./sample_commands.txt</userinput>
-<computeroutput>0 row(s) in 3.4170 seconds
-
-TABLE
-test
-1 row(s) in 0.0590 seconds
-
-0 row(s) in 0.1540 seconds
-
-0 row(s) in 0.0080 seconds
-
-0 row(s) in 0.0060 seconds
-
-0 row(s) in 0.0060 seconds
-
-ROW                   COLUMN+CELL
- row1                 column=cf:a, timestamp=1407130286968, value=value1
- row2                 column=cf:b, timestamp=1407130286997, value=value2
- row3                 column=cf:c, timestamp=1407130287007, value=value3
- row4                 column=cf:d, timestamp=1407130287015, value=value4
-4 row(s) in 0.0420 seconds
-
-COLUMN                CELL
- cf:a                 timestamp=1407130286968, value=value1
-1 row(s) in 0.0110 seconds
-
-0 row(s) in 1.5630 seconds
-
-0 row(s) in 0.4360 seconds</computeroutput>                
-            </screen>
-        </example>
-    </section>
-    <section>
-        <title>Passing VM Options to the Shell</title>
-        <para>You can pass VM options to the HBase Shell using the <code>HBASE_SHELL_OPTS</code>
-            environment variable. You can set this in your environment, for instance by editing
-                <filename>~/.bashrc</filename>, or set it as part of the command to launch HBase
-            Shell. The following example sets several garbage-collection-related variables, just for
-            the lifetime of the VM running the HBase Shell. The command should be run all on a
-            single line, but is broken by the <literal>\</literal> character, for
-            readability.</para>
-        <screen language="bourne">
-$ <userinput>HBASE_SHELL_OPTS="-verbose:gc -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCDateStamps \ 
-  -XX:+PrintGCDetails -Xloggc:$HBASE_HOME/logs/gc-hbase.log" ./bin/hbase shell</userinput>            
-        </screen>
-    </section>
-    <section
-        xml:id="shell_tricks">
-        <title>Shell Tricks</title>
-        <section
-            xml:id="table_variables">
-            <title>Table variables</title>
-
-            <para> HBase 0.95 adds shell commands that provide a jruby-style object-oriented
-                references for tables. Previously all of the shell commands that act upon a table
-                have a procedural style that always took the name of the table as an argument. HBase
-                0.95 introduces the ability to assign a table to a jruby variable. The table
-                reference can be used to perform data read write operations such as puts, scans, and
-                gets well as admin functionality such as disabling, dropping, describing tables. </para>
-
-            <para> For example, previously you would always specify a table name:</para>
-            <screen>
-hbase(main):000:0> create ‘t’, ‘f’
-0 row(s) in 1.0970 seconds
-hbase(main):001:0> put 't', 'rold', 'f', 'v'
-0 row(s) in 0.0080 seconds
-
-hbase(main):002:0> scan 't' 
-ROW                                COLUMN+CELL                                                                                      
- rold                              column=f:, timestamp=1378473207660, value=v                                                      
-1 row(s) in 0.0130 seconds
-
-hbase(main):003:0> describe 't'
-DESCRIPTION                                                                           ENABLED                                       
- 't', {NAME => 'f', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_ true                                          
- SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => '2                                               
- 147483647', KEEP_DELETED_CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY => 'false                                               
- ', BLOCKCACHE => 'true'}                                                                                 
-1 row(s) in 1.4430 seconds
-
-hbase(main):004:0> disable 't'
-0 row(s) in 14.8700 seconds
-
-hbase(main):005:0> drop 't'
-0 row(s) in 23.1670 seconds
-
-hbase(main):006:0> 
-	  </screen>
-
-            <para> Now you can assign the table to a variable and use the results in jruby shell
-                code.</para>
-            <screen>
-hbase(main):007 > t = create 't', 'f'
-0 row(s) in 1.0970 seconds
-
-=> Hbase::Table - t
-hbase(main):008 > t.put 'r', 'f', 'v'
-0 row(s) in 0.0640 seconds
-hbase(main):009 > t.scan
-ROW                           COLUMN+CELL                                                                        
- r                            column=f:, timestamp=1331865816290, value=v                                        
-1 row(s) in 0.0110 seconds
-hbase(main):010:0> t.describe
-DESCRIPTION                                                                           ENABLED                                       
- 't', {NAME => 'f', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_ true                                          
- SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => '2                                               
- 147483647', KEEP_DELETED_CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY => 'false                                               
- ', BLOCKCACHE => 'true'}                                                                                 
-1 row(s) in 0.0210 seconds
-hbase(main):038:0> t.disable
-0 row(s) in 6.2350 seconds
-hbase(main):039:0> t.drop
-0 row(s) in 0.2340 seconds
-	  </screen>
-
-            <para> If the table has already been created, you can assign a Table to a variable by
-                using the get_table method:</para>
-            <screen>
-hbase(main):011 > create 't','f'
-0 row(s) in 1.2500 seconds
-
-=> Hbase::Table - t
-hbase(main):012:0> tab = get_table 't'
-0 row(s) in 0.0010 seconds
-
-=> Hbase::Table - t
-hbase(main):013:0> tab.put ‘r1’ ,’f’, ‘v’ 
-0 row(s) in 0.0100 seconds
-hbase(main):014:0> tab.scan
-ROW                                COLUMN+CELL                                                                                      
- r1                                column=f:, timestamp=1378473876949, value=v                                                      
-1 row(s) in 0.0240 seconds
-hbase(main):015:0> 
-	  </screen>
-
-            <para> The list functionality has also been extended so that it returns a list of table
-                names as strings. You can then use jruby to script table operations based on these
-                names. The list_snapshots command also acts similarly.</para>
-            <screen>
-hbase(main):016 > tables = list(‘t.*’)
-TABLE                                                                                                                               
-t                                                                                                                                   
-1 row(s) in 0.1040 seconds
-
-=> #&lt;#&lt;Class:0x7677ce29>:0x21d377a4>
-hbase(main):017:0> tables.map { |t| disable t ; drop  t}
-0 row(s) in 2.2510 seconds
-
-=> [nil]
-hbase(main):018:0> 
-            </screen>
-        </section>
-
-        <section>
-            <title><filename>irbrc</filename></title>
-            <para>Create an <filename>.irbrc</filename> file for yourself in your home directory.
-                Add customizations. A useful one is command history so commands are save across
-                Shell invocations:</para>
-            <screen>
-$ more .irbrc
-require 'irb/ext/save-history'
-IRB.conf[:SAVE_HISTORY] = 100
-IRB.conf[:HISTORY_FILE] = "#{ENV['HOME']}/.irb-save-history"</screen>
-            <para>See the <application>ruby</application> documentation of
-                    <filename>.irbrc</filename> to learn about other possible configurations.
-            </para>
-        </section>
-        <section>
-            <title>LOG data to timestamp</title>
-            <para> To convert the date '08/08/16 20:56:29' from an hbase log into a timestamp,
-                do:</para>
-            <screen>
-hbase(main):021:0> import java.text.SimpleDateFormat
-hbase(main):022:0> import java.text.ParsePosition
-hbase(main):023:0> SimpleDateFormat.new("yy/MM/dd HH:mm:ss").parse("08/08/16 20:56:29", ParsePosition.new(0)).getTime() => 1218920189000</screen>
-            <para> To go the other direction:</para>
-            <screen>
-hbase(main):021:0> import java.util.Date
-hbase(main):022:0> Date.new(1218920189000).toString() => "Sat Aug 16 20:56:29 UTC 2008"</screen>
-            <para> To output in a format that is exactly like that of the HBase log format will take
-                a little messing with <link
-                    xlink:href="http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html">SimpleDateFormat</link>.
-            </para>
-        </section>
-        <section>
-            <title>Debug</title>
-            <section>
-                <title>Shell debug switch</title>
-                <para>You can set a debug switch in the shell to see more output -- e.g. more of the
-                    stack trace on exception -- when you run a command:</para>
-                <programlisting>hbase> debug &lt;RETURN&gt;</programlisting>
-            </section>
-            <section>
-                <title>DEBUG log level</title>
-                <para>To enable DEBUG level logging in the shell, launch it with the
-                        <command>-d</command> option.</para>
-                <programlisting>$ ./bin/hbase shell -d</programlisting>
-            </section>
-        </section>
-        <section>
-            <title>Commands</title>
-            <section>
-                <title>count</title>
-                <para>Count command returns the number of rows in a table. It's quite fast when
-                    configured with the right CACHE
-                    <programlisting>hbase> count '&lt;tablename&gt;', CACHE => 1000</programlisting>
-                    The above count fetches 1000 rows at a time. Set CACHE lower if your rows are
-                    big. Default is to fetch one row at a time. </para>
-            </section>
-        </section>
-
-    </section>
-</chapter>

http://git-wip-us.apache.org/repos/asf/hbase/blob/fdd2692f/src/main/docbkx/thrift_filter_language.xml
----------------------------------------------------------------------
diff --git a/src/main/docbkx/thrift_filter_language.xml b/src/main/docbkx/thrift_filter_language.xml
deleted file mode 100644
index 74da600..0000000
--- a/src/main/docbkx/thrift_filter_language.xml
+++ /dev/null
@@ -1,757 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<chapter version="5.0" xml:id="thrift"
-         xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xmlns:xi="http://www.w3.org/2001/XInclude"
-         xmlns:svg="http://www.w3.org/2000/svg"
-         xmlns:m="http://www.w3.org/1998/Math/MathML"
-         xmlns:html="http://www.w3.org/1999/xhtml"
-         xmlns:db="http://docbook.org/ns/docbook">
-<!--
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
--->
-
-    <title>Thrift API and Filter Language</title>
-    <para>Apache <link xlink:href="http://thrift.apache.org/">Thrift</link> is a cross-platform,
-        cross-language development framework. HBase includes a Thrift API and filter language. The
-        Thrift API relies on client and server processes. Documentation about the HBase Thrift API
-        is located at <link xlink:href="http://wiki.apache.org/hadoop/Hbase/ThriftApi"/>. </para>
-    <para>You can configure Thrift for secure authentication at the server and client side, by
-        following the procedures in <xref linkend="security.client.thrift"/> and <xref
-            linkend="security.gateway.thrift"/>. </para>
-    <para>The rest of this chapter discusses the filter language provided by the Thrift API.</para>
-    <section
-        xml:id="thrift.filter-language">
-        <title>Filter Language</title>
-        <para
-            xml:id="use-case">Thrift Filter Language was introduced in APache HBase 0.92. It allows
-            you to perform server-side filtering when accessing HBase over Thrift or in the HBase
-            shell. You can find out more about shell integration by using the <code>scan help</code>
-            command in the shell.</para>
-        <para>You specify a filter as a string, which is parsed on the server to construct the
-            filter.</para>
-
-        <section
-            xml:id="general-syntax">
-            <title>General Filter String Syntax</title>
-            <para>A simple filter expression is expressed as a string:</para>
-            <screen>“FilterName (argument, argument,... , argument)”</screen>
-            <para>Keep the following syntax guidelines in mind.</para>
-            <itemizedlist>
-                <listitem>
-                    <para>Specify the name of the filter followed by the comma-separated argument
-                        list in parentheses.</para>
-                </listitem>
-                <listitem>
-                    <para>If the argument represents a string, it should be enclosed in single
-                        quotes (<literal>'</literal>).</para>
-                </listitem>
-                <listitem>
-                    <para>Arguments which represent a boolean, an integer, or a comparison operator
-                        (such as &lt;, &gt;, or !=), should not be enclosed in quotes</para>
-                </listitem>
-                <listitem>
-                    <para>The filter name must be a single word. All ASCII characters are allowed
-                        except for whitespace, single quotes and parentheses.</para>
-                </listitem>
-                <listitem>
-                    <para>The filter’s arguments can contain any ASCII character. If single quotes
-                        are present in the argument, they must be escaped by an additional preceding
-                        single quote.</para>
-                </listitem>
-            </itemizedlist>
-        </section>
-
-        <section
-            xml:id="compound-filters-and-operators">
-            <title>Compound Filters and Operators</title>
-            <variablelist>
-                <title>Binary Operators</title>
-                <varlistentry>
-                    <term><code>AND</code></term>
-                    <listitem><para>If the <code>AND</code> operator is used, the key-vallue
-                        must satisfy both the filters.</para></listitem>
-                </varlistentry>
-                <varlistentry>
-                    <term><code>OR</code></term>
-                    <listitem><para>If the <code>OR</code> operator is used, the key-value
-                        must satisfy at least one of the filters.</para></listitem>
-                </varlistentry>
-            </variablelist>
-            
-            <variablelist>
-                <title>Unary Operators</title>
-                <varlistentry>
-                    <term><code>SKIP</code></term>
-                    <listitem><para>For a particular row, if any of the key-values fail the
-                        filter condition, the entire row is skipped.</para></listitem>
-                </varlistentry>
-                <varlistentry>
-                    <term><code>WHILE</code></term>
-                    <listitem><para>For a particular row, key-values will be emitted until a
-                        key-value is reached t hat fails the filter condition.</para></listitem>
-                </varlistentry>
-            </variablelist>
-            
-            <example>
-                <title>Compound Operators</title>
-                <para>You can combine multiple operators to create a hierarchy of filters, such as
-                    the following example:</para>
-                <programlisting>(Filter1 AND Filter2) OR (Filter3 AND Filter4)</programlisting>
-            </example>
-        </section>
-
-        <section
-            xml:id="order-of-evaluation">
-            <title>Order of Evaluation</title>
-            <orderedlist>
-                <listitem><para>Parentheses have the highest precedence.</para></listitem>
-                <listitem><para>The unary operators <code>SKIP</code> and <code>WHILE</code> are next, and have the same
-                precedence.</para></listitem>
-                <listitem><para>The binary operators follow. <code>AND</code> has highest
-                    precedence, followed by <code>OR</code>.</para></listitem>
-            </orderedlist>
-            <example>
-                <title>Precedence Example</title>
-                <programlisting><userinput>Filter1 AND Filter2 OR Filter</userinput>
-is evaluated as
-<userinput>(Filter1 AND Filter2) OR Filter3</userinput></programlisting>
-                <programlisting><userinput>Filter1 AND SKIP Filter2 OR Filter3</userinput>
-is evaluated as
-<userinput>(Filter1 AND (SKIP Filter2)) OR Filter3</userinput></programlisting>
-                
-            </example>
-            <para>You can use parentheses to explicitly control the order of evaluation.</para>
-        </section>
-
-        <section
-            xml:id="compare-operator">
-            <title>Compare Operator</title>
-            <para>The following compare operators are provided:</para>
-            <orderedlist>
-                <listitem>
-                    <para>LESS (&lt;)</para>
-                </listitem>
-                <listitem>
-                    <para>LESS_OR_EQUAL (&lt;=)</para>
-                </listitem>
-                <listitem>
-                    <para>EQUAL (=)</para>
-                </listitem>
-                <listitem>
-                    <para>NOT_EQUAL (!=)</para>
-                </listitem>
-                <listitem>
-                    <para>GREATER_OR_EQUAL (&gt;=)</para>
-                </listitem>
-                <listitem>
-                    <para>GREATER (&gt;)</para>
-                </listitem>
-                <listitem>
-                    <para>NO_OP (no operation)</para>
-                </listitem>
-            </orderedlist>
-            <para>The client should use the symbols (&lt;, &lt;=, =, !=, &gt;, &gt;=) to express compare
-                operators.</para>
-        </section>
-
-        <section
-            xml:id="comparator">
-            <title>Comparator</title>
-            <para>A comparator can be any of the following:</para>
-            <orderedlist>
-                <listitem>
-                    <para><emphasis
-                            role="bold">BinaryComparator</emphasis> - This lexicographically
-                        compares against the specified byte array using Bytes.compareTo(byte[],
-                        byte[])</para>
-                </listitem>
-                <listitem>
-                    <para><emphasis
-                            role="bold">BinaryPrefixComparator</emphasis> - This lexicographically
-                        compares against a specified byte array. It only compares up to the length
-                        of this byte array.</para>
-                </listitem>
-                <listitem>
-                    <para><emphasis
-                            role="bold">RegexStringComparator</emphasis> - This compares against the
-                        specified byte array using the given regular expression. Only EQUAL and
-                        NOT_EQUAL comparisons are valid with this comparator</para>
-                </listitem>
-                <listitem>
-                    <para><emphasis
-                            role="bold">SubStringComparator</emphasis> - This tests if the given
-                        substring appears in a specified byte array. The comparison is case
-                        insensitive. Only EQUAL and NOT_EQUAL comparisons are valid with this
-                        comparator</para>
-                </listitem>
-            </orderedlist>
-            <para>The general syntax of a comparator is:<code>
-                ComparatorType:ComparatorValue</code></para>
-            <para>The ComparatorType for the various comparators is as follows:</para>
-            <orderedlist>
-                <listitem>
-                    <para><emphasis
-                            role="bold">BinaryComparator</emphasis> - binary</para>
-                </listitem>
-                <listitem>
-                    <para><emphasis
-                            role="bold">BinaryPrefixComparator</emphasis> - binaryprefix</para>
-                </listitem>
-                <listitem>
-                    <para><emphasis
-                            role="bold">RegexStringComparator</emphasis> - regexstring</para>
-                </listitem>
-                <listitem>
-                    <para><emphasis
-                            role="bold">SubStringComparator</emphasis> - substring</para>
-                </listitem>
-            </orderedlist>
-            <para>The ComparatorValue can be any value.</para>
-            <example>
-                <title>Example 1</title>
-                <para><code> >, 'binary:abc' </code>will match everything that is
-                lexicographically greater than "abc" </para>
-            </example>
-            <example>
-                <title>Example 2</title>
-                <para><code> =, 'binaryprefix:abc' </code>will match everything whose first 3
-                characters are lexicographically equal to "abc"</para>
-            </example>
-            <example>
-                <title>Example 3</title>
-                <para><code> !=, 'regexstring:ab*yz' </code>will match everything that doesn't
-                begin with "ab" and ends with "yz"</para>
-            </example>
-            <example>
-                <title>Example 4</title>
-                <para><code> =, 'substring:abc123' </code>will match everything that begins
-                with the substring "abc123"</para>
-            </example>
-        </section>
-
-        <section
-            xml:id="examplePHPClientProgram">
-            <title>Example PHP Client Program that uses the Filter Language</title>
-            <programlisting language="PHP" role="PHP"><![CDATA[
-<? $_SERVER['PHP_ROOT'] = realpath(dirname(__FILE__).'/..');
-   require_once $_SERVER['PHP_ROOT'].'/flib/__flib.php';
-   flib_init(FLIB_CONTEXT_SCRIPT);
-   require_module('storage/hbase');
-   $hbase = new HBase('<server_name_running_thrift_server>', <port on which thrift server is running>);
-   $hbase->open();
-   $client = $hbase->getClient();
-   $result = $client->scannerOpenWithFilterString('table_name', "(PrefixFilter ('row2') AND (QualifierFilter (>=, 'binary:xyz'))) AND (TimestampsFilter ( 123, 456))");
-   $to_print = $client->scannerGetList($result,1);
-   while ($to_print) {
-      print_r($to_print);
-      $to_print = $client->scannerGetList($result,1);
-    }
-   $client->scannerClose($result);
-?>
-        ]]></programlisting>
-        </section>
-
-        <section
-            xml:id="example-filter-strings">
-            <title>Example Filter Strings</title>
-            <para>
-                <itemizedlist>
-                    <listitem>
-                        <para><code>“PrefixFilter (‘Row’) AND PageFilter (1) AND FirstKeyOnlyFilter
-                                ()”</code> will return all key-value pairs that match the following
-                            conditions:</para>
-                        <orderedlist>
-                            <listitem>
-                                <para>The row containing the key-value should have prefix “Row”
-                                </para>
-                            </listitem>
-                            <listitem>
-                                <para>The key-value must be located in the first row of the table
-                                </para>
-                            </listitem>
-                            <listitem>
-                                <para>The key-value pair must be the first key-value in the row
-                                </para>
-                            </listitem>
-                        </orderedlist>
-                    </listitem>
-                </itemizedlist>
-            </para>
-
-            <orderedlist>
-                <listitem>
-                    <itemizedlist>
-                        <listitem>
-                            <para><code>“(RowFilter (=, ‘binary:Row 1’) AND TimeStampsFilter (74689,
-                                    89734)) OR ColumnRangeFilter (‘abc’, true, ‘xyz’,
-                                    false))”</code> will return all key-value pairs that match both
-                                the following conditions:</para>
-                            <itemizedlist>
-                                <listitem>
-                                    <para>The key-value is in a row having row key “Row 1” </para>
-                                </listitem>
-                                <listitem>
-                                    <para>The key-value must have a timestamp of either 74689 or
-                                        89734.</para>
-                                </listitem>
-                                <listitem>
-                                    <para>Or it must match the following condition:</para>
-                                    <itemizedlist>
-                                        <listitem>
-                                            <para>The key-value pair must be in a column that is
-                                                lexicographically >= abc and &lt; xyz </para>
-                                        </listitem>
-                                    </itemizedlist>
-                                </listitem>
-                            </itemizedlist>
-                        </listitem>
-                    </itemizedlist>
-                </listitem>
-            </orderedlist>
-
-            <para>
-                <itemizedlist>
-                    <listitem>
-                        <para><code>“SKIP ValueFilter (0)”</code> will skip the entire row if any of
-                            the values in the row is not 0</para>
-                    </listitem>
-                </itemizedlist>
-            </para>
-        </section>
-
-        <section
-            xml:id="IndividualFilterSyntax">
-            <title>Individual Filter Syntax</title>
-            <variablelist>
-                <varlistentry>
-                    <term>KeyOnlyFilter</term>
-                    <listitem>
-                        <para>This filter doesn’t take any arguments. It returns only the key
-                            component of each key-value.</para>
-                        <itemizedlist>
-                            <title>Syntax</title>
-                            <listitem>
-                                <programlisting language="java">KeyOnlyFilter ()</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                        <itemizedlist>
-                            <title>Example</title>
-                            <listitem>
-                                <programlisting language="java">KeyOnlyFilter ()"</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                    </listitem>
-                </varlistentry>
-                <varlistentry>
-                    <term>FirstKeyOnlyFilter</term>
-                    <listitem>
-                        <para>This filter doesn’t take any arguments. It returns only the first
-                            key-value from each row.</para>
-
-                        <itemizedlist>
-                            <title>Syntax</title>
-                            <listitem>
-                                <programlisting language="java">FirstKeyOnlyFilter ()</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                        <itemizedlist>
-                            <title>Example</title>
-                            <listitem>
-                                <programlisting language="java">FirstKeyOnlyFilter ()</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                    </listitem>
-                </varlistentry>
-                <varlistentry>
-                    <term>PrefixFilter</term>
-                    <listitem>
-                        <para>This filter takes one argument – a prefix of a row key. It returns
-                            only those key-values present in a row that starts with the specified
-                            row prefix</para>
-                        <itemizedlist>
-                            <title>Syntax</title>
-                            <listitem>
-                                <programlisting language="java">PrefixFilter (‘&lt;row_prefix>’)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                        <itemizedlist>
-                            <title>Example</title>
-                            <listitem>
-                                <programlisting language="java">PrefixFilter (‘Row’)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                    </listitem>
-                </varlistentry>
-                <varlistentry>
-                    <term>ColumnPrefixFilter</term>
-                    <listitem>
-                        <para>This filter takes one argument – a column prefix. It returns only
-                            those key-values present in a column that starts with the specified
-                            column prefix. The column prefix must be of the form:
-                                <code>“qualifier”</code>.</para>
-                        <itemizedlist>
-                            <title>Syntax</title>
-                            <listitem>
-                                <programlisting language="java">ColumnPrefixFilter(‘&lt;column_prefix>’)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                        <itemizedlist>
-                            <title>Example</title>
-                            <listitem>
-                                <programlisting language="java">ColumnPrefixFilter(‘Col’)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                    </listitem>
-                </varlistentry>
-                <varlistentry>
-                    <term>MultipleColumnPrefixFilter</term>
-                    <listitem>
-                        <para>This filter takes a list of column prefixes. It returns key-values
-                            that are present in a column that starts with any of the specified
-                            column prefixes. Each of the column prefixes must be of the form:
-                                <code>“qualifier”</code>.</para>
-                        <itemizedlist>
-                            <title>Syntax</title>
-                            <listitem>
-                                <programlisting language="java">MultipleColumnPrefixFilter(‘&lt;column_prefix>’, ‘&lt;column_prefix>’, …, ‘&lt;column_prefix>’)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                        <itemizedlist>
-                            <title>Example</title>
-                            <listitem>
-                                <programlisting language="java">MultipleColumnPrefixFilter(‘Col1’, ‘Col2’)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                    </listitem>
-                </varlistentry>
-                <varlistentry>
-                    <term>ColumnCountGetFilter</term>
-                    <listitem>
-                        <para>This filter takes one argument – a limit. It returns the first limit
-                            number of columns in the table.</para>
-                        <itemizedlist>
-                            <title>Syntax</title>
-                            <listitem>
-                                <programlisting language="java">ColumnCountGetFilter
-                        (‘&lt;limit>’)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                        <itemizedlist>
-                            <title>Example</title>
-                            <listitem>
-                                <programlisting language="java">ColumnCountGetFilter (4)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                    </listitem>
-                </varlistentry>
-                <varlistentry>
-                    <term>PageFilter</term>
-                    <listitem>
-                        <para>This filter takes one argument – a page size. It returns page size
-                            number of rows from the table.</para>
-                        <itemizedlist>
-                            <title>Syntax</title>
-                            <listitem>
-                                <programlisting language="java">PageFilter (‘&lt;page_size&gt;’)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                        <itemizedlist>
-                            <title>Example</title>
-                            <listitem>
-                                <programlisting language="java">PageFilter (2)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                    </listitem>
-                </varlistentry>
-                <varlistentry>
-                    <term>ColumnPaginationFilter</term>
-                    <listitem>
-                        <para>This filter takes two arguments – a limit and offset. It returns limit
-                            number of columns after offset number of columns. It does this for all
-                            the rows.</para>
-                        <itemizedlist>
-                            <title>Syntax</title>
-                            <listitem>
-                                <programlisting language="java">ColumnPaginationFilter(‘&lt;limit>’, ‘&lt;offset>’)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                        <itemizedlist>
-                            <title>Example</title>
-                            <listitem>
-                                <programlisting language="java">ColumnPaginationFilter (3, 5)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                    </listitem>
-                </varlistentry>
-                <varlistentry>
-                    <term>InclusiveStopFilter</term>
-                    <listitem>
-                        <para>This filter takes one argument – a row key on which to stop scanning.
-                            It returns all key-values present in rows up to and including the
-                            specified row.</para>
-                        <itemizedlist>
-                            <title>Syntax</title>
-                            <listitem>
-                                <programlisting language="java">InclusiveStopFilter(‘&lt;stop_row_key>’)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                        <itemizedlist>
-                            <title>Example</title>
-                            <listitem>
-                                <programlisting language="java">InclusiveStopFilter ('Row2')</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                    </listitem>
-                </varlistentry>
-                <varlistentry>
-                    <term>TimeStampsFilter</term>
-                    <listitem>
-                        <para>This filter takes a list of timestamps. It returns those key-values
-                            whose timestamps matches any of the specified timestamps.</para>
-                        <itemizedlist>
-                            <title>Syntax</title>
-                            <listitem>
-                                <programlisting language="java">TimeStampsFilter (&lt;timestamp>, &lt;timestamp>, ... ,&lt;timestamp>)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                        <itemizedlist>
-                            <title>Example</title>
-                            <listitem>
-                                <programlisting language="java">TimeStampsFilter (5985489, 48895495, 58489845945)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                    </listitem>
-                </varlistentry>
-                <varlistentry>
-                    <term>RowFilter</term>
-                    <listitem>
-                        <para>This filter takes a compare operator and a comparator. It compares
-                            each row key with the comparator using the compare operator and if the
-                            comparison returns true, it returns all the key-values in that
-                            row.</para>
-                        <itemizedlist>
-                            <title>Syntax</title>
-                            <listitem>
-                                <programlisting language="java">RowFilter (&lt;compareOp>, ‘&lt;row_comparator>’)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                        <itemizedlist>
-                            <title>Example</title>
-                            <listitem>
-                                <programlisting language="java">RowFilter (&lt;=, ‘xyz)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                    </listitem>
-                </varlistentry>
-                <varlistentry>
-                    <term>Family Filter</term>
-                    <listitem>
-                        <para>This filter takes a compare operator and a comparator. It compares
-                            each qualifier name with the comparator using the compare operator and
-                            if the comparison returns true, it returns all the key-values in that
-                            column.</para>
-                        <itemizedlist>
-                            <title>Syntax</title>
-                            <listitem>
-                                <programlisting language="java">QualifierFilter (&lt;compareOp&gt;, ‘&lt;qualifier_comparator>’)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                        <itemizedlist>
-                            <title>Example</title>
-                            <listitem>
-                                <programlisting language="java">QualifierFilter (=, ‘Column1’)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                    </listitem>
-                </varlistentry>
-                <varlistentry>
-                    <term>QualifierFilter</term>
-                    <listitem>
-                        <para>This filter takes a compare operator and a comparator. It compares
-                            each qualifier name with the comparator using the compare operator and
-                            if the comparison returns true, it returns all the key-values in that
-                            column.</para>
-                        <itemizedlist>
-                            <title>Syntax</title>
-                            <listitem>
-                                <programlisting language="java">QualifierFilter (&lt;compareOp>,‘&lt;qualifier_comparator>’)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                        <itemizedlist>
-                            <title>Example</title>
-                            <listitem>
-                                <programlisting language="java">QualifierFilter (=,‘Column1’)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                    </listitem>
-                </varlistentry>
-                <varlistentry>
-                    <term>ValueFilter</term>
-                    <listitem>
-                        <para>This filter takes a compare operator and a comparator. It compares
-                            each value with the comparator using the compare operator and if the
-                            comparison returns true, it returns that key-value.</para>
-                        <itemizedlist>
-                            <title>Syntax</title>
-                            <listitem>
-                                <programlisting language="java">ValueFilter (&lt;compareOp>,‘&lt;value_comparator>’) </programlisting>
-                            </listitem>
-                        </itemizedlist>
-                        <itemizedlist>
-                            <title>Example</title>
-                            <listitem>
-                                <programlisting language="java">ValueFilter (!=, ‘Value’)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                    </listitem>
-                </varlistentry>
-                <varlistentry>
-                    <term>DependentColumnFilter</term>
-                    <listitem>
-                        <para>This filter takes two arguments – a family and a qualifier. It tries
-                            to locate this column in each row and returns all key-values in that row
-                            that have the same timestamp. If the row doesn’t contain the specified
-                            column – none of the key-values in that row will be returned.</para>
-                        <para>The filter can also take an optional boolean argument –
-                            dropDependentColumn. If set to true, the column we were depending on
-                            doesn’t get returned.</para>
-                        <para>The filter can also take two more additional optional arguments – a
-                            compare operator and a value comparator, which are further checks in
-                            addition to the family and qualifier. If the dependent column is found,
-                            its value should also pass the value check and then only is its
-                            timestamp taken into consideration.</para>
-                        <itemizedlist>
-                            <title>Syntax</title>
-                            <listitem>
-                                <programlisting language="java"><![CDATA[DependentColumnFilter (‘<family>’,‘<qualifier>’, <boolean>, <compare operator>, ‘<value
-                        comparator’)]]></programlisting>
-                            </listitem>
-                            <listitem>
-                                <programlisting language="java"><![CDATA[DependentColumnFilter (‘<family>’,‘<qualifier>’, <boolean>)]]></programlisting>
-                            </listitem>
-                            <listitem>
-                                <programlisting language="java">DependentColumnFilter (‘&lt;family>’,‘&lt;qualifier>’)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                        <itemizedlist>
-                            <title>Example</title>
-                            <listitem>
-                                <programlisting language="java">DependentColumnFilter (‘conf’, ‘blacklist’, false, >=, ‘zebra’)</programlisting>
-                            </listitem>
-                            <listitem>
-                                <programlisting language="java">DependentColumnFilter (‘conf’, 'blacklist', true)</programlisting>
-                            </listitem>
-                            <listitem>
-                                <programlisting language="java">DependentColumnFilter (‘conf’, 'blacklist')</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                    </listitem>
-                </varlistentry>
-                <varlistentry>
-                    <term>SingleColumnValueFilter</term>
-                    <listitem>
-                        <para>This filter takes a column family, a qualifier, a compare operator and
-                            a comparator. If the specified column is not found – all the columns of
-                            that row will be emitted. If the column is found and the comparison with
-                            the comparator returns true, all the columns of the row will be emitted.
-                            If the condition fails, the row will not be emitted. </para>
-                        <para>This filter also takes two additional optional boolean arguments –
-                            filterIfColumnMissing and setLatestVersionOnly</para>
-                        <para>If the filterIfColumnMissing flag is set to true the columns of the
-                            row will not be emitted if the specified column to check is not found in
-                            the row. The default value is false.</para>
-                        <para>If the setLatestVersionOnly flag is set to false, it will test
-                            previous versions (timestamps) too. The default value is true.</para>
-                        <para>These flags are optional and if you must set neither or both.</para>
-                        <itemizedlist>
-                            <title>Syntax</title>
-                            <listitem>
-                                <programlisting language="java">SingleColumnValueFilter(‘&lt;family>’,‘&lt;qualifier>’, &lt;compare operator>, ‘&lt;comparator>’, &lt;filterIfColumnMissing_boolean>, &lt;latest_version_boolean>)</programlisting>
-                            </listitem>
-                            <listitem>
-                                <programlisting language="java">SingleColumnValueFilter(‘&lt;family>’, ‘&lt;qualifier>, &lt;compare operator>, ‘&lt;comparator>’)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                        <itemizedlist>
-                            <title>Example</title>
-                            <listitem>
-                                <programlisting language="java">SingleColumnValueFilter (‘FamilyA’, ‘Column1’, &lt;=, ‘abc’, true, false)</programlisting>
-                            </listitem>
-                            <listitem>
-                                <programlisting>SingleColumnValueFilter (‘FamilyA’, ‘Column1’, &lt;=, ‘abc’)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                    </listitem>
-                </varlistentry>
-                <varlistentry>
-                    <term>SingleColumnValueExcludeFilter</term>
-                    <listitem>
-                        <para>This filter takes the same arguments and behaves same as
-                            SingleColumnValueFilter – however, if the column is found and the
-                            condition passes, all the columns of the row will be emitted except for
-                            the tested column value.</para>
-                        <itemizedlist>
-                            <title>Syntax</title>
-                            <listitem>
-                                <programlisting language="java">SingleColumnValueExcludeFilter('&lt;family>', '&lt;qualifier>', &lt;compare operator>, '&lt;comparator>', &lt;latest_version_boolean>, &lt;filterIfColumnMissing_boolean>)</programlisting>
-                            </listitem>
-                            <listitem>
-                                <programlisting language="java">SingleColumnValueExcludeFilter('&lt;family>', '&lt;qualifier>', &lt;compare operator>, '&lt;comparator>')</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                        <itemizedlist>
-                            <title>Example</title>
-                            <listitem>
-                                <programlisting language="java">SingleColumnValueExcludeFilter (‘FamilyA’, ‘Column1’, ‘&lt;=’, ‘abc’, ‘false’, ‘true’)</programlisting>
-                            </listitem>
-                            <listitem>
-                                <programlisting language="java">SingleColumnValueExcludeFilter (‘FamilyA’, ‘Column1’, ‘&lt;=’, ‘abc’)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                    </listitem>
-                </varlistentry>
-                <varlistentry>
-                    <term>ColumnRangeFilter</term>
-                    <listitem>
-                        <para>This filter is used for selecting only those keys with columns that
-                            are between minColumn and maxColumn. It also takes two boolean variables
-                            to indicate whether to include the minColumn and maxColumn or
-                            not.</para>
-                        <para>If you don’t want to set the minColumn or the maxColumn – you can pass
-                            in an empty argument.</para>
-                        <itemizedlist>
-                            <title>Syntax</title>
-                            <listitem>
-                                <programlisting language="java">ColumnRangeFilter (‘&lt;minColumn>’, &lt;minColumnInclusive_bool>, ‘&lt;maxColumn>’, &lt;maxColumnInclusive_bool>)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                        <itemizedlist>
-                            <title>Example</title>
-                            <listitem>
-                                <programlisting language="java">ColumnRangeFilter (‘abc’, true, ‘xyz’, false)</programlisting>
-                            </listitem>
-                        </itemizedlist>
-                    </listitem>
-                </varlistentry>
-            </variablelist>
-        </section>
-    </section>
-</chapter>
-

http://git-wip-us.apache.org/repos/asf/hbase/blob/fdd2692f/src/main/docbkx/tracing.xml
----------------------------------------------------------------------
diff --git a/src/main/docbkx/tracing.xml b/src/main/docbkx/tracing.xml
deleted file mode 100644
index b5dfd35..0000000
--- a/src/main/docbkx/tracing.xml
+++ /dev/null
@@ -1,187 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<appendix
-  xml:id="tracing"
-  version="5.0"
-  xmlns="http://docbook.org/ns/docbook"
-  xmlns:xlink="http://www.w3.org/1999/xlink"
-  xmlns:xi="http://www.w3.org/2001/XInclude"
-  xmlns:svg="http://www.w3.org/2000/svg"
-  xmlns:m="http://www.w3.org/1998/Math/MathML"
-  xmlns:html="http://www.w3.org/1999/xhtml"
-  xmlns:db="http://docbook.org/ns/docbook">
-  <!--/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
--->
-  <title>Enabling Dapper-like Tracing in HBase</title>
-
-  <para>
-    <link
-      xlink:href="https://issues.apache.org/jira/browse/HBASE-6449">HBASE-6449</link> added support
-    for tracing requests through HBase, using the open source tracing library, <link
-      xlink:href="http://github.com/cloudera/htrace">HTrace</link>. Setting up tracing is quite
-    simple, however it currently requires some very minor changes to your client code (it would not
-    be very difficult to remove this requirement). </para>
-
-  <section
-    xml:id="tracing.spanreceivers">
-    <title>SpanReceivers</title>
-    <para> The tracing system works by collecting information in structs called 'Spans'. It is up to
-      you to choose how you want to receive this information by implementing the
-        <classname>SpanReceiver</classname> interface, which defines one method: </para>
-    <programlisting><![CDATA[
-public void receiveSpan(Span span);
-]]></programlisting>
-    <para>This method serves as a callback whenever a span is completed. HTrace allows you to use as
-      many SpanReceivers as you want so you can easily send trace information to multiple
-      destinations. </para>
-
-    <para> Configure what SpanReceivers you'd like to us by putting a comma separated list of the
-      fully-qualified class name of classes implementing <classname>SpanReceiver</classname> in
-        <filename>hbase-site.xml</filename> property:
-        <varname>hbase.trace.spanreceiver.classes</varname>. </para>
-
-    <para> HTrace includes a <classname>LocalFileSpanReceiver</classname> that writes all span
-      information to local files in a JSON-based format. The
-        <classname>LocalFileSpanReceiver</classname> looks in <filename>hbase-site.xml</filename>
-      for a <varname>hbase.local-file-span-receiver.path</varname> property with a value describing
-      the name of the file to which nodes should write their span information. </para>
-    <programlisting><![CDATA[
-<property>
-  <name>hbase.trace.spanreceiver.classes</name>
-  <value>org.htrace.impl.LocalFileSpanReceiver</value>
-</property>
-<property>
-  <name>hbase.local-file-span-receiver.path</name>
-  <value>/var/log/hbase/htrace.out</value>
-</property>
-]]></programlisting>
-
-    <para> HTrace also provides <classname>ZipkinSpanReceiver</classname> which converts spans to <link
-        xlink:href="http://github.com/twitter/zipkin">Zipkin</link> span format and send them to
-      Zipkin server. In order to use this span receiver, you need to install the jar of
-      htrace-zipkin to your HBase's classpath on all of the nodes in your cluster. </para>
-    <para>
-      <filename>htrace-zipkin</filename> is published to the maven central repository. You could get
-      the latest version from there or just build it locally and then copy it out to all nodes,
-      change your config to use zipkin receiver, distribute the new configuration and then (rolling)
-      restart. </para>
-    <para> Here is the example of manual setup procedure. </para>
-    <screen language="bourne"><![CDATA[
-$ git clone https://github.com/cloudera/htrace
-$ cd htrace/htrace-zipkin
-$ mvn compile assembly:single
-$ cp target/htrace-zipkin-*-jar-with-dependencies.jar $HBASE_HOME/lib/
-  # copy jar to all nodes...
-]]></screen>
-    <para>The <classname>ZipkinSpanReceiver</classname> looks in <filename>hbase-site.xml</filename>
-      for a <varname>hbase.zipkin.collector-hostname</varname> and
-        <varname>hbase.zipkin.collector-port</varname> property with a value describing the Zipkin
-      collector server to which span information are sent. </para>
-    <programlisting language="xml"><![CDATA[
-<property>
-  <name>hbase.trace.spanreceiver.classes</name>
-  <value>org.htrace.impl.ZipkinSpanReceiver</value>
-</property> 
-<property>
-  <name>hbase.zipkin.collector-hostname</name>
-  <value>localhost</value>
-</property> 
-<property>
-  <name>hbase.zipkin.collector-port</name>
-  <value>9410</value>
-</property> 
-]]></programlisting>
-
-    <para> If you do not want to use the included span receivers, you are encouraged to write your
-      own receiver (take a look at <classname>LocalFileSpanReceiver</classname> for an example). If
-      you think others would benefit from your receiver, file a JIRA or send a pull request to <link
-        xlink:href="http://github.com/cloudera/htrace">HTrace</link>. </para>
-  </section>
-
-  <section
-    xml:id="tracing.client.modifications">
-    <title>Client Modifications</title>
-    <para> In order to turn on tracing in your client code, you must initialize the module sending
-      spans to receiver once per client process. </para>
-    <programlisting language="java"><![CDATA[
-private SpanReceiverHost spanReceiverHost;
-
-...
-
-  Configuration conf = HBaseConfiguration.create();
-  SpanReceiverHost spanReceiverHost = SpanReceiverHost.getInstance(conf);
-]]></programlisting>
-    <para>Then you simply start tracing span before requests you think are interesting, and close it
-      when the request is done. For example, if you wanted to trace all of your get operations, you
-      change this: </para>
-    <programlisting language="java"><![CDATA[
-HTable table = new HTable(conf, "t1");
-Get get = new Get(Bytes.toBytes("r1"));
-Result res = table.get(get);
-]]></programlisting>
-    <para>into: </para>
-    <programlisting language="java"><![CDATA[
-TraceScope ts = Trace.startSpan("Gets", Sampler.ALWAYS);
-try {
-  HTable table = new HTable(conf, "t1");
-  Get get = new Get(Bytes.toBytes("r1"));
-  Result res = table.get(get);
-} finally {
-  ts.close();
-}
-]]></programlisting>
-    <para>If you wanted to trace half of your 'get' operations, you would pass in: </para>
-    <programlisting language="java"><![CDATA[
-new ProbabilitySampler(0.5)
-]]></programlisting>
-    <para>in lieu of <varname>Sampler.ALWAYS</varname> to <classname>Trace.startSpan()</classname>.
-      See the HTrace <filename>README</filename> for more information on Samplers. </para>
-  </section>
-
-  <section
-    xml:id="tracing.client.shell">
-    <title>Tracing from HBase Shell</title>
-    <para> You can use <command>trace</command> command for tracing requests from HBase Shell.
-        <command>trace 'start'</command> command turns on tracing and <command>trace
-        'stop'</command> command turns off tracing. </para>
-    <programlisting><![CDATA[
-hbase(main):001:0> trace 'start'
-hbase(main):002:0> put 'test', 'row1', 'f:', 'val1'   # traced commands
-hbase(main):003:0> trace 'stop'
-]]></programlisting>
-    <para>
-      <command>trace 'start'</command> and <command>trace 'stop'</command> always returns boolean
-      value representing if or not there is ongoing tracing. As a result, <command>trace
-        'stop'</command> returns false on suceess. <command>trace 'status'</command> just returns if
-      or not tracing is turned on. </para>
-    <programlisting><![CDATA[
-hbase(main):001:0> trace 'start'
-=> true
-
-hbase(main):002:0> trace 'status'
-=> true
-
-hbase(main):003:0> trace 'stop'
-=> false
-
-hbase(main):004:0> trace 'status'
-=> false
-]]></programlisting>
-  </section>
-
-</appendix>