[hbase] Change abort to finalize; does nothing if commit ran successfully
-------------------------------------------------------------------------
Key: HADOOP-2261
URL: https://issues.apache.org/jira/browse/HADOOP-2261
Project: Hadoop
Issue Type: Improvement
Components: contrib/hbase
Reporter: stack
>From Michael Bieniosek:
{code}I'm trying to do an update row, so I write code like:
long lockid = table.startUpdate(new Text(article.getName())); try {
for (File articleInfo: article.listFiles(new NonDirectories())) {
articleTable.put(lockid, columnName(articleInfo.getName()),
readFile(articleInfo)); }
table.commit(lockid);
} finally {
table.abort(lockid);
}
This doesn't work, because in the normal case it calls abort after commit. But
I'm not sure what the code should be, eg.:
long lockid = table.startUpdate(new Text(article.getName())); try {
for (File articleInfo: article.listFiles(new NonDirectories())) {
articleTable.put(lockid, columnName(articleInfo.getName()),
readFile(articleInfo)); }
table.commit(lockid);
} catch (IOException e) {
table.abort(lockid);
throw e;
} catch (RuntimeException e) {
table.abort(lockid);
throw e;
}
This gets unwieldy very quickly. Could you maybe change abort() to finalize()
which either aborts or does nothing if a commit was successful?
{code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.