Wednesday, September 3, 2008

My Personal Notes on 0.2.1

0.2.1 is a bug fix release with some improvements. We mainly fix issues not discovered with the 0.2.0 release candidates.

BUG FIXES

  • Many serious issues regarding MAX_VERSIONS and deletes were fixed to the point that using 0.2.0 is not recommended.
  • Another very serious issue fixed is that using any character under the “,” in the ASCII table can result in unreachable rows. For examples, see HBASE-832. This other issue should also be considered as a strong argument to upgrade.
  • The timeout for the scanner went from 30 seconds to 60 by default. This prevents getting UnknownScannerException during heavy tasks (mainly MapReduce).
  • Writing in a region while scanning it could result in a temporary deadlock if a split was required. For example, a MapReduce job with no Reduce that modified each row it mapped and that committed the change in the Map would surely fail after some time.
  • The row counter present in HQL is now in the new shell. It is supposed to be slow.
  • Committing a BatchUpdate with no row will now complain.
  • Various other issues were resolved that fixed stuff in the logs, cleaned the code, and fixed the API for deleteFamily.

IMPROVEMENTS

  • Be aware that 0.2.1 is based on Hadoop 0.17.2.1 which was released as 0.17.2.
  • When dropping a table in the shell, you will now have a nice message if the table was not disabled.
  • The pauses were reduced so creating a new table, for example, is faster.
  • All methods that take a Text that were not deprecated now are. Be aware that in 0.18 these methods will be removed so this is your last warning!
  • Various speed improvements regarding compactions and Jenkins Hash (used to encode a region’s name).

INCOMPATIBLE CHANGES

  • The Thrift IDL was updated to match the new API. Be sure to have a look!

No comments: