You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ni...@apache.org on 2008/09/20 02:30:12 UTC

svn commit: r697299 - in /hadoop/core/trunk: CHANGES.txt docs/changes.html docs/hadoop-default.html docs/hdfs_quota_admin_guide.html docs/hdfs_quota_admin_guide.pdf

Author: nigel
Date: Fri Sep 19 17:30:12 2008
New Revision: 697299

URL: http://svn.apache.org/viewvc?rev=697299&view=rev
Log:
Preparing for release 0.19.0

Modified:
    hadoop/core/trunk/CHANGES.txt
    hadoop/core/trunk/docs/changes.html
    hadoop/core/trunk/docs/hadoop-default.html
    hadoop/core/trunk/docs/hdfs_quota_admin_guide.html
    hadoop/core/trunk/docs/hdfs_quota_admin_guide.pdf

Modified: hadoop/core/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/CHANGES.txt?rev=697299&r1=697298&r2=697299&view=diff
==============================================================================
--- hadoop/core/trunk/CHANGES.txt (original)
+++ hadoop/core/trunk/CHANGES.txt Fri Sep 19 17:30:12 2008
@@ -1,6 +1,6 @@
 Hadoop Change Log
 
-Trunk (unreleased changes)
+Release 0.19.0 - Unreleased
 
   INCOMPATIBLE CHANGES
 

Modified: hadoop/core/trunk/docs/changes.html
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/changes.html?rev=697299&r1=697298&r2=697299&view=diff
==============================================================================
--- hadoop/core/trunk/docs/changes.html (original)
+++ hadoop/core/trunk/docs/changes.html Fri Sep 19 17:30:12 2008
@@ -36,7 +36,7 @@
     function collapse() {
       for (var i = 0; i < document.getElementsByTagName("ul").length; i++) {
         var list = document.getElementsByTagName("ul")[i];
-        if (list.id != 'trunk_(unreleased_changes)_' && list.id != 'release_0.18.1_-_2008-09-17_') {
+        if (list.id != 'release_0.19.0_-_unreleased_' && list.id != 'release_0.18.1_-_2008-09-17_') {
           list.style.display = "none";
         }
       }
@@ -52,12 +52,12 @@
 <a href="http://hadoop.apache.org/core/"><img class="logoImage" alt="Hadoop" src="images/hadoop-logo.jpg" title="Scalable Computing Platform"></a>
 <h1>Hadoop Change Log</h1>
 
-<h2><a href="javascript:toggleList('trunk_(unreleased_changes)_')">Trunk (unreleased changes)
+<h2><a href="javascript:toggleList('release_0.19.0_-_unreleased_')">Release 0.19.0 - Unreleased
 </a></h2>
-<ul id="trunk_(unreleased_changes)_">
-  <li><a href="javascript:toggleList('trunk_(unreleased_changes)_._incompatible_changes_')">  INCOMPATIBLE CHANGES
-</a>&nbsp;&nbsp;&nbsp;(16)
-    <ol id="trunk_(unreleased_changes)_._incompatible_changes_">
+<ul id="release_0.19.0_-_unreleased_">
+  <li><a href="javascript:toggleList('release_0.19.0_-_unreleased_._incompatible_changes_')">  INCOMPATIBLE CHANGES
+</a>&nbsp;&nbsp;&nbsp;(18)
+    <ol id="release_0.19.0_-_unreleased_._incompatible_changes_">
       <li><a href="http://issues.apache.org/jira/browse/HADOOP-3595">HADOOP-3595</a>. Remove deprecated methods for mapred.combine.once
 functionality, which was necessary to providing backwards
 compatible combiner semantics for 0.18.<br />(cdouglas via omalley)</li>
@@ -103,11 +103,18 @@
       <li><a href="http://issues.apache.org/jira/browse/HADOOP-4007">HADOOP-4007</a>. REMOVE DFSFileInfo - FileStatus is sufficient.<br />(Sanjay Radia via hairong)</li>
       <li><a href="http://issues.apache.org/jira/browse/HADOOP-3722">HADOOP-3722</a>. Fixed Hadoop Streaming and Hadoop Pipes to use the Tool
 interface and GenericOptionsParser.<br />(Enis Soztutar via acmurthy)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-2816">HADOOP-2816</a>. Cluster summary at name node web reports the space
+utilization as:
+Configured Capacity: capacity of all the data directories - Reserved space
+Present Capacity: Space available for dfs,i.e. remaining+used space
+DFS Used%: DFS used space/Present Capacity<br />(Suresh Srinivas via hairong)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3938">HADOOP-3938</a>. Disk space quotas for HDFS. This is similar to namespace
+quotas in 0.18.<br />(rangadi)</li>
     </ol>
   </li>
-  <li><a href="javascript:toggleList('trunk_(unreleased_changes)_._new_features_')">  NEW FEATURES
-</a>&nbsp;&nbsp;&nbsp;(31)
-    <ol id="trunk_(unreleased_changes)_._new_features_">
+  <li><a href="javascript:toggleList('release_0.19.0_-_unreleased_._new_features_')">  NEW FEATURES
+</a>&nbsp;&nbsp;&nbsp;(39)
+    <ol id="release_0.19.0_-_unreleased_._new_features_">
       <li><a href="http://issues.apache.org/jira/browse/HADOOP-3341">HADOOP-3341</a>. Allow streaming jobs to specify the field separator for map
 and reduce input and output. The new configuration values are:
   stream.map.input.field.separator
@@ -173,12 +180,30 @@
 directory.<br />(hairong via szetszwo)</li>
       <li><a href="http://issues.apache.org/jira/browse/HADOOP-3981">HADOOP-3981</a>. Implement a distributed file checksum algorithm in HDFS
 and change DistCp to use file checksum for comparing src and dst files<br />(szetszwo)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3829">HADOOP-3829</a>. Narrown down skipped records based on user acceptable value.<br />(Sharad Agarwal via ddas)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3930">HADOOP-3930</a>. Add common interfaces for the pluggable schedulers and the
+cli &amp; gui clients.<br />(Sreekanth Ramakrishnan via omalley)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-4176">HADOOP-4176</a>. Implement getFileChecksum(Path) in HftpFileSystem.<br />(szetszwo)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-249">HADOOP-249</a>. Reuse JVMs across Map-Reduce Tasks.
+Configuration changes to hadoop-default.xml:
+  add mapred.job.reuse.jvm.num.tasks<br />(Devaraj Das via acmurthy)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-4070">HADOOP-4070</a>. Provide a mechanism in Hive for registering UDFs from the
+query language.<br />(tomwhite)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-2536">HADOOP-2536</a>. Implement a JDBC based database input and output formats to
+allow Map-Reduce applications to work with databases.<br />(Fredrik Hedberg and
+Enis Soztutar via acmurthy)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3019">HADOOP-3019</a>. A new library to support total order partitions.<br />(cdouglas via omalley)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3924">HADOOP-3924</a>. Added a 'KILLED' job status.<br />(Subramaniam Krishnan via
+acmurthy)</li>
     </ol>
   </li>
-  <li><a href="javascript:toggleList('trunk_(unreleased_changes)_._improvements_')">  IMPROVEMENTS
-</a>&nbsp;&nbsp;&nbsp;(55)
-    <ol id="trunk_(unreleased_changes)_._improvements_">
-      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3908">HADOOP-3908</a>. Fuse-dfs: better error message if llibhdfs.so doesn't exist.<br />(Pete Wyckoff through zshao)</li>
+  <li><a href="javascript:toggleList('release_0.19.0_-_unreleased_._improvements_')">  IMPROVEMENTS
+</a>&nbsp;&nbsp;&nbsp;(68)
+    <ol id="release_0.19.0_-_unreleased_._improvements_">
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-4205">HADOOP-4205</a>. hive: metastore and ql to use the refactored SerDe library.<br />(zshao)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-4106">HADOOP-4106</a>. libhdfs: add time, permission and user attribute support (part 2).<br />(Pete Wyckoff through zshao)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-4104">HADOOP-4104</a>. libhdfs: add time, permission and user attribute support.<br />(Pete Wyckoff through zshao)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3908">HADOOP-3908</a>. libhdfs: better error message if llibhdfs.so doesn't exist.<br />(Pete Wyckoff through zshao)</li>
       <li><a href="http://issues.apache.org/jira/browse/HADOOP-3732">HADOOP-3732</a>. Delay intialization of datanode block verification till
 the verification thread is started.<br />(rangadi)</li>
       <li><a href="http://issues.apache.org/jira/browse/HADOOP-1627">HADOOP-1627</a>. Various small improvements to 'dfsadmin -report' output.<br />(rangadi)</li>
@@ -278,11 +303,29 @@
 omalley)</li>
       <li><a href="http://issues.apache.org/jira/browse/HADOOP-4184">HADOOP-4184</a>. Break the module dependencies between core, hdfs, and
 mapred.<br />(tomwhite via omalley)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-4075">HADOOP-4075</a>. test-patch.sh now spits out ant commands that it runs.<br />(Ramya R via nigel)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-4117">HADOOP-4117</a>. Improve configurability of Hadoop EC2 instances.<br />(tomwhite)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-2411">HADOOP-2411</a>. Add support for larger CPU EC2 instance types.<br />(Chris K Wensel via tomwhite)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-4083">HADOOP-4083</a>. Changed the configuration attribute queue.name to
+mapred.job.queue.name.<br />(Hemanth Yamijala via acmurthy)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-4194">HADOOP-4194</a>. Added the JobConf and JobID to job-related methods in
+JobTrackerInstrumentation for better metrics.<br />(Mac Yang via acmurthy)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3975">HADOOP-3975</a>. Change test-patch script to report working the dir
+modifications preventing the suite from being run.<br />(Ramya R via cdouglas)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-4124">HADOOP-4124</a>. Added a command-line switch to allow users to set job
+priorities, also allow it to be manipulated via the web-ui.<br />(Hemanth
+Yamijala via acmurthy)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-2165">HADOOP-2165</a>. Augmented JobHistory to include the URIs to the tasks'
+userlogs.<br />(Vinod Kumar Vavilapalli via acmurthy)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-4062">HADOOP-4062</a>. Remove the synchronization on the output stream when a
+connection is closed and also remove an undesirable exception when
+a client is stoped while there is no pending RPC request.<br />(hairong)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-4227">HADOOP-4227</a>. Remove the deprecated class org.apache.hadoop.fs.ShellCommand.<br />(szetszwo)</li>
     </ol>
   </li>
-  <li><a href="javascript:toggleList('trunk_(unreleased_changes)_._optimizations_')">  OPTIMIZATIONS
-</a>&nbsp;&nbsp;&nbsp;(8)
-    <ol id="trunk_(unreleased_changes)_._optimizations_">
+  <li><a href="javascript:toggleList('release_0.19.0_-_unreleased_._optimizations_')">  OPTIMIZATIONS
+</a>&nbsp;&nbsp;&nbsp;(9)
+    <ol id="release_0.19.0_-_unreleased_._optimizations_">
       <li><a href="http://issues.apache.org/jira/browse/HADOOP-3556">HADOOP-3556</a>. Removed lock contention in MD5Hash by changing the
 singleton MessageDigester by an instance per Thread using
 ThreadLocal.<br />(Iv?n de Prado via omalley)</li>
@@ -300,11 +343,12 @@
 GenericMRLoadGenerator public, so they can be used in other contexts.<br />(Lingyun Yang via omalley)</li>
       <li><a href="http://issues.apache.org/jira/browse/HADOOP-3514">HADOOP-3514</a>. Inline the CRCs in intermediate files as opposed to reading
 it from a different .crc file.<br />(Jothi Padmanabhan via ddas)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3638">HADOOP-3638</a>. Caches the iFile index files in memory to reduce seeks<br />(Jothi Padmanabhan via ddas)</li>
     </ol>
   </li>
-  <li><a href="javascript:toggleList('trunk_(unreleased_changes)_._bug_fixes_')">  BUG FIXES
-</a>&nbsp;&nbsp;&nbsp;(79)
-    <ol id="trunk_(unreleased_changes)_._bug_fixes_">
+  <li><a href="javascript:toggleList('release_0.19.0_-_unreleased_._bug_fixes_')">  BUG FIXES
+</a>&nbsp;&nbsp;&nbsp;(88)
+    <ol id="release_0.19.0_-_unreleased_._bug_fixes_">
       <li><a href="http://issues.apache.org/jira/browse/HADOOP-3563">HADOOP-3563</a>.  Refactor the distributed upgrade code so that it is
 easier to identify datanode and namenode related code.<br />(dhruba)</li>
       <li><a href="http://issues.apache.org/jira/browse/HADOOP-3640">HADOOP-3640</a>. Fix the read method in the NativeS3InputStream.<br />(tomwhite via
@@ -452,6 +496,21 @@
       <li><a href="http://issues.apache.org/jira/browse/HADOOP-4138">HADOOP-4138</a>. Refactor the Hive SerDe library to better structure
 the interfaces to the serializer and de-serializer.<br />(Zheng Shao via dhruba)</li>
       <li><a href="http://issues.apache.org/jira/browse/HADOOP-4195">HADOOP-4195</a>. Close compressor before returning to codec pool.<br />(acmurthy via omalley)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-2403">HADOOP-2403</a>. Escapes some special characters before logging to
+history files.<br />(Amareshwari Sriramadasu via ddas)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-4200">HADOOP-4200</a>. Fix a bug in the test-patch.sh script.<br />(Ramya R via nigel)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-4084">HADOOP-4084</a>. Add explain plan capabilities to Hive Query Language.<br />(Ashish Thusoo via dhruba)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-4121">HADOOP-4121</a>. Preserve cause for exception if the initialization of
+HistoryViewer for JobHistory fails.<br />(Amareshwari Sri Ramadasu via
+acmurthy)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-4213">HADOOP-4213</a>. Fixes NPE in TestLimitTasksPerJobTaskScheduler.<br />(Sreekanth Ramakrishnan via ddas)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-4077">HADOOP-4077</a>. Setting access and modification time for a file
+requires write permissions on the file.<br />(dhruba)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-3592">HADOOP-3592</a>. Fix a couple of possible file leaks in FileUtil<br />(Bill de hOra via rangadi)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-4120">HADOOP-4120</a>. Hive interactive shell records the time taken by a
+query.<br />(Raghotham Murthy via dhruba)</li>
+      <li><a href="http://issues.apache.org/jira/browse/HADOOP-4090">HADOOP-4090</a>. The hive scripts pick up hadoop from HADOOP_HOME
+and then the path.<br />(Raghotham Murthy via dhruba)</li>
     </ol>
   </li>
 </ul>

Modified: hadoop/core/trunk/docs/hadoop-default.html
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/hadoop-default.html?rev=697299&r1=697298&r2=697299&view=diff
==============================================================================
--- hadoop/core/trunk/docs/hadoop-default.html (original)
+++ hadoop/core/trunk/docs/hadoop-default.html Fri Sep 19 17:30:12 2008
@@ -600,6 +600,11 @@
                may be executed in parallel.</td>
 </tr>
 <tr>
+<td><a name="mapred.job.reuse.jvm.num.tasks">mapred.job.reuse.jvm.num.tasks</a></td><td>1</td><td>How many tasks to run per jvm. If set to -1, there is
+  no limit. 
+  </td>
+</tr>
+<tr>
 <td><a name="mapred.min.split.size">mapred.min.split.size</a></td><td>0</td><td>The minimum size chunk that map input should be split
   into.  Note that some file formats may have minimum split sizes that
   take priority over this setting.</td>
@@ -749,12 +754,6 @@
     </td>
 </tr>
 <tr>
-<td><a name="mapred.skip.mode.enabled">mapred.skip.mode.enabled</a></td><td>false</td><td> Indicates whether skipping of bad records is enabled or not.
-    If enabled the framework will try to find bad records and skip  
-    them on further attempts.
-    </td>
-</tr>
-<tr>
 <td><a name="mapred.skip.attempts.to.start.skipping">mapred.skip.attempts.to.start.skipping</a></td><td>2</td><td> The number of Task attempts AFTER which skip mode 
     will be kicked off. When skip mode is kicked off, the 
     tasks reports the range of records which it will process 
@@ -765,7 +764,7 @@
 </tr>
 <tr>
 <td><a name="mapred.skip.map.auto.incr.proc.count">mapred.skip.map.auto.incr.proc.count</a></td><td>true</td><td> The flag which if set to true, 
-    Counters.Application.MAP_PROCESSED_RECORDS is incremented 
+    SkipBadRecords.COUNTER_MAP_PROCESSED_RECORDS is incremented 
     by MapRunner after invoking the map function. This value must be set to 
     false for applications which process the records asynchronously 
     or buffer the input records. For example streaming. 
@@ -774,7 +773,7 @@
 </tr>
 <tr>
 <td><a name="mapred.skip.reduce.auto.incr.proc.count">mapred.skip.reduce.auto.incr.proc.count</a></td><td>true</td><td> The flag which if set to true, 
-    Counters.Application.REDUCE_PROCESSED_RECORDS is incremented 
+    SkipBadRecords.COUNTER_REDUCE_PROCESSED_GROUPS is incremented 
     by framework after invoking the reduce function. This value must be set to 
     false for applications which process the records asynchronously 
     or buffer the input records. For example streaming. 
@@ -782,6 +781,36 @@
     </td>
 </tr>
 <tr>
+<td><a name="mapred.skip.out.dir">mapred.skip.out.dir</a></td><td></td><td> If no value is specified here, the skipped records are 
+    written to the output directory at _logs/skip.
+    User can stop writing skipped records by giving the value "none". 
+    </td>
+</tr>
+<tr>
+<td><a name="mapred.skip.map.max.skip.records">mapred.skip.map.max.skip.records</a></td><td>0</td><td> The number of acceptable skip records surrounding the bad 
+    record PER bad record in mapper. The number includes the bad record as well.
+    To turn the feature of detection/skipping of bad records off, set the 
+    value to 0.
+    The framework tries to narrow down the skipped range by retrying  
+    until this threshold is met OR all attempts get exhausted for this task. 
+    Set the value to Long.MAX_VALUE to indicate that framework need not try to 
+    narrow down. Whatever records(depends on application) get skipped are 
+    acceptable.
+    </td>
+</tr>
+<tr>
+<td><a name="mapred.skip.reduce.max.skip.groups">mapred.skip.reduce.max.skip.groups</a></td><td>0</td><td> The number of acceptable skip groups surrounding the bad 
+    group PER bad group in reducer. The number includes the bad group as well.
+    To turn the feature of detection/skipping of bad groups off, set the 
+    value to 0.
+    The framework tries to narrow down the skipped range by retrying  
+    until this threshold is met OR all attempts get exhausted for this task. 
+    Set the value to Long.MAX_VALUE to indicate that framework need not try to 
+    narrow down. Whatever groups(depends on application) get skipped are 
+    acceptable.
+    </td>
+</tr>
+<tr>
 <td><a name="ipc.client.idlethreshold">ipc.client.idlethreshold</a></td><td>4000</td><td>Defines the threshold number of connections after which
                connections will be inspected for idleness.
   </td>
@@ -942,13 +971,18 @@
   </td>
 </tr>
 <tr>
-<td><a name="queue.name">queue.name</a></td><td>default</td><td> Queue to which a job is submitted. This must match one of the
+<td><a name="mapred.job.queue.name">mapred.job.queue.name</a></td><td>default</td><td> Queue to which a job is submitted. This must match one of the
     queues defined in mapred.queue.names for the system. Also, the ACL setup
     for the queue must allow the current user to submit a job to the queue.
     Before specifying a queue, ensure that the system is configured with 
     the queue, and access is allowed for submitting jobs to the queue.
   </td>
 </tr>
+<tr>
+<td><a name="mapred.tasktracker.indexcache.mb">mapred.tasktracker.indexcache.mb</a></td><td>10</td><td> The maximum memory that a task tracker allows for the 
+    index cache that is used when serving map outputs to reducers.
+  </td>
+</tr>
 </table>
 </body>
 </html>

Modified: hadoop/core/trunk/docs/hdfs_quota_admin_guide.html
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/hdfs_quota_admin_guide.html?rev=697299&r1=697298&r2=697299&view=diff
==============================================================================
--- hadoop/core/trunk/docs/hdfs_quota_admin_guide.html (original)
+++ hadoop/core/trunk/docs/hdfs_quota_admin_guide.html Fri Sep 19 17:30:12 2008
@@ -5,9 +5,7 @@
 <meta content="Apache Forrest" name="Generator">
 <meta name="Forrest-version" content="0.8">
 <meta name="Forrest-skin-name" content="pelt">
-<title>
-      Name Space Quotas Administrator Guide
-    </title>
+<title> Directory Quotas Administrator's Guide </title>
 <link type="text/css" href="skin/basic.css" rel="stylesheet">
 <link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
 <link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
@@ -192,77 +190,124 @@
 <a class="dida" href="hdfs_quota_admin_guide.pdf"><img alt="PDF -icon" src="skin/images/pdfdoc.gif" class="skin"><br>
         PDF</a>
 </div>
-<h1>
-      Name Space Quotas Administrator Guide
-    </h1>
-      
-<p>
-      The Hadoop Distributed File System (HDFS) allows the administrator to set quotas on individual directories. 
-      Newly created directories have no associated quota. 
-      The largest quota is <span class="codefrag">Long.Max_Value</span>. A quota of one forces a directory 
-      to remain empty.
-      </p>
-
-      
-<p>
-      The directory quota is a hard limit on the number of names in the tree 
-      rooted at that directory. File and directory creations fault if the quota 
-      would be exceeded. Quotas stick to renamed directories; the rename 
-      operation faults if operation would result in a quota violation. 
-      The attempt to set a quota faults if the directory would be in violation 
-      of the new quota.
-      </p>
-
-      
-<p>
-      Quotas are persistent with the fsimage. When starting, if the fsimage 
-      is immediately in violation of a quota (perhaps the fsimage was 
-      surreptitiously modified), the startup operation fails with an error report. 
-      Setting or removing a quota creates a journal entry.
-      </p> 
-
-      
-<p>
-      The following new commands or new options are added to support quotas. 
-      The first two are administration commands.
-      </p>
+<h1> Directory Quotas Administrator's Guide </h1>
+<div id="minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#Name+Quotas">Name Quotas</a>
+</li>
+<li>
+<a href="#Space+Quotas">Space Quotas</a>
+</li>
+<li>
+<a href="#Administrative+Commands">Administrative Commands</a>
+</li>
+<li>
+<a href="#Reporting+Command">Reporting Command</a>
+</li>
+</ul>
+</div>
+
+ 
+<p> The Hadoop Distributed File System (HDFS) allows the administrator to set quotas for the number of names used and the
+amount of space used for individual directories. Name quotas and space quotas operate independently, but the administration and
+implementation of the two types of quotas are closely parallel. </p>
+
+
+<a name="N10010"></a><a name="Name+Quotas"></a>
+<h2 class="h3">Name Quotas</h2>
+<div class="section">
+<p> The name quota is a hard limit on the number of file and directory names in the tree rooted at that directory. File and
+directory creations fail if the quota would be exceeded. Quotas stick with renamed directories; the rename operation fails if
+operation would result in a quota violation. The attempt to set a quota fails if the directory would be in violation of the new
+quota. A newly created directory has no associated quota. The largest quota is <span class="codefrag">Long.Max_Value</span>. A quota of one
+forces a directory to remain empty. (Yes, a directory counts against its own quota!) </p>
+<p> Quotas are persistent with the <span class="codefrag">fsimage</span>. When starting, if the <span class="codefrag">fsimage</span> is immediately in
+violation of a quota (perhaps the <span class="codefrag">fsimage</span> was surreptitiously modified), 
+a warning is printed for each of such violations. Setting or removing a quota creates a journal entry. </p>
+</div>
+
+
+<a name="N10029"></a><a name="Space+Quotas"></a>
+<h2 class="h3">Space Quotas</h2>
+<div class="section">
+<p> The space quota is a hard limit on the number of bytes used by files in the tree rooted at that directory. Block
+allocations fail if the quota would not allow a full block to be written. Each replica of a block counts against the quota. Quotas
+stick with renamed directories; the rename operation fails if the operation would result in a quota violation. The attempt to
+set a quota fails if the directory would be in violation of the new quota. A newly created directory has no associated quota.
+The largest quota is <span class="codefrag">Long.Max_Value</span>. A quota of zero still permits files to be created, but no blocks can be added to the files.
+Directories don't use host file system space and don't count against the space quota. The host file system space used to save
+the file meta data is not counted against the quota. Quotas are charged at the intended replication factor for the file;
+changing the replication factor for a file will credit or debit quotas. </p>
+<p> Quotas are persistent with the <span class="codefrag">fsimage</span>. When starting, if the <span class="codefrag">fsimage</span> is immediately in
+violation of a quota (perhaps the <span class="codefrag">fsimage</span> was surreptitiously modified), a warning is printed for
+each of such violations. Setting or removing a quota creates a journal entry. </p>
+</div>
+
 
-      
+<a name="N10042"></a><a name="Administrative+Commands"></a>
+<h2 class="h3">Administrative Commands</h2>
+<div class="section">
+<p> Quotas are managed by a set of commands available only to the administrator. </p>
 <ul>
-      
-<li>
-      
+
+ 
+<li> 
 <span class="codefrag">dfsadmin -setquota &lt;N&gt; &lt;directory&gt;...&lt;directory&gt;</span> 
-      
-<br>
-      Set the quota to be <span class="codefrag">N</span> for each directory. Best effort for each directory,
-      with faults reported if <span class="codefrag">N</span> is not a positive long integer, 
-      the directory does not exist or it is a file, or the directory would 
-      immediately exceed the new quota.
-      </li>
-  
-      
-<li>
-      
+<br> Set the name quota to be <span class="codefrag">N</span> for
+each directory. Best effort for each directory, with faults reported if <span class="codefrag">N</span> is not a positive long integer, the
+directory does not exist or it is a file, or the directory would immediately exceed the new quota. </li>
+
+ 
+<li> 
 <span class="codefrag">dfsadmin -clrquota &lt;directory&gt;...&lt;director&gt;</span>
-<br> 
-      Remove any quota for each directory. Best effort for each directory, 
-      with faults reported if the directory does not exist or it is a file. 
-      It is not a fault if the directory has no quota.
-      </li>
-  
-      
+<br> Remove any name quota for each directory. Best
+effort for each directory, with faults reported if the directory does not exist or it is a file. It is not a fault if the
+directory has no quota. </li>
+
+ 
+<li> 
+<span class="codefrag">dfsadmin -setspacequota &lt;N&gt; &lt;directory&gt;...&lt;directory&gt;</span> 
+<br> Set the space quota to be
+N&times;2<sup>30</sup> bytes (GB) for each directory. Best effort for each directory, with faults reported if <span class="codefrag">N</span> is
+neither zero nor a positive integer, the directory does not exist or it is a file, or the directory would immediately exceed
+the new quota. </li>
+
+ 
+<li> 
+<span class="codefrag">dfsadmin -clrspacequota &lt;directory&gt;...&lt;director&gt;</span>
+<br> Remove any space quota for each directory. Best
+effort for each directory, with faults reported if the directory does not exist or it is a file. It is not a fault if the
+directory has no quota. </li>
+
+ 
+</ul>
+</div>
+
+
+<a name="N10079"></a><a name="Reporting+Command"></a>
+<h2 class="h3">Reporting Command</h2>
+<div class="section">
+<p> An an extension to the <span class="codefrag">count</span> command of the HDFS shell reports quota values and the current count of names and bytes in use. </p>
+<ul>
+	
+	
 <li>
-      
+
+ 
 <span class="codefrag">fs -count -q &lt;directory&gt;...&lt;directory&gt;</span>
-<br>
-      With the <span class="codefrag">-q</span> option, also report the quota value set for each 
-      directory, and the available quota remaining. If the directory does not have 
-      a quota set, the reported values are <span class="codefrag">none</span> and <span class="codefrag">inf</span>.
-      </li>
-      
+<br> With the <span class="codefrag">-q</span> option, also report the name quota
+value set for each directory, the available name quota remaining, the space quota value set, and the available space quota
+remaining. If the directory does not have a quota set, the reported values are <span class="codefrag">none</span> and <span class="codefrag">inf</span>. Space
+values are rounded to multiples of 2<sup>30</sup> bytes (GB).
+
+ </li>
+
+ 
 </ul>
-   
+</div>
+
+
 </div>
 <!--+
     |end content

Modified: hadoop/core/trunk/docs/hdfs_quota_admin_guide.pdf
URL: http://svn.apache.org/viewvc/hadoop/core/trunk/docs/hdfs_quota_admin_guide.pdf?rev=697299&r1=697298&r2=697299&view=diff
==============================================================================
--- hadoop/core/trunk/docs/hdfs_quota_admin_guide.pdf (original)
+++ hadoop/core/trunk/docs/hdfs_quota_admin_guide.pdf Fri Sep 19 17:30:12 2008
@@ -5,10 +5,10 @@
 /Producer (FOP 0.20.5) >>
 endobj
 5 0 obj
-<< /Length 1716 /Filter [ /ASCII85Decode /FlateDecode ]
+<< /Length 500 /Filter [ /ASCII85Decode /FlateDecode ]
  >>
 stream
-Gb!#\>Ar7S'Roe[csm-QW^M]PN"#rZF]gY>!O<R._`S?d7G6HAd30r#q=gX:2@jBI8VR]lqN)b$LZeZ-:V:"-hVTRZ9#E&Z'U,KoZ^O:uH4gIFrYGh2p=V9^_IT)=M^nN#ig*R913eRdRJu=-IS3^,]PG#$d`<O%MUbBM5nk-%_&pMQVpWn3@ZLG]@6#@bH@LR")"i>\)Al!'1eN+S`MPGOgE/%3PFV6HO[$7.fgDNJDB@Z=&uaSM91:?U0/#M=]")0SRO=m^q-FtB6&WYkn+[AOs-H\&iUN;,?KSXG-TINJkoiAokA830L6P.ZB7d:n77Lj%T&.nDq/"!7TYu^-BUOVpZ30XH^i:PE?SVG6c@96M8q0FNR`]WWc2`")TjrWD=Rl2Y`T&?V,Q4L9nM@B#i@j9Vceh:HSEgue[Bm+rE<"sTYK+KoYXfnXJr:Af+$%U7Zb$ePXU(te9WP:A%\;j@OtPtI%X49W3R6EoD281'/6TrVh1a/JY++^-$?oNc%0OB]o:;QX"d7g!C+,gL)O-8U3`D8To<,B)MX6HP[A2p*F2<)1S1dE3!n47?`%oL.Si7t"o`3jE:Ff%YRY,4a)pQ)rD"Y9@<SHg%cG4'kK774&^[\hh*sG9HV4n?I'YSUDms'6p[@krC*dErp;n$8Lm*6W(M'M"o@aL2be]uDiT[n&Y>eK?UBff76)#,gJp[$O"7e`e\lUXC#%#0agM$S'n/t(3NM:NdgH_r\Bqh8Pq=]8.Q0,k6<Q\l'flLi[X1,bZaL*Ka`So,>OgeuA,!E1g6#l$_ArInRdWS!<7DgS+$]=6q/&V=m8e!:pZ?*8Ft$:aXKjd##e/nGK",%-?L_8b,8=[?.=I<?cRI0]j&LN\pj"c@P#<Eh?=KCsE,GLits/G;3C]iP-lNMn!Vd7rdilsu]6BNr;WMIh'Cc,>K@Pm2Bq%`NaZDb%ld%0jpq\9fdjBXVdW7S/\*W`(SPM2p<]O\&(@=U\]
 ^n4'I^&#"_J;A6Z6E2#X<Q49`D&]/0@<7Ya`%[7d8F$X$%7\/Xb)E\Oa+!,iWqZ-sm0`2K:+ct!rYJDoQbq.aNCZ5/7.kJsJ4VJjarZru!c.nm8KlIgdYsJIqMNS\k3_2XKc`Sjk98g[PS_"hcTYmAk_fi=HBZR"K/iWo$5ObnL>?(;T_))XcG\Wjj/ktje%e3X%_KjD^gNLc:`_?/-;0"YNXB'F;Kb$6c9/l%`B9te:=:(@>aDa;D\Br1ab,qd@aN.0[Pb.G!5='8V]Ug+WR1B#.5^2kuD.!nW0QM][WYAqsE6nR-j,`>j_4=rf]jl&)s-Lt0D^=^UHc"*aGVa/DjXo!Q5OEKQW#n/@^3P1pa,qUB%C+3.CL8:q6-5Vm]%&K69#?VN9ui#"o&J>(D$XbY%)/60CqmFrL!saN+40k+#*/A]@u[)JJA*>+jPrFPh7h_<="-X'70!5T=<HJpFkKNr>OkV%TbXEVJC;NPrpiHu7+fRfB=R:I0L$*!.Ilf,dp:b*F3I"bm=6E$iYf$X:j;Y/06LY(^'_Kjqg/fa*Ds+A=C%H'Oj:l?=QM6Fh_-=;h,SGRX)Ts(B/iGoE2+!'5gZ0kgeFs+.qYT,%u2[t%*_ZYDO=pm_tauOo0hc72t7pG4q"gUFB.TZP*ZHp7ae(c1X\P5LE#EYDGYRDbmUp$4p1X/2]<$DF87MgQ),'RgY`iO:eAX/]?N?hrX[T6Q)+~>
+Gb!<Kb...@S>je)_jhTQq.2Fih_K2G;e`gn_P3(HQ]+UJ_KfdCgH=64JQg:$]I3O'@=34;l!&l/JU5Da1%A^Ps=b*e[?D4U!.,\uJNXk2.fE]ZEaM+4G7aH8pk!lT7?_u~>
 endstream
 endobj
 6 0 obj
@@ -17,78 +17,244 @@
 /MediaBox [ 0 0 612 792 ]
 /Resources 3 0 R
 /Contents 5 0 R
+/Annots 7 0 R
 >>
 endobj
 7 0 obj
+[
+8 0 R
+10 0 R
+12 0 R
+14 0 R
+]
+endobj
+8 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 102.0 532.666 175.652 520.666 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 9 0 R
+/H /I
+>>
+endobj
+10 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 102.0 514.466 175.652 502.466 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 11 0 R
+/H /I
+>>
+endobj
+12 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 102.0 496.266 239.672 484.266 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 13 0 R
+/H /I
+>>
+endobj
+14 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 102.0 478.066 211.004 466.066 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 15 0 R
+/H /I
+>>
+endobj
+16 0 obj
+<< /Length 2245 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gb!l!>Ar7S'RnB3d%6[-/Ls\BF=>Ko9oEF1<[?...@aDmZm3>-:Ep>1`Q.(LuT^=@PK%S8L%V:-N2j<`NNbqiRj+5i\IbeX@jO&_H="Pu?ZNIm:tElG))^W3Q9J8qZG6SJ0,E;7*t<oaMZl1^fPf'rX`6QgO$ed--Cqdu]7N.<I0)60qh>`Z*-pVDM5H-TgQgXLn\FE@EhYFaNlnmV%$aOu2QdaAl/h+ENW:)ECu\LhD'pnhVH)A/t]N>OGV-Ica0rE"jpE6+G$-r!EC(ME%0,k*oAE*8$fXcCAf7KKc
 ,]7=C@??9Le<O8tH`<pkdTW!kH\ZneZ34Pl8Sn_'pC_uHd,$-JSee5(02H;SrBTJVBT0@,:R!-ruC!APWk&(Ze@P!(cK\pXSCT@\bdh[)5VC_P?(<V6+JsPRT'hcBlS&bA?fWqeZ!Rs@>G*VC]6#fh\U,MR`cB>TlLK+F@ffL0Op+'J$8/lfZWd/lJ4uGj,LLWKSr#qQ8JE)9^Y`@0PVlu]ZW\K(u5+k_d4=/e!?X8AWYtOih2$uoo$@d151AN/A7a41WV>L]0G-S*m;rIeRA4q'[%!eDPl)Ca'7+9)JA$<'kfb2."R;)k#^'[.XA<"QE[8C'b)3D8Ag;3anq9QJ`MOQokp84lVNB_f_328\P?=Y67ZtX.%im+]Ok`rcJ\A#Y)%d2C[ml@E;#35/B`K>g,c-$UtnS9gtNB:fA_U0D(6"4`STJ'!T23)\S$"tEHRF@61=1*=L_TD0"%:.u;GMem_s2@Wu<jdI6Uf'EIXEVI#N>HGNfjd@O+_%=<1,pJ#-j0Z#XO*T]dM)lnMFL1gBb%ds0jtI2+B^f.$E9U$;G"_Zj85<\\EuHO$]X-PJnLVnhk"6'$,/JaNk.8@?qT'MbV5QF><G4sG0>sA?0dm)TAV`m0Ki?H+uH7#FtQ)qiNl]$^@ba?F`!or#k[EU"rOb#Y0lt$V_L<,&;V!A_1-]J&,l8C.9NY_3M*WITYo:LNX0-lUt?kZ:aMVUl3ND@q*H'K-UG+'n,U"IOJ*L_4FJ\KgV3)XHqt3l\JT2\LP%=XJ2]^fA;m=V4;su#%ltY.#I*Lnl#>uW*q=i\pON]D#P`lYp4V$QcW._9ccJp!&1<LX3S?K69Qh,=7cT_^'M4O6[PH++^a"Y<_iQ0k'DB%U'our7LmG?f$s/hYmrp-t3sHomQ#Y2Zj:.sbOeQm_B\3oUDFp0p-VoR0lq[IWA`T4(_kV/-^As0TQ$u")!NT^s`P#ZG&oSJ3`D'Y0ka-70qIg'E)AAHHRI?
 31\f2<4pAU2#e_VDkZHnkP4/>e&*!WVP2mO`.;rfbf:b*_2DA8>^34;.DnU;DNl<h>p-O`Qd"r)*IrM,]5iu[1*hDQS>YVOtJNT`1E%S>jp7;3G#[l(]9CXSWOkUY3=aL,K<7,aftNua_mBbZrufR8Eh'%,(t_4P6t^>ap!D^h?!W7)j]>&JM[=KOZGLJcZFW:*D1C>7.C)L-28GcA2(>[PTa]c@*IIr_O`A3*HG_mZ07oSZIf"kL?Gj_abBj64+i!HWEOCB~>
+endstream
+endobj
+17 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 16 0 R
+>>
+endobj
+18 0 obj
+<< /Length 1427 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gb"/'95iiK&AJ$Ckgfl-=A^7k#q,j#]:3V`#eCrW4Z#;U2J!8X6q<E(]"bu/_r=LYR'j3Oh#^%'5bp9-f/N;@Ho%CCR*V@:fNG3"h(3T/lS-?.ImWJa9<>QgV\%/&m*k<555Y/A3nRBgbi>,G8@e!r44k!X;9BGkM)3JJ5L0\AO[UR^kK]pU*-RXdkK[G[r&8aje=Y0]^bG=61XET""mDXFJ.We/,c+P.b=XFtIb`""WKJ'kG>aj4J=1[/<hd+N44P7^]M&[;W+<.8>>e/Z'n7SW=NU^/!W15]?tu4-iaQ0(Z)J&T+:#hTA06gD>@6JMKfR71YtTBgdN(/j+^j:<s)[_1(XH;gER\V-+(V@)PS^#9lth"?4DMc"l\4dOYP04nq(bT`V3\ZOg<2og1og6"0>4Pj#bc]iAOB:p$4"Z.X84A&$'E&F&=/i!@c0:<'hjYGMtI?bOP[S]&/HHjimi%(!F38a'mLtcgU&HN_;Y5=Zkqp:JU%g*?RI+rWk7g#1mceK3.Ec:;usT!2ID2f)DDjGKmjpCTS=!)?](l=n:_^F_#;fQorreT+=JJGp)ZUZ&\uD<a`=>UIXV@%h*:aBi;###G#psT4eCKc4J%&7\f/aH`O[:AH+iUs7hVGl_TdI?C:+YG(D%8j"cUk@b!#hgrC7P7,.e\oS3pUFPmPK?l3FolHp`Xqf_RauOEq&gj*H9>@!3k:m00E9+iRRX*\/8b)o-rT%nRK#<qeg#T"p+,Uq-jAC*7IL)6!X'4li[CeVFdpg?0d`$+u22P?GosAU!4oYX4/o^fWh(\."LVEQ,:Nh(MpXRW+fbJA\`o+tjT9[NMX8$i"C:=(N5&TqQ-C[s;P#m!^c8dflC7cVss1^;#'r`OQau3ohQJc9\kPn8o'.CT'?82;/nIM_j%U\Le/N".XMJN`fXpUSh'#/cuE9rO*DY[T>\N:e6Z2Y!f,.l[4L]fN(*2pZq"GEO54'2/76er\/Y_*DBR
 8$tI5;Y:['(`p2')JD=*2bFhN![$3q29JN)TnnG<1O=*eAgkJ`+_NU3KV;lX"+/i&6F3SH++YoYMWiJhXZ1HVAG8I\C)):!NB?W61lbBnM;S^nXV):31I51l$bD*l$auj>_KalZ[TI=hJ_rG"a_?+T>"t1=EBSMnWFJ%c7Q/o3PGe=;:j*_L9#;_43me5%*4_/9^*^RJNMO'H#$ADoPI!\90c-UMu`HoF.(gnF7='?-k6Y*.[1('E3S:.CN>oHr!p%;3g<sl+erlP*+DOW0\UuM4e^d]-CP<q>H<ZRIV*$"E-(m!AeW@91Xbkms7KV?Nnc=+3,O,H=^qG?sf,?=5Ae-X[%g;E;Tn)S(^,cc%ioH7u0j\`*\MO?iFR^[6R(Y:.IE;^p>lEs9!]5q2SPh1m/!O7r)gI7mL"D^kli^GD\%c"g3C_/H~>
+endstream
+endobj
+19 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 18 0 R
+>>
+endobj
+21 0 obj
+<<
+ /Title (\376\377\0\61\0\40\0\116\0\141\0\155\0\145\0\40\0\121\0\165\0\157\0\164\0\141\0\163)
+ /Parent 20 0 R
+ /Next 22 0 R
+ /A 9 0 R
+>> endobj
+22 0 obj
+<<
+ /Title (\376\377\0\62\0\40\0\123\0\160\0\141\0\143\0\145\0\40\0\121\0\165\0\157\0\164\0\141\0\163)
+ /Parent 20 0 R
+ /Prev 21 0 R
+ /Next 23 0 R
+ /A 11 0 R
+>> endobj
+23 0 obj
+<<
+ /Title (\376\377\0\63\0\40\0\101\0\144\0\155\0\151\0\156\0\151\0\163\0\164\0\162\0\141\0\164\0\151\0\166\0\145\0\40\0\103\0\157\0\155\0\155\0\141\0\156\0\144\0\163)
+ /Parent 20 0 R
+ /Prev 22 0 R
+ /Next 24 0 R
+ /A 13 0 R
+>> endobj
+24 0 obj
+<<
+ /Title (\376\377\0\64\0\40\0\122\0\145\0\160\0\157\0\162\0\164\0\151\0\156\0\147\0\40\0\103\0\157\0\155\0\155\0\141\0\156\0\144)
+ /Parent 20 0 R
+ /Prev 23 0 R
+ /A 15 0 R
+>> endobj
+25 0 obj
 << /Type /Font
 /Subtype /Type1
 /Name /F3
 /BaseFont /Helvetica-Bold
 /Encoding /WinAnsiEncoding >>
 endobj
-8 0 obj
+26 0 obj
 << /Type /Font
 /Subtype /Type1
 /Name /F5
 /BaseFont /Times-Roman
 /Encoding /WinAnsiEncoding >>
 endobj
-9 0 obj
+27 0 obj
 << /Type /Font
 /Subtype /Type1
 /Name /F1
 /BaseFont /Helvetica
 /Encoding /WinAnsiEncoding >>
 endobj
-10 0 obj
+28 0 obj
 << /Type /Font
 /Subtype /Type1
 /Name /F9
 /BaseFont /Courier
 /Encoding /WinAnsiEncoding >>
 endobj
-11 0 obj
+29 0 obj
 << /Type /Font
 /Subtype /Type1
 /Name /F2
 /BaseFont /Helvetica-Oblique
 /Encoding /WinAnsiEncoding >>
 endobj
+30 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F7
+/BaseFont /Times-Bold
+/Encoding /WinAnsiEncoding >>
+endobj
 1 0 obj
 << /Type /Pages
-/Count 1
-/Kids [6 0 R ] >>
+/Count 3
+/Kids [6 0 R 17 0 R 19 0 R ] >>
 endobj
 2 0 obj
 << /Type /Catalog
 /Pages 1 0 R
+ /Outlines 20 0 R
+ /PageMode /UseOutlines
  >>
 endobj
 3 0 obj
 << 
-/Font << /F3 7 0 R /F5 8 0 R /F1 9 0 R /F9 10 0 R /F2 11 0 R >> 
+/Font << /F3 25 0 R /F5 26 0 R /F1 27 0 R /F9 28 0 R /F2 29 0 R /F7 30 0 R >> 
 /ProcSet [ /PDF /ImageC /Text ] >> 
 endobj
+9 0 obj
+<<
+/S /GoTo
+/D [17 0 R /XYZ 85.0 598.2 null]
+>>
+endobj
+11 0 obj
+<<
+/S /GoTo
+/D [17 0 R /XYZ 85.0 419.066 null]
+>>
+endobj
+13 0 obj
+<<
+/S /GoTo
+/D [17 0 R /XYZ 85.0 200.332 null]
+>>
+endobj
+15 0 obj
+<<
+/S /GoTo
+/D [19 0 R /XYZ 85.0 468.2 null]
+>>
+endobj
+20 0 obj
+<<
+ /First 21 0 R
+ /Last 24 0 R
+>> endobj
 xref
-0 12
+0 31
 0000000000 65535 f 
-0000002535 00000 n 
-0000002593 00000 n 
-0000002643 00000 n 
+0000006879 00000 n 
+0000006951 00000 n 
+0000007043 00000 n 
 0000000015 00000 n 
 0000000071 00000 n 
-0000001879 00000 n 
-0000001985 00000 n 
-0000002097 00000 n 
-0000002206 00000 n 
-0000002313 00000 n 
-0000002419 00000 n 
+0000000662 00000 n 
+0000000782 00000 n 
+0000000828 00000 n 
+0000007177 00000 n 
+0000000963 00000 n 
+0000007240 00000 n 
+0000001100 00000 n 
+0000007306 00000 n 
+0000001237 00000 n 
+0000007372 00000 n 
+0000001374 00000 n 
+0000003712 00000 n 
+0000003820 00000 n 
+0000005340 00000 n 
+0000007436 00000 n 
+0000005448 00000 n 
+0000005604 00000 n 
+0000005781 00000 n 
+0000006024 00000 n 
+0000006217 00000 n 
+0000006330 00000 n 
+0000006440 00000 n 
+0000006548 00000 n 
+0000006654 00000 n 
+0000006770 00000 n 
 trailer
 <<
-/Size 12
+/Size 31
 /Root 2 0 R
 /Info 4 0 R
 >>
 startxref
-2763
+7487
 %%EOF