HBase Change Log

Release 0.18.1 - Unreleased

  BUG FIXES
   HBASE-891   HRS.validateValuesLength throws IOE, gets caught in the retries
   HBASE-906   [shell] Truncates output
   HBASE-912   PE is broken when other tables exist
   HBASE-918   Region balancing during startup makes cluster unstable
   HBASE-921   region close and open processed out of order; makes for 
               disagreement between master and regionserver on region state
   HBASE-925   HRS NPE on way out if no master to connect to
   HBASE-928   NPE throwing RetriesExhaustedException
   HBASE-576   Investigate IPC performance; partial.
   HBASE-924   Update hadoop in lib on 0.18 hbase branch to 0.18.1
   HBASE-930   RegionServer stuck: HLog: Could not append. Requesting close of
               log java.io.IOException: Could not get block locations. Aborting...
   HBASE-933   missing hbase.regions.slop in hbase-default.xml for 0.18 branch
               (Rong-en Fan via Stack)
   HBASE-926   If no master, regionservers should hang out rather than fail on
               connection and shut themselves down
   HBASE-946   Row with 55k deletes timesout scanner lease

  IMPROVEMENTS
   HBASE-920   Make region balancing sloppier

Release 0.18.0 - September 21st, 2008

  INCOMPATIBLE CHANGES
   HBASE-697   Thrift idl needs update/edit to match new 0.2 API (and to fix bugs)
               (Tim Sell via Stack)
   HBASE-822   Update thrift README and HBase.thrift to use thrift 20080411
               Updated all other languages examples (only python went in)

  BUG FIXES
   HBASE-881   Fixed bug when Master tries to reassign split or offline regions
               from a dead server
   HBASE-860   Fixed Bug in IndexTableReduce where it concerns writing lucene 
               index fields.
   HBASE-805   Remove unnecessary getRow overloads in HRS (Jonathan Gray via
               Jim Kellerman) (Fix whitespace diffs in HRegionServer)
   HBASE-811   HTD is not fully copyable (Andrew Purtell via Jim Kellerman)
   HBASE-729   Client region/metadata cache should have a public method for
               invalidating entries (Andrew Purtell via Stack)
   HBASE-819   Remove DOS-style ^M carriage returns from all code where found
               (Jonathan Gray via Jim Kellerman)
   HBASE-818   Deadlock running 'flushSomeRegions' (Andrew Purtell via Stack)
   HBASE-820   Need mainline to flush when 'Blocking updates' goes up.
               (Jean-Daniel Cryans via Stack)
   HBASE-821   UnknownScanner happens too often (Jean-Daniel Cryans via Stack)
   HBASE-813   Add a row counter in the new shell (Jean-Daniel Cryans via Stack)
   HBASE-824   Bug in Hlog we print array of byes for region name
               (Billy Pearson via Stack)
   HBASE-825   Master logs showing byte [] in place of string in logging
               (Billy Pearson via Stack)
   HBASE-808,809 MAX_VERSIONS not respected, and Deletall doesn't and inserts
               after delete don't work as expected
               (Jean-Daniel Cryans via Stack)
   HBASE-831   committing BatchUpdate with no row should complain
               (Andrew Purtell via Jim Kellerman)
   HBASE-833   Doing an insert with an unknown family throws a NPE in HRS
   HBASE-810   Prevent temporary deadlocks when, during a scan with write
               operations, the region splits (Jean-Daniel Cryans via Jim
               Kellerman)
   HBASE-843   Deleting and recreating a table in a single process does not work
               (Jonathan Gray via Jim Kellerman)
   HBASE-849   Speed improvement in JenkinsHash (Andrzej Bialecki via Stack)
   HBASE-552   Bloom filter bugs (Andrzej Bialecki via Jim Kellerman)
   HBASE-762   deleteFamily takes timestamp, should only take row and family.
               Javadoc describes both cases but only implements the timestamp
               case. (Jean-Daniel Cryans via Jim Kellerman)
   HBASE-768   This message 'java.io.IOException: Install 0.1.x of hbase and run
               its migration first' is useless (Jean-Daniel Cryans via Jim
               Kellerman)
   HBASE-826   Delete table followed by recreation results in honked table
   HBASE-834   'Major' compactions and upper bound on files we compact at any
               one time (Billy Pearson via Stack)
   HBASE-836   Update thrift examples to work with changed IDL (HBASE-697)
               (Toby White via Stack)
   HBASE-854   hbase-841 broke build on hudson? - makes sure that proxies are
               closed. (Andrew Purtell via Jim Kellerman)
   HBASE-855   compaction can return less versions then we should in some cases
               (Billy Pearson via Stack)
   HBASE-832   Problem with row keys beginnig with characters < than ',' and
               the region location cache
   HBASE-864   Deadlock in regionserver
   HBASE-865   Fix javadoc warnings (Rong-En Fan via Jim Kellerman)
   HBASE-872   Getting exceptions in shell when creating/disabling tables
   HBASE-868   Incrementing binary rows cause strange behavior once table
               splits (Jonathan Gray via Stack)
   HBASE-877   HCM is unable to find table with multiple regions which contains
               binary (Jonathan Gray via Stack)

  IMPROVEMENTS
   HBASE-801  When a table haven't disable, shell could response in a "user
              friendly" way.
   HBASE-816  TableMap should survive USE (Andrew Purtell via Stack)
   HBASE-812  Compaction needs little better skip algo (Daniel Leffel via Stack)
   HBASE-806  Change HbaseMapWritable and RowResult to implement SortedMap
              instead of Map (Jonathan Gray via Stack)
   HBASE-795  More Table operation in TableHandler for REST interface: part 1
              (Sishen Freecity via Stack)
   HBASE-795  More Table operation in TableHandler for REST interface: part 2
              (Sishen Freecity via Stack)
   HBASE-830  Debugging HCM.locateRegionInMeta is painful
   HBASE-784  Base hbase-0.3.0 on hadoop-0.18
   HBASE-841  Consolidate multiple overloaded methods in HRegionInterface,
              HRegionServer (Jean-Daniel Cryans via Jim Kellerman)
   HBASE-840  More options on the row query in REST interface
              (Sishen Freecity via Stack)
   HBASE-874  deleting a table kills client rpc; no subsequent communication if
              shell or thrift server, etc. (Jonathan Gray via Jim Kellerman)
   HBASE-871  Major compaction periodicity should be specifyable at the column
              family level, not cluster wide (Jonathan Gray via Stack)
   HBASE-465  Fix javadoc for all public declarations
   HBASE-882  The BatchUpdate class provides, put(col, cell) and delete(col)
              but no get() (Ryan Smith via Stack and Jim Kellerman)

  NEW FEATURES
   HBASE-787  Postgresql to HBase table replication example (Tim Sell via Stack)
   HBASE-798  Provide Client API to explicitly lock and unlock rows (Jonathan
              Gray via Jim Kellerman)
   HBASE-798  Add missing classes: UnknownRowLockException and RowLock which
              were present in previous versions of the patches for this issue,
              but not in the version that was committed. Also fix a number of
              compilation problems that were introduced by patch.
   HBASE-669  MultiRegion transactions with Optimistic Concurrency Control
              (Clint Morgan via Stack)
   HBASE-842  Remove methods that have Text as a parameter and were deprecated
              in 0.2.1 (Jean-Daniel Cryans via Jim Kellerman)

  OPTIMIZATIONS

Release 0.2.0 - August 8, 2008.

  INCOMPATIBLE CHANGES
   HBASE-584   Names in the filter interface are confusing (Clint Morgan via
               Jim Kellerman) (API change for filters)
   HBASE-601   Just remove deprecated methods in HTable; 0.2 is not backward
               compatible anyways
   HBASE-82    Row keys should be array of bytes
   HBASE-76    Purge servers of Text (Done as part of HBASE-82 commit).
   HBASE-487   Replace hql w/ a hbase-friendly jirb or jython shell
               Part 1: purge of hql and added raw jirb in its place.
   HBASE-521   Improve client scanner interface
   HBASE-288   Add in-memory caching of data. Required update of hadoop to 
               0.17.0-dev.2008-02-07_12-01-58. (Tom White via Stack) 
   HBASE-696   Make bloomfilter true/false and self-sizing
   HBASE-720   clean up inconsistencies around deletes (Izaak Rubin via Stack)
   HBASE-796   Deprecates Text methods from HTable
               (Michael Gottesman via Stack)

  BUG FIXES
   HBASE-574   HBase does not load hadoop native libs (Rong-En Fan via Stack)
   HBASE-598   Loggging, no .log file; all goes into .out
   HBASE-622   Remove StaticTestEnvironment and put a log4j.properties in src/test
   HBASE-624   Master will shut down if number of active region servers is zero
               even if shutdown was not requested
   HBASE-629   Split reports incorrect elapsed time
   HBASE-623   Migration script for hbase-82
   HBASE-630   Default hbase.rootdir is garbage
   HBASE-589   Remove references to deprecated methods in Hadoop once
               hadoop-0.17.0 is released
   HBASE-638   Purge \r from src
   HBASE-644   DroppedSnapshotException but RegionServer doesn't restart
   HBASE-641   Improve master split logging
   HBASE-642   Splitting log in a hostile environment -- bad hdfs -- we drop
               write-ahead-log edits
   HBASE-646   EOFException opening HStoreFile info file (spin on HBASE-645and 550)
   HBASE-648   If mapfile index is empty, run repair
   HBASE-640   TestMigrate failing on hudson
   HBASE-651   Table.commit should throw NoSuchColumnFamilyException if column
               family doesn't exist
   HBASE-649   API polluted with default and protected access data members and methods
   HBASE-650   Add String versions of get, scanner, put in HTable
   HBASE-656   Do not retry exceptions such as unknown scanner or illegal argument
   HBASE-659   HLog#cacheFlushLock not cleared; hangs a region
   HBASE-663   Incorrect sequence number for cache flush
   HBASE-655   Need programmatic way to add column family: need programmatic way
               to enable/disable table
   HBASE-654   API HTable.getMetadata().addFamily shouldn't be exposed to user
   HBASE-666   UnmodifyableHRegionInfo gives the wrong encoded name
   HBASE-668   HBASE-533 broke build
   HBASE-670   Historian deadlocks if regionserver is at global memory boundary
               and is hosting .META.
   HBASE-665   Server side scanner doesn't honor stop row
   HBASE-662   UI in table.jsp gives META locations, not the table's regions
               location (Jean-Daniel Cryans via Stack)
   HBASE-676   Bytes.getInt returns a long (Clint Morgan via Stack)
   HBASE-680   Config parameter hbase.io.index.interval  should be
               hbase.index.interval, according to HBaseMapFile.HbaseWriter
               (LN via Stack)
   HBASE-682   Unnecessary iteration in HMemcache.internalGet? got much better
               reading performance after break it (LN via Stack)
   HBASE-686   MemcacheScanner didn't return the first row(if it exists),
               because HScannerInterface's output incorrect (LN via Jim Kellerman)
   HBASE-691   get* and getScanner are different in how they treat column parameter
   HBASE-694   HStore.rowAtOrBeforeFromMapFile() fails to locate the row if # of mapfiles >= 2
               (Rong-En Fan via Bryan)
   HBASE-652   dropping table fails silently if table isn't disabled
   HBASE-683   can not get svn revision # at build time if locale is not english
               (Rong-En Fan via Stack)
   HBASE-699   Fix TestMigrate up on Hudson
   HBASE-615   Region balancer oscillates during cluster startup
   HBASE-613   Timestamp-anchored scanning fails to find all records
   HBASE-681   NPE in Memcache
   HBASE-701   Showing bytes in log when should be String
   HBASE-702   deleteall doesn't
   HBASE-704   update new shell docs and commands on help menu
   HBASE-709   Deadlock while rolling WAL-log while finishing flush
   HBASE-710   If clocks are way off, then we can have daughter split come
               before rather than after its parent in .META.
   HBASE-714   Showing bytes in log when should be string (2)
   HBASE-627   Disable table doesn't work reliably
   HBASE-716   TestGet2.testGetClosestBefore fails with hadoop-0.17.1
   HBASE-715   Base HBase 0.2 on Hadoop 0.17.1
   HBASE-718   hbase shell help info
   HBASE-717   alter table broke with new shell returns InvalidColumnNameException
   HBASE-573   HBase does not read hadoop-*.xml for dfs configuration after 
               moving out hadoop/contrib
   HBASE-11    Unexpected exits corrupt DFS
   HBASE-12    When hbase regionserver restarts, it says "impossible state for
               createLease()"
   HBASE-575   master dies with stack overflow error if rootdir isn't qualified
   HBASE-582   HBase 554 forgot to clear results on each iteration caused by a filter
               (Clint Morgan via Stack)
   HBASE-532   Odd interaction between HRegion.get, HRegion.deleteAll and compactions
   HBASE-10    HRegionServer hangs upon exit due to DFSClient Exception
   HBASE-595   RowFilterInterface.rowProcessed() is called *before* fhe final
               filtering decision is made (Clint Morgan via Stack)
   HBASE-586   HRegion runs HStore memcache snapshotting -- fix it so only HStore
               knows about workings of memcache
   HBASE-588   Still a 'hole' in scanners, even after HBASE-532
   HBASE-604   Don't allow CLASSPATH from environment pollute the hbase CLASSPATH
   HBASE-608   HRegionServer::getThisIP() checks hadoop config var for dns interface name
               (Jim R. Wilson via Stack)
   HBASE-609   Master doesn't see regionserver edits because of clock skew
   HBASE-607   MultiRegionTable.makeMultiRegionTable is not deterministic enough
               for regression tests
   HBASE-405   TIF and TOF use log4j directly rather than apache commons-logging
   HBASE-618   We always compact if 2 files, regardless of the compaction threshold setting
   HBASE-619   Fix 'logs' link in UI
   HBASE-478   offlining of table does not run reliably
   HBASE-453   undeclared throwable exception from HTable.get
   HBASE-620   testmergetool failing in branch and trunk since hbase-618 went in
   HBASE-550   EOF trying to read reconstruction log stops region deployment
   HBASE-551   Master stuck splitting server logs in shutdown loop; on each
               iteration, edits are aggregated up into the millions
   HBASE-505   Region assignments should never time out so long as the region
               server reports that it is processing the open request
   HBASE-561   HBase package does not include LICENSE.txt nor build.xml
   HBASE-563   TestRowFilterAfterWrite erroneously sets master address to
               0.0.0.0:60100 rather than relying on conf
   HBASE-507   Use Callable pattern to sleep between retries
   HBASE-564   Don't do a cache flush if there are zero entries in the cache.
   HBASE-554   filters generate StackOverflowException
   HBASE-567   Reused BatchUpdate instances accumulate BatchOperations
   HBASE-577   NPE getting scanner
   HBASE-19    CountingBloomFilter can overflow its storage
               (Stu Hood and Bryan Duxbury via Stack)
   HBASE-28    thrift put/mutateRow methods need to throw IllegalArgument
               exceptions (Dave Simpson via Bryan Duxbury via Stack)
   HBASE-2     hlog numbers should wrap around when they reach 999
               (Bryan Duxbury via Stack)
   HBASE-421   TestRegionServerExit broken
   HBASE-426   hbase can't find remote filesystem
   HBASE-437   Clear Command should use system.out (Edward Yoon via Stack)
   HBASE-434, HBASE-435 TestTableIndex and TestTableMapReduce failed in Hudson builds
   HBASE-446   Fully qualified hbase.rootdir doesn't work
   HBASE-438   XMLOutputter state should be initialized. (Edward Yoon via Stack)
   HBASE-8     Delete table does not remove the table directory in the FS
   HBASE-428   Under continuous upload of rows, WrongRegionExceptions are thrown
               that reach the client even after retries
   HBASE-460   TestMigrate broken when HBase moved to subproject   
   HBASE-462   Update migration tool
   HBASE-473   When a table is deleted, master sends multiple close messages to
               the region server
   HBASE-490   Doubly-assigned .META.; master uses one and clients another
   HBASE-492   hbase TRUNK does not build against hadoop TRUNK
   HBASE-496   impossible state for createLease writes 400k lines in about 15mins
   HBASE-472   Passing on edits, we dump all to log
   HBASE-495   No server address listed in .META.
   HBASE-433 HBASE-251 Region server should delete restore log after successful
               restore, Stuck replaying the edits of crashed machine.
   HBASE-27    hregioninfo cell empty in meta table
   HBASE-501   Empty region server address in info:server entry and a
               startcode of -1 in .META.
   HBASE-516   HStoreFile.finalKey does not update the final key if it is not
               the top region of a split region
   HBASE-525   HTable.getRow(Text) does not work (Clint Morgan via Bryan Duxbury)
   HBASE-524   Problems with getFull
   HBASE-528   table 'does not exist' when it does
   HBASE-531   Merge tool won't merge two overlapping regions (port HBASE-483 to
               trunk)
   HBASE-537   Wait for hdfs to exit safe mode
   HBASE-476   RegexpRowFilter behaves incorectly when there are multiple store
               files (Clint Morgan via Jim Kellerman)
   HBASE-527   RegexpRowFilter does not work when there are columns from 
               multiple families (Clint Morgan via Jim Kellerman)
   HBASE-534   Double-assignment at SPLIT-time
   HBASE-712   midKey found compacting is the first, not necessarily the optimal
   HBASE-719   Find out why users have network problems in HBase and not in Hadoop
               and HConnectionManager (Jean-Daniel Cryans via Stack)
   HBASE-703   Invalid regions listed by regionserver.jsp (Izaak Rubin via Stack)
   HBASE-674   Memcache size unreliable
   HBASE-726   Unit tests won't run because of a typo (Sebastien Rainville via Stack)
   HBASE-727   Client caught in an infinite loop when trying to connect to cached
               server locations (Izaak Rubin via Stack)
   HBASE-732   shell formatting error with the describe command
               (Izaak Rubin via Stack)
   HBASE-731   delete, deletefc in HBase shell do not work correctly
               (Izaak Rubin via Stack)
   HBASE-734   scan '.META.', {LIMIT => 10} crashes (Izaak Rubin via Stack)
   HBASE-736   Should have HTable.deleteAll(String row) and HTable.deleteAll(Text row)
               (Jean-Daniel Cryans via Stack)
   HBASE-740   ThriftServer getting table names incorrectly (Tim Sell via Stack)
   HBASE-742   Rename getMetainfo in HTable as getTableDescriptor
   HBASE-739   HBaseAdmin.createTable() using old HTableDescription doesn't work
               (Izaak Rubin via Stack)
   HBASE-744   BloomFilter serialization/deserialization broken
   HBASE-742   Column length limit is not enforced (Jean-Daniel Cryans via Stack)
   HBASE-737   Scanner: every cell in a row has the same timestamp
   HBASE-700   hbase.io.index.interval need be configuratable in column family
               (Andrew Purtell via Stack)
   HBASE-62    Allow user add arbitrary key/value pairs to table and column
               descriptors (Andrew Purtell via Stack)
   HBASE-34    Set memcache flush size per column (Andrew Purtell via Stack)
   HBASE-42    Set region split size on table creation (Andrew Purtell via Stack)
   HBASE-43    Add a read-only attribute to columns (Andrew Purtell via Stack)
   HBASE-424   Should be able to enable/disable .META. table
   HBASE-679   Regionserver addresses are still not right in the new tables page
   HBASE-758   Throwing IOE read-only when should be throwing NSRE
   HBASE-743   bin/hbase migrate upgrade fails when redo logs exists
   HBASE-754   The JRuby shell documentation is wrong in "get" and "put"
               (Jean-Daniel Cryans via Stack)
   HBASE-756   In HBase shell, the put command doesn't process the timestamp
               (Jean-Daniel Cryans via Stack)
   HBASE-757   REST mangles table names (Sishen via Stack)
   HBASE-706   On OOME, regionserver sticks around and doesn't go down with cluster
               (Jean-Daniel Cryans via Stack)
   HBASE-759   TestMetaUtils failing on hudson
   HBASE-761   IOE: Stream closed exception all over logs
   HBASE-763   ClassCastException from RowResult.get(String)
               (Andrew Purtell via Stack)
   HBASE-764   The name of column request has padding zero using REST interface
               (Sishen Freecity via Stack)
   HBASE-750   NPE caused by StoreFileScanner.updateReaders
   HBASE-769   TestMasterAdmin fails throwing RegionOfflineException when we're
               expecting IllegalStateException
   HBASE-766   FileNotFoundException trying to load HStoreFile 'data'
   HBASE-770   Update HBaseRPC to match hadoop 0.17 RPC
   HBASE-780   Can't scan '.META.' from new shell
   HBASE-424   Should be able to enable/disable .META. table
   HBASE-771   Names legal in 0.1 are not in 0.2; breaks migration
   HBASE-788   Div by zero in Master.jsp (Clint Morgan via Jim Kellerman)
   HBASE-791   RowCount doesn't work (Jean-Daniel Cryans via Stack)
   HBASE-751   dfs exception and regionserver stuck during heavy write load
   HBASE-793   HTable.getStartKeys() ignores table names when matching columns
               (Andrew Purtell and Dru Jensen via Stack)
   HBASE-790   During import, single region blocks requests for >10 minutes,
               thread dumps, throws out pending requests, and continues
               (Jonathan Gray via Stack)
   
  IMPROVEMENTS
   HBASE-559   MR example job to count table rows
   HBASE-596   DemoClient.py (Ivan Begtin via Stack)
   HBASE-581   Allow adding filters to TableInputFormat (At same time, ensure TIF
               is subclassable) (David Alves via Stack)
   HBASE-603   When an exception bubbles out of getRegionServerWithRetries, wrap 
               the exception with a RetriesExhaustedException
   HBASE-600   Filters have excessive DEBUG logging
   HBASE-611   regionserver should do basic health check before reporting
               alls-well to the master
   HBASE-614   Retiring regions is not used; exploit or remove
   HBASE-538   Improve exceptions that come out on client-side
   HBASE-569   DemoClient.php (Jim R. Wilson via Stack)
   HBASE-522   Where new Text(string) might be used in client side method calls,
               add an overload that takes String (Done as part of HBASE-82)
   HBASE-570   Remove HQL unit test (Done as part of HBASE-82 commit).
   HBASE-626   Use Visitor pattern in MetaRegion to reduce code clones in HTable
               and HConnectionManager (Jean-Daniel Cryans via Stack)
   HBASE-621   Make MAX_VERSIONS work like TTL: In scans and gets, check
               MAX_VERSIONs setting and return that many only rather than wait on
               compaction (Jean-Daniel Cryans via Stack)
   HBASE-504   Allow HMsg's carry a payload: e.g. exception that happened over
               on the remote side.
   HBASE-583   RangeRowFilter/ColumnValueFilter to allow choice of rows based on
               a (lexicographic) comparison to column's values
               (Clint Morgan via Stack)
   HBASE-579   Add hadoop 0.17.x
   HBASE-660   [Migration] addColumn/deleteColumn functionality in MetaUtils
   HBASE-632   HTable.getMetadata is very inefficient
   HBASE-671   New UI page displaying all regions in a table should be sorted
   HBASE-672   Sort regions in the regionserver UI
   HBASE-677   Make HTable, HRegion, HRegionServer, HStore, and HColumnDescriptor
               subclassable (Clint Morgan via Stack)
   HBASE-682   Regularize toString
   HBASE-672   Sort regions in the regionserver UI
   HBASE-469   Streamline HStore startup and compactions
   HBASE-544   Purge startUpdate from internal code and test cases
   HBASE-557   HTable.getRow() should receive RowResult objects
   HBASE-452   "region offline" should throw IOException, not IllegalStateException
   HBASE-541   Update hadoop jars.
   HBASE-523   package-level javadoc should have example client
   HBASE-415   Rewrite leases to use DelayedBlockingQueue instead of polling
   HBASE-35    Make BatchUpdate public in the API
   HBASE-409   Add build path to svn:ignore list (Edward Yoon via Stack)
   HBASE-408   Add .classpath and .project to svn:ignore list
               (Edward Yoon via Stack)
   HBASE-410   Speed up the test suite (make test timeout 5 instead of 15 mins).
   HBASE-281   Shell should allow deletions in .META. and -ROOT- tables
               (Edward Yoon & Bryan Duxbury via Stack)
   HBASE-56    Unnecessary HQLClient Object creation in a shell loop
               (Edward Yoon via Stack)
   HBASE-3     rest server: configure number of threads for jetty
               (Bryan Duxbury via Stack)
   HBASE-416   Add apache-style logging to REST server and add setting log
               level, etc.
   HBASE-406   Remove HTable and HConnection close methods
               (Bryan Duxbury via Stack)
   HBASE-418   Move HMaster and related classes into master package
               (Bryan Duxbury via Stack)
   HBASE-410   Speed up the test suite - Apparently test timeout was too
               aggressive for Hudson. TestLogRolling timed out even though it
               was operating properly. Change test timeout to 10 minutes.
   HBASE-436   website: http://hadoop.apache.org/hbase
   HBASE-417   Factor TableOperation and subclasses into separate files from
               HMaster (Bryan Duxbury via Stack)
   HBASE-440   Add optional log roll interval so that log files are garbage
               collected
   HBASE-407   Keep HRegionLocation information in LRU structure 
   HBASE-444   hbase is very slow at determining table is not present
   HBASE-438   XMLOutputter state should be initialized.
   HBASE-414   Move client classes into client package
   HBASE-79    When HBase needs to be migrated, it should display a message on
               stdout, not just in the logs
   HBASE-461   Simplify leases.
   HBASE-419   Move RegionServer and related classes into regionserver package
   HBASE-457   Factor Master into Master, RegionManager, and ServerManager
   HBASE-464   HBASE-419 introduced javadoc errors
   HBASE-468   Move HStoreKey back to o.a.h.h
   HBASE-442   Move internal classes out of HRegionServer
   HBASE-466   Move HMasterInterface, HRegionInterface, and 
               HMasterRegionInterface into o.a.h.h.ipc
   HBASE-479   Speed up TestLogRolling
   HBASE-480   Tool to manually merge two regions
   HBASE-477   Add support for an HBASE_CLASSPATH
   HBASE-443   Move internal classes out of HStore
   HBASE-515   At least double default timeouts between regionserver and master
   HBASE-529   RegionServer needs to recover if datanode goes down
   HBASE-456   Clearly state which ports need to be opened in order to run HBase
   HBASE-536   Remove MiniDFS startup from MiniHBaseCluster
   HBASE-521   Improve client scanner interface
   HBASE-562   Move Exceptions to subpackages (Jean-Daniel Cryans via Stack)
   HBASE-631   HTable.getRow() for only a column family
               (Jean-Daniel Cryans via Stack)
   HBASE-731   Add a meta refresh tag to the Web ui for master and region server
               (Jean-Daniel Cryans via Stack)
   HBASE-735   hbase shell doesn't trap CTRL-C signal (Jean-Daniel Cryans via Stack)
   HBASE-730   On startup, rinse STARTCODE and SERVER from .META.
               (Jean-Daniel Cryans via Stack)
   HBASE-738   overview.html in need of updating (Izaak Rubin via Stack)
   HBASE-745   scaling of one regionserver, improving memory and cpu usage (partial)
               (LN via Stack)
   HBASE-746   Batching row mutations via thrift (Tim Sell via Stack)
   HBASE-772   Up default lease period from 60 to 120 seconds
   HBASE-779   Test changing hbase.hregion.memcache.block.multiplier to 2
   HBASE-783   For single row, single family retrieval, getRow() works half
               as fast as getScanner().next() (Jean-Daniel Cryans via Stack)
   HBASE-789   add clover coverage report targets (Rong-en Fan via Stack)

  NEW FEATURES
   HBASE-47    Option to set TTL for columns in hbase
               (Andrew Purtell via Bryan Duxbury and Stack)
   HBASE-23    UI listing regions should be sorted by address and show additional
               region state (Jean-Daniel Cryans via Stack)
   HBASE-639   Add HBaseAdmin.getTableDescriptor function
   HBASE-533   Region Historian
   HBASE-487   Replace hql w/ a hbase-friendly jirb or jython shell
   HBASE-548   Tool to online single region
   HBASE-71    Master should rebalance region assignments periodically
   HBASE-512   Add configuration for global aggregate memcache size
   HBASE-40    Add a method of getting multiple (but not all) cells for a row
               at once
   HBASE-506   When an exception has to escape ServerCallable due to exhausted
               retries, show all the exceptions that lead to this situation
   HBASE-747   Add a simple way to do batch updates of many rows (Jean-Daniel
               Cryans via JimK)
   HBASE-733   Enhance Cell so that it can contain multiple values at multiple
               timestamps
   HBASE-511   Do exponential backoff in clients on NSRE, WRE, ISE, etc.
               (Andrew Purtell via Jim Kellerman)
   
  OPTIMIZATIONS
   HBASE-430   Performance: Scanners and getRow return maps with duplicate data

Release 0.1.3 - 07/25/2008

  BUG FIXES
   HBASE-644   DroppedSnapshotException but RegionServer doesn't restart
   HBASE-645   EOFException opening region (HBASE-550 redux)
   HBASE-641   Improve master split logging
   HBASE-642   Splitting log in a hostile environment -- bad hdfs -- we drop
               write-ahead-log edits
   HBASE-646   EOFException opening HStoreFile info file (spin on HBASE-645 and 550)
   HBASE-648   If mapfile index is empty, run repair
   HBASE-659   HLog#cacheFlushLock not cleared; hangs a region
   HBASE-663   Incorrect sequence number for cache flush
   HBASE-652   Dropping table fails silently if table isn't disabled 
   HBASE-674   Memcache size unreliable
   HBASE-665   server side scanner doesn't honor stop row
   HBASE-681   NPE in Memcache (Clint Morgan via Jim Kellerman)
   HBASE-680   config parameter hbase.io.index.interval should be
               hbase.index.interval, accroding to HBaseMapFile.HbaseWriter
               (LN via Stack)
   HBASE-684   unnecessary iteration in HMemcache.internalGet? got much better
               reading performance after break it (LN via Stack)
   HBASE-686   MemcacheScanner didn't return the first row(if it exists),
               because HScannerInterface's output incorrect (LN via Jim Kellerman)
   HBASE-613   Timestamp-anchored scanning fails to find all records
   HBASE-709   Deadlock while rolling WAL-log while finishing flush
   HBASE-707   High-load import of data into single table/family never triggers split
   HBASE-710   If clocks are way off, then we can have daughter split come
               before rather than after its parent in .META.

Release 0.1.2 - 05/13/2008

  BUG FIXES
   HBASE-577   NPE getting scanner
   HBASE-574   HBase does not load hadoop native libs (Rong-En Fan via Stack).
   HBASE-11    Unexpected exits corrupt DFS - best we can do until we have at
               least a subset of HADOOP-1700
   HBASE-573   HBase does not read hadoop-*.xml for dfs configuration after
               moving out hadoop/contrib
   HBASE-12    when hbase regionserver restarts, it says "impossible state for
               createLease()"
   HBASE-575   master dies with stack overflow error if rootdir isn't qualified
   HBASE-500   Regionserver stuck on exit
   HBASE-582   HBase 554 forgot to clear results on each iteration caused by a filter
               (Clint Morgan via Stack)
   HBASE-532   Odd interaction between HRegion.get, HRegion.deleteAll and compactions
   HBASE-590   HBase migration tool does not get correct FileSystem or root
               directory if configuration is not correct
   HBASE-595   RowFilterInterface.rowProcessed() is called *before* fhe final
               filtering decision is made (Clint Morgan via Stack)
   HBASE-586   HRegion runs HStore memcache snapshotting -- fix it so only HStore
               knows about workings of memcache
   HBASE-572   Backport HBASE-512 to 0.1 branch
   HBASE-588   Still a 'hole' in scanners, even after HBASE-532
   HBASE-604   Don't allow CLASSPATH from environment pollute the hbase CLASSPATH
   HBASE-608   HRegionServer::getThisIP() checks hadoop config var for dns interface name
               (Jim R. Wilson via Stack)
   HBASE-609   Master doesn't see regionserver edits because of clock skew
   HBASE-607   MultiRegionTable.makeMultiRegionTable is not deterministic enough
               for regression tests
   HBASE-478   offlining of table does not run reliably
   HBASE-618   We always compact if 2 files, regardless of the compaction threshold setting
   HBASE-619   Fix 'logs' link in UI
   HBASE-620   testmergetool failing in branch and trunk since hbase-618 went in
   
  IMPROVEMENTS
   HBASE-559   MR example job to count table rows
   HBASE-578   Upgrade branch to 0.16.3 hadoop.
   HBASE-596   DemoClient.py (Ivan Begtin via Stack)


Release 0.1.1 - 04/11/2008

  BUG FIXES
   HBASE-550   EOF trying to read reconstruction log stops region deployment
   HBASE-551   Master stuck splitting server logs in shutdown loop; on each
               iteration, edits are aggregated up into the millions
   HBASE-505   Region assignments should never time out so long as the region
               server reports that it is processing the open request
   HBASE-552   Fix bloom filter bugs (Andrzej Bialecki via Jim Kellerman)
   HBASE-507   Add sleep between retries
   HBASE-555   Only one Worker in HRS; on startup, if assigned tens of regions,
               havoc of reassignments because open processing is done in series
   HBASE-547   UI shows hadoop version, not hbase version
   HBASE-561   HBase package does not include LICENSE.txt nor build.xml
   HBASE-556   Add 0.16.2 to hbase branch -- if it works
   HBASE-563   TestRowFilterAfterWrite erroneously sets master address to
               0.0.0.0:60100 rather than relying on conf
   HBASE-554   filters generate StackOverflowException (Clint Morgan via
               Jim Kellerman)
   HBASE-567   Reused BatchUpdate instances accumulate BatchOperations

  NEW FEATURES
   HBASE-548   Tool to online single region

Release 0.1.0

  INCOMPATIBLE CHANGES
   HADOOP-2750 Deprecated methods startBatchUpdate, commitBatch, abortBatch, 
               and renewLease have been removed from HTable (Bryan Duxbury via
               Jim Kellerman)
   HADOOP-2786 Move hbase out of hadoop core
   HBASE-403   Fix build after move of hbase in svn
   HBASE-494   Up IPC version on 0.1 branch so we cannot mistakenly connect
               with a hbase from 0.16.0

  NEW FEATURES
   HBASE-506   When an exception has to escape ServerCallable due to exhausted retries, 
               show all the exceptions that lead to this situation

  OPTIMIZATIONS

  BUG FIXES
   HADOOP-2731 Under load, regions become extremely large and eventually cause
               region servers to become unresponsive
   HADOOP-2693 NPE in getClosestRowBefore (Bryan Duxbury & Stack)
   HADOOP-2599 Some minor improvements to changes in HADOOP-2443
               (Bryan Duxbury & Stack)
   HADOOP-2773 Master marks region offline when it is recovering from a region
               server death
   HBASE-425   Fix doc. so it accomodates new hbase untethered context
   HBase-421   TestRegionServerExit broken
   HBASE-426   hbase can't find remote filesystem
   HBASE-446   Fully qualified hbase.rootdir doesn't work
   HBASE-428   Under continuous upload of rows, WrongRegionExceptions are
               thrown that reach the client even after retries
   HBASE-490   Doubly-assigned .META.; master uses one and clients another
   HBASE-496   impossible state for createLease writes 400k lines in about 15mins
   HBASE-472   Passing on edits, we dump all to log
   HBASE-79    When HBase needs to be migrated, it should display a message on
               stdout, not just in the logs
   HBASE-495   No server address listed in .META.
   HBASE-433 HBASE-251 Region server should delete restore log after successful
               restore, Stuck replaying the edits of crashed machine.
   HBASE-27    hregioninfo cell empty in meta table
   HBASE-501   Empty region server address in info:server entry and a
               startcode of -1 in .META.
   HBASE-516   HStoreFile.finalKey does not update the final key if it is not
               the top region of a split region
   HBASE-524   Problems with getFull
   HBASE-514   table 'does not exist' when it does
   HBASE-537   Wait for hdfs to exit safe mode
   HBASE-534   Double-assignment at SPLIT-time
   
  IMPROVEMENTS
   HADOOP-2555 Refactor the HTable#get and HTable#getRow methods to avoid
               repetition of retry-on-failure logic (thanks to Peter Dolan and
               Bryan Duxbury)
   HBASE-281   Shell should allow deletions in .META. and -ROOT- tables
   HBASE-480   Tool to manually merge two regions
   HBASE-477   Add support for an HBASE_CLASSPATH
   HBASE-515   At least double default timeouts between regionserver and master
   HBASE-482   package-level javadoc should have example client or at least 
               point at the FAQ
   HBASE-497   RegionServer needs to recover if datanode goes down
   HBASE-456   Clearly state which ports need to be opened in order to run HBase
   HBASE-483   Merge tool won't merge two overlapping regions
   HBASE-476   RegexpRowFilter behaves incorectly when there are multiple store
               files (Clint Morgan via Jim Kellerman)
   HBASE-527   RegexpRowFilter does not work when there are columns from 
               multiple families (Clint Morgan via Jim Kellerman)
              
Release 0.16.0

  2008/02/04   HBase is now a subproject of Hadoop. The first HBase release as
               a subproject will be release 0.1.0 which will be equivalent to
               the version of HBase included in Hadoop 0.16.0. In order to
               accomplish this, the HBase portion of HBASE-288 (formerly 
               HADOOP-1398) has been backed out. Once 0.1.0 is frozen (depending
               mostly on changes to infrastructure due to becoming a sub project
               instead of a contrib project), this patch will re-appear on HBase
               trunk.

  INCOMPATIBLE CHANGES
   HADOOP-2056 A table with row keys containing colon fails to split regions
   HADOOP-2079 Fix generated HLog, HRegion names
   HADOOP-2495 Minor performance improvements: Slim-down BatchOperation, etc. 
   HADOOP-2506 Remove the algebra package
   HADOOP-2519 Performance improvements: Customized RPC serialization
   HADOOP-2478 Restructure how HBase lays out files in the file system (phase 1)
               (test input data)
   HADOOP-2478 Restructure how HBase lays out files in the file system (phase 2)
               Includes migration tool org.apache.hadoop.hbase.util.Migrate
   HADOOP-2558 org.onelab.filter.BloomFilter class uses 8X the memory it should
               be using

  NEW FEATURES
    HADOOP-2061 Add new Base64 dialects
    HADOOP-2084 Add a LocalHBaseCluster
    HADOOP-2068 RESTful interface (Bryan Duxbury via Stack)
    HADOOP-2316 Run REST servlet outside of master
                (Bryan Duxbury & Stack)
    HADOOP-1550 No means of deleting a'row' (Bryan Duxbuery via Stack)
    HADOOP-2384 Delete all members of a column family on a specific row
                (Bryan Duxbury via Stack)
    HADOOP-2395 Implement "ALTER TABLE ... CHANGE column" operation
                (Bryan Duxbury via Stack)
    HADOOP-2240 Truncate for hbase (Edward Yoon via Stack)
    HADOOP-2389 Provide multiple language bindings for HBase (Thrift)
                (David Simpson via Stack)

  OPTIMIZATIONS
   HADOOP-2479 Save on number of Text object creations
   HADOOP-2485 Make mapfile index interval configurable (Set default to 32
               instead of 128)
   HADOOP-2553 Don't make Long objects calculating hbase type hash codes
   HADOOP-2377 Holding open MapFile.Readers is expensive, so use less of them
   HADOOP-2407 Keeping MapFile.Reader open is expensive: Part 2
   HADOOP-2533 Performance: Scanning, just creating MapWritable in next
               consumes >20% CPU
   HADOOP-2443 Keep lazy cache of regions in client rather than an
               'authoritative' list (Bryan Duxbury via Stack)
   HADOOP-2600 Performance: HStore.getRowKeyAtOrBefore should use
               MapFile.Reader#getClosest (before)
               (Bryan Duxbury via Stack)

  BUG FIXES
   HADOOP-2059 In tests, exceptions in min dfs shutdown should not fail test
               (e.g. nightly #272)
   HADOOP-2064 TestSplit assertion and NPE failures (Patch build #952 and #953)
   HADOOP-2124 Use of `hostname` does not work on Cygwin in some cases
   HADOOP-2083 TestTableIndex failed in #970 and #956
   HADOOP-2109 Fixed race condition in processing server lease timeout.
   HADOOP-2137 hql.jsp : The character 0x19 is not valid
   HADOOP-2109 Fix another race condition in processing dead servers,
               Fix error online meta regions: was using region name and not
               startKey as key for map.put. Change TestRegionServerExit to
               always kill the region server for the META region. This makes
               the test more deterministic and getting META reassigned was
               problematic.
   HADOOP-2155 Method expecting HBaseConfiguration throws NPE when given Configuration
   HADOOP-2156 BufferUnderflowException for un-named HTableDescriptors
   HADOOP-2161 getRow() is orders of magnitudes slower than get(), even on rows
               with one column (Clint Morgan and Stack)
   HADOOP-2040 Hudson hangs AFTER test has finished
   HADOOP-2274 Excess synchronization introduced by HADOOP-2139 negatively
               impacts performance
   HADOOP-2196 Fix how hbase sits in hadoop 'package' product
   HADOOP-2276 Address regression caused by HADOOP-2274, fix HADOOP-2173 (When
               the master times out a region servers lease, the region server
               may not restart)
   HADOOP-2253 getRow can return HBASE::DELETEVAL cells
               (Bryan Duxbury via Stack)
   HADOOP-2295 Fix assigning a region to multiple servers
   HADOOP-2234 TableInputFormat erroneously aggregates map values
   HADOOP-2308 null regioninfo breaks meta scanner
   HADOOP-2304 Abbreviated symbol parsing error of dir path in jar command
               (Edward Yoon via Stack)
   HADOOP-2320 Committed TestGet2 is managled (breaks build).
   HADOOP-2322 getRow(row, TS) client interface not properly connected
   HADOOP-2309 ConcurrentModificationException doing get of all region start keys
   HADOOP-2321 TestScanner2 does not release resources which sometimes cause the
               test to time out
   HADOOP-2315 REST servlet doesn't treat / characters in row key correctly
               (Bryan Duxbury via Stack)
   HADOOP-2332 Meta table data selection in Hbase Shell
               (Edward Yoon via Stack)
   HADOOP-2347 REST servlet not thread safe but run in a threaded manner
               (Bryan Duxbury via Stack)
   HADOOP-2365 Result of HashFunction.hash() contains all identical values
   HADOOP-2362 Leaking hdfs file handle on region split
   HADOOP-2338 Fix NullPointerException in master server.
   HADOOP-2380 REST servlet throws NPE when any value node has an empty string
               (Bryan Duxbury via Stack)
   HADOOP-2350 Scanner api returns null row names, or skips row names if
               different column families do not have entries for some rows
   HADOOP-2283 AlreadyBeingCreatedException (Was: Stuck replay of failed
               regionserver edits)
   HADOOP-2392 TestRegionServerExit has new failure mode since HADOOP-2338
   HADOOP-2324 Fix assertion failures in TestTableMapReduce
   HADOOP-2396 NPE in HMaster.cancelLease
   HADOOP-2397 The only time that a meta scanner should try to recover a log is
               when the master is starting
   HADOOP-2417 Fix critical shutdown problem introduced by HADOOP-2338
   HADOOP-2418 Fix assertion failures in TestTableMapReduce, TestTableIndex,
               and TestTableJoinMapReduce
   HADOOP-2414 Fix ArrayIndexOutOfBoundsException in bloom filters.
   HADOOP-2430 Master will not shut down if there are no active region servers
   HADOOP-2199 Add tools for going from hregion filename to region name in logs
   HADOOP-2441 Fix build failures in TestHBaseCluster
   HADOOP-2451 End key is incorrectly assigned in many region splits
   HADOOP-2455 Error in Help-string of CREATE command (Edward Yoon via Stack)
   HADOOP-2465 When split parent regions are cleaned up, not all the columns are
               deleted
   HADOOP-2468 TestRegionServerExit failed in Hadoop-Nightly #338
   HADOOP-2467 scanner truncates resultset when > 1 column families
   HADOOP-2503 REST Insert / Select encoding issue (Bryan Duxbury via Stack)
   HADOOP-2505 formatter classes missing apache license
   HADOOP-2504 REST servlet method for deleting a scanner was not properly
               mapped (Bryan Duxbury via Stack)
   HADOOP-2507 REST servlet does not properly base64 row keys and column names
               (Bryan Duxbury via Stack)
   HADOOP-2530 Missing type in new hbase custom RPC serializer
   HADOOP-2490 Failure in nightly #346 (Added debugging of hudson failures).
   HADOOP-2558 fixes for build up on hudson (part 1, part 2, part 3, part 4)
   HADOOP-2500 Unreadable region kills region servers
   HADOOP-2579 Initializing a new HTable object against a nonexistent table
               throws a NoServerForRegionException instead of a
               TableNotFoundException when a different table has been created
               previously (Bryan Duxbury via Stack)
   HADOOP-2587 Splits blocked by compactions cause region to be offline for
               duration of compaction. 
   HADOOP-2592 Scanning, a region can let out a row that its not supposed
               to have
   HADOOP-2493 hbase will split on row when the start and end row is the
               same cause data loss (Bryan Duxbury via Stack)
   HADOOP-2629 Shell digests garbage without complaint
   HADOOP-2619 Compaction errors after a region splits
   HADOOP-2621 Memcache flush flushing every 60 secs with out considering
               the max memcache size
   HADOOP-2584 Web UI displays an IOException instead of the Tables
   HADOOP-2650 Remove Writables.clone and use WritableUtils.clone from
               hadoop instead
   HADOOP-2668 Documentation and improved logging so fact that hbase now
               requires migration comes as less of a surprise
   HADOOP-2686 Removed tables stick around in .META.
   HADOOP-2688 IllegalArgumentException processing a shutdown stops
               server going down and results in millions of lines of output
   HADOOP-2706 HBase Shell crash
   HADOOP-2712 under load, regions won't split
   HADOOP-2675 Options not passed to rest/thrift
   HADOOP-2722 Prevent unintentional thread exit in region server and master
   HADOOP-2718 Copy Constructor HBaseConfiguration(Configuration) will override
               hbase configurations if argumant is not an instance of
               HBaseConfiguration.
   HADOOP-2753 Back out 2718; programmatic config works but hbase*xml conf
               is overridden
   HADOOP-2718 Copy Constructor HBaseConfiguration(Configuration) will override
               hbase configurations if argumant is not an instance of
               HBaseConfiguration (Put it back again).
   HADOOP-2631 2443 breaks HTable.getStartKeys when there is more than one
               table or table you are enumerating isn't the first table
   Delete empty file: src/contrib/hbase/src/java/org/apache/hadoop/hbase/mapred/
               TableOutputCollector.java per Nigel Daley
   
  IMPROVEMENTS
   HADOOP-2401 Add convenience put method that takes writable
               (Johan Oskarsson via Stack)
   HADOOP-2074 Simple switch to enable DEBUG level-logging in hbase
   HADOOP-2088 Make hbase runnable in $HADOOP_HOME/build(/contrib/hbase)
   HADOOP-2126 Use Bob Jenkins' hash for bloom filters
   HADOOP-2157 Make Scanners implement Iterable
   HADOOP-2176 Htable.deleteAll documentation is ambiguous
   HADOOP-2139 (phase 1) Increase parallelism in region servers.
   HADOOP-2267 [Hbase Shell] Change the prompt's title from 'hbase' to 'hql'.
               (Edward Yoon via Stack)
   HADOOP-2139 (phase 2) Make region server more event driven
   HADOOP-2289 Useless efforts of looking for the non-existant table in select
               command.
               (Edward Yoon via Stack)
   HADOOP-2257 Show a total of all requests and regions on the web ui
               (Paul Saab via Stack)
   HADOOP-2261 HTable.abort no longer throws exception if there is no active update.
   HADOOP-2287 Make hbase unit tests take less time to complete.
   HADOOP-2262 Retry n times instead of n**2 times.
   HADOOP-1608 Relational Algrebra Operators
               (Edward Yoon via Stack)
   HADOOP-2198 HTable should have method to return table metadata
   HADOOP-2296 hbase shell: phantom columns show up from select command
   HADOOP-2297 System.exit() Handling in hbase shell jar command
               (Edward Yoon via Stack)
   HADOOP-2224 Add HTable.getRow(ROW, ts)
               (Bryan Duxbury via Stack)
   HADOOP-2339 Delete command with no WHERE clause
               (Edward Yoon via Stack)
   HADOOP-2299 Support inclusive scans (Bryan Duxbury via Stack)
   HADOOP-2333 Client side retries happen at the wrong level
   HADOOP-2357 Compaction cleanup; less deleting + prevent possible file leaks
   HADOOP-2392 TestRegionServerExit has new failure mode since HADOOP-2338
   HADOOP-2370 Allow column families with an unlimited number of versions
               (Edward Yoon via Stack)
   HADOOP-2047 Add an '--master=X' and '--html' command-line parameters to shell
               (Edward Yoon via Stack)
   HADOOP-2351 If select command returns no result, it doesn't need to show the
               header information (Edward Yoon via Stack)
   HADOOP-2285 Add being able to shutdown regionservers (Dennis Kubes via Stack)
   HADOOP-2458 HStoreFile.writeSplitInfo should just call 
               HStoreFile.Reference.write
   HADOOP-2471 Add reading/writing MapFile to PerformanceEvaluation suite
   HADOOP-2522 Separate MapFile benchmark from PerformanceEvaluation
               (Tom White via Stack)
   HADOOP-2502 Insert/Select timestamp, Timestamp data type in HQL
               (Edward Yoon via Stack)
   HADOOP-2450 Show version (and svn revision) in hbase web ui
   HADOOP-2472 Range selection using filter (Edward Yoon via Stack)
   HADOOP-2548 Make TableMap and TableReduce generic
               (Frederik Hedberg via Stack)
   HADOOP-2557 Shell count function (Edward Yoon via Stack)
   HADOOP-2589 Change an classes/package name from Shell to hql
               (Edward Yoon via Stack)
   HADOOP-2545 hbase rest server should be started with hbase-daemon.sh
   HADOOP-2525 Same 2 lines repeated 11 million times in HMaster log upon
               HMaster shutdown
   HADOOP-2616 hbase not spliting when the total size of region reaches max
               region size * 1.5
   HADOOP-2643 Make migration tool smarter.
   
Release 0.15.1
Branch 0.15

  INCOMPATIBLE CHANGES
    HADOOP-1931 Hbase scripts take --ARG=ARG_VALUE when should be like hadoop
                and do ---ARG ARG_VALUE

  NEW FEATURES
    HADOOP-1768 FS command using Hadoop FsShell operations
                (Edward Yoon via Stack)
    HADOOP-1784 Delete: Fix scanners and gets so they work properly in presence
                of deletes. Added a deleteAll to remove all cells equal to or
                older than passed timestamp.  Fixed compaction so deleted cells
                do not make it out into compacted output.  Ensure also that
                versions > column max are dropped compacting.
    HADOOP-1720 Addition of HQL (Hbase Query Language) support in Hbase Shell.
                The old shell syntax has been replaced by HQL, a small SQL-like
                set of operators, for creating, altering, dropping, inserting,
                deleting, and selecting, etc., data in hbase.
                (Inchul Song and Edward Yoon via Stack)
    HADOOP-1913 Build a Lucene index on an HBase table
                (Ning Li via Stack)
    HADOOP-1957 Web UI with report on cluster state and basic browsing of tables

  OPTIMIZATIONS

  BUG FIXES
    HADOOP-1527 Region server won't start because logdir exists
    HADOOP-1723 If master asks region server to shut down, by-pass return of
                shutdown message
    HADOOP-1729 Recent renaming or META tables breaks hbase shell
    HADOOP-1730 unexpected null value causes META scanner to exit (silently)
    HADOOP-1747 On a cluster, on restart, regions multiply assigned
    HADOOP-1776 Fix for sporadic compaction failures closing and moving
                compaction result
    HADOOP-1780 Regions are still being doubly assigned
    HADOOP-1797 Fix NPEs in MetaScanner constructor
    HADOOP-1799 Incorrect classpath in binary version of Hadoop
    HADOOP-1805 Region server hang on exit
    HADOOP-1785 TableInputFormat.TableRecordReader.next has a bug
                (Ning Li via Stack)
    HADOOP-1800 output should default utf8 encoding
    HADOOP-1801 When hdfs is yanked out from under hbase, hbase should go down gracefully
    HADOOP-1813 OOME makes zombie of region server
    HADOOP-1814	TestCleanRegionServerExit fails too often on Hudson
    HADOOP-1820 Regionserver creates hlogs without bound
                (reverted 2007/09/25) (Fixed 2007/09/30)
    HADOOP-1821 Replace all String.getBytes() with String.getBytes("UTF-8")
    HADOOP-1832 listTables() returns duplicate tables
    HADOOP-1834 Scanners ignore timestamp passed on creation
    HADOOP-1847 Many HBase tests do not fail well.
    HADOOP-1847 Many HBase tests do not fail well. (phase 2)
    HADOOP-1870 Once file system failure has been detected, don't check it again
                and get on with shutting down the hbase cluster.
    HADOOP-1888 NullPointerException in HMemcacheScanner (reprise)
    HADOOP-1903 Possible data loss if Exception happens between snapshot and
                flush to disk.
    HADOOP-1920 Wrapper scripts broken when hadoop in one location and hbase in
                another
    HADOOP-1923, HADOOP-1924 a) tests fail sporadically because set up and tear
                 down is inconsistent b) TestDFSAbort failed in nightly #242
    HADOOP-1929 Add hbase-default.xml to hbase jar
    HADOOP-1941 StopRowFilter throws NPE when passed null row
    HADOOP-1966 Make HBase unit tests more reliable in the Hudson environment.
    HADOOP-1975 HBase tests failing with java.lang.NumberFormatException
    HADOOP-1990 Regression test instability affects nightly and patch builds
    HADOOP-1996 TestHStoreFile fails on windows if run multiple times
    HADOOP-1937 When the master times out a region server's lease, it is too 
                aggressive in reclaiming the server's log.
    HADOOP-2004 webapp hql formatting bugs 
    HADOOP_2011 Make hbase daemon scripts take args in same order as hadoop
                daemon scripts
    HADOOP-2017 TestRegionServerAbort failure in patch build #903 and
                nightly #266
    HADOOP-2029 TestLogRolling fails too often in patch and nightlies
    HADOOP-2038 TestCleanRegionExit failed in patch build #927

  IMPROVEMENTS
    HADOOP-1737 Make HColumnDescriptor data publically members settable
    HADOOP-1746 Clean up findbugs warnings
    HADOOP-1757 Bloomfilters: single argument constructor, use enum for bloom
                filter types
    HADOOP-1760 Use new MapWritable and SortedMapWritable classes from
                org.apache.hadoop.io
    HADOOP-1793 (Phase 1) Remove TestHClient (Phase2) remove HClient.
    HADOOP-1794 Remove deprecated APIs
    HADOOP-1802 Startup scripts should wait until hdfs as cleared 'safe mode'
    HADOOP-1833 bin/stop_hbase.sh returns before it completes
                (Izaak Rubin via Stack) 
    HADOOP-1835 Updated Documentation for HBase setup/installation
                (Izaak Rubin via Stack)
    HADOOP-1868 Make default configuration more responsive
    HADOOP-1884 Remove useless debugging log messages from hbase.mapred
    HADOOP-1856 Add Jar command to hbase shell using Hadoop RunJar util
                (Edward Yoon via Stack)
    HADOOP-1928 Have master pass the regionserver the filesystem to use
    HADOOP-1789 Output formatting
    HADOOP-1960 If a region server cannot talk to the master before its lease
                times out, it should shut itself down
    HADOOP-2035 Add logo to webapps


Below are the list of changes before 2007-08-18

  1. HADOOP-1384. HBase omnibus patch. (jimk, Vuk Ercegovac, and Michael Stack)
  2. HADOOP-1402. Fix javadoc warnings in hbase contrib. (Michael Stack)
  3. HADOOP-1404. HBase command-line shutdown failing (Michael Stack)
  4. HADOOP-1397. Replace custom hbase locking with 
     java.util.concurrent.locks.ReentrantLock (Michael Stack)
  5. HADOOP-1403. HBase reliability - make master and region server more fault
     tolerant.
  6. HADOOP-1418. HBase miscellaneous: unit test for HClient, client to do
     'Performance Evaluation', etc.
  7. HADOOP-1420, HADOOP-1423. Findbugs changes, remove reference to removed 
     class HLocking.
  8. HADOOP-1424. TestHBaseCluster fails with IllegalMonitorStateException. Fix
     regression introduced by HADOOP-1397.
  9. HADOOP-1426. Make hbase scripts executable + add test classes to CLASSPATH.
 10. HADOOP-1430. HBase shutdown leaves regionservers up.
 11. HADOOP-1392. Part1: includes create/delete table; enable/disable table;
     add/remove column.
 12. HADOOP-1392. Part2: includes table compaction by merging adjacent regions
     that have shrunk in size.
 13. HADOOP-1445 Support updates across region splits and compactions
 14. HADOOP-1460 On shutdown IOException with complaint 'Cannot cancel lease
     that is not held'
 15. HADOOP-1421 Failover detection, split log files.
     For the files modified, also clean up javadoc, class, field and method 
     visibility (HADOOP-1466)
 16. HADOOP-1479 Fix NPE in HStore#get if store file only has keys < passed key.
 17. HADOOP-1476 Distributed version of 'Performance Evaluation' script
 18. HADOOP-1469 Asychronous table creation
 19. HADOOP-1415 Integrate BSD licensed bloom filter implementation.
 20. HADOOP-1465 Add cluster stop/start scripts for hbase
 21. HADOOP-1415 Provide configurable per-column bloom filters - part 2.
 22. HADOOP-1498. Replace boxed types with primitives in many places.
 23. HADOOP-1509.  Made methods/inner classes in HRegionServer and HClient protected
     instead of private for easier extension. Also made HRegion and HRegionInfo public too.
     Added an hbase-default.xml property for specifying what HRegionInterface extension to use
     for proxy server connection. (James Kennedy via Jim Kellerman)
 24. HADOOP-1534. [hbase] Memcache scanner fails if start key not present
 25. HADOOP-1537. Catch exceptions in testCleanRegionServerExit so we can see
     what is failing.
 26. HADOOP-1543 [hbase] Add HClient.tableExists
 27. HADOOP-1519 [hbase] map/reduce interface for HBase.  (Vuk Ercegovac and
     Jim Kellerman)
 28. HADOOP-1523 Hung region server waiting on write locks 
 29. HADOOP-1560 NPE in MiniHBaseCluster on Windows
 30. HADOOP-1531 Add RowFilter to HRegion.HScanner
     Adds a row filtering interface and two implemenentations: A page scanner,
     and a regex row/column-data matcher. (James Kennedy via Stack)
 31. HADOOP-1566 Key-making utility
 32. HADOOP-1415 Provide configurable per-column bloom filters. 
     HADOOP-1466 Clean up visibility and javadoc issues in HBase.
 33. HADOOP-1538 Provide capability for client specified time stamps in HBase
     HADOOP-1466 Clean up visibility and javadoc issues in HBase.
 34. HADOOP-1589 Exception handling in HBase is broken over client server connections
 35. HADOOP-1375 a simple parser for hbase (Edward Yoon via Stack)
 36. HADOOP-1600 Update license in HBase code
 37. HADOOP-1589 Exception handling in HBase is broken over client server
 38. HADOOP-1574 Concurrent creates of a table named 'X' all succeed
 39. HADOOP-1581 Un-openable tablename bug
 40. HADOOP-1607 [shell] Clear screen command (Edward Yoon via Stack)
 41. HADOOP-1614 [hbase] HClient does not protect itself from simultaneous updates
 42. HADOOP-1468 Add HBase batch update to reduce RPC overhead
 43. HADOOP-1616 Sporadic TestTable failures
 44. HADOOP-1615 Replacing thread notification-based queue with 
     java.util.concurrent.BlockingQueue in HMaster, HRegionServer
 45. HADOOP-1606 Updated implementation of RowFilterSet, RowFilterInterface
     (Izaak Rubin via Stack)
 46. HADOOP-1579 Add new WhileMatchRowFilter and StopRowFilter filters
    (Izaak Rubin via Stack)
 47. HADOOP-1637 Fix to HScanner to Support Filters, Add Filter Tests to
     TestScanner2 (Izaak Rubin via Stack)
 48. HADOOP-1516 HClient fails to readjust when ROOT or META redeployed on new
     region server
 49. HADOOP-1646 RegionServer OOME's under sustained, substantial loading by
     10 concurrent clients
 50. HADOOP-1468 Add HBase batch update to reduce RPC overhead (restrict batches
     to a single row at a time)
 51. HADOOP-1528 HClient for multiple tables (phase 1) (James Kennedy & JimK)
 52. HADOOP-1528 HClient for multiple tables (phase 2) all HBase client side code
     (except TestHClient and HBaseShell) have been converted to use the new client
     side objects (HTable/HBaseAdmin/HConnection) instead of HClient.
 53. HADOOP-1528 HClient for multiple tables - expose close table function
 54. HADOOP-1466 Clean up warnings, visibility and javadoc issues in HBase.
 55. HADOOP-1662 Make region splits faster
 56. HADOOP-1678 On region split, master should designate which host should 
     serve daughter splits. Phase 1: Master balances load for new regions and
     when a region server fails.
 57. HADOOP-1678 On region split, master should designate which host should 
     serve daughter splits. Phase 2: Master assigns children of split region
     instead of HRegionServer serving both children.
 58. HADOOP-1710 All updates should be batch updates
 59. HADOOP-1711 HTable API should use interfaces instead of concrete classes as
     method parameters and return values
 60. HADOOP-1644 Compactions should not block updates
 60. HADOOP-1672 HBase Shell should use new client classes
     (Edward Yoon via Stack).
 61. HADOOP-1709 Make HRegionInterface more like that of HTable
     HADOOP-1725 Client find of table regions should not include offlined, split parents
