You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-dev@hadoop.apache.org by "Bryan Duxbury (JIRA)" <ji...@apache.org> on 2008/01/31 02:43:34 UTC
[jira] Commented: (HADOOP-2611) [hbase] Make BatchUpdate public in
the API
[ https://issues.apache.org/jira/browse/HADOOP-2611?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12564261#action_12564261 ]
Bryan Duxbury commented on HADOOP-2611:
---------------------------------------
After talking with Jim and Stack, we're going to:
- Make BatchUpdate a public class
- Add timestamp to BatchUpdate
- Add a commit() that takes a BatchUpdate
- Deprecate commit() methods that take a timestamp parameter
- Modify the communication between HTable and HRegionServer to use timestamp from BatchUpdate and remove timestamp parameter from batchUpdate
In the case of MapReduce jobs, you should build a BatchUpdate object with the row, timestamp, and puts/deletes you want, then emit it as the key with a small or empty value. BatchUpdate will implement WritableComparable so that BatchUpdates with the same row/timestamp can be merged and applied together.
> [hbase] Make BatchUpdate public in the API
> ------------------------------------------
>
> Key: HADOOP-2611
> URL: https://issues.apache.org/jira/browse/HADOOP-2611
> Project: Hadoop Core
> Issue Type: New Feature
> Components: contrib/hbase
> Reporter: Bryan Duxbury
> Assignee: Bryan Duxbury
> Fix For: 0.17.0
>
> Attachments: 2611.patch
>
>
> Today, when you want to interact with a row in HBase, you start an update, make changes, and then commit the lock. This is fine for very simple applications. However, when you try to do things like support table operations as part of a MapReduce job, it becomes more difficult to support.
> I propose that we create a new class, RowMutation (a la the Bigtable paper), which encapsulates a group of actions on a row, and make this available to API consumers. It might look something like:
> {code}
> RowMutation r = table.getMutation(row_key);
> r.setTimestamp(1111);
> r.put(new Text("colfam1:name", value));
> r.delete(new Text("colfam2:deleted"));
> table.commit(r);
> {code}
> This syntax would supercede the existing startUpdate/commit format, which could be deprecated and mapped to a RowMutation behind the scenes.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.