最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

HBase事务性(Transaction)

来源:动视网 责编:小采 时间:2020-11-09 10:51:53
文档

HBase事务性(Transaction)

HBase事务性(Transaction):What is Transaction 先摘录一段Wiki关于Transaction(事务)的释义: A transaction comprises a unit of work performed withi What is Transaction 先摘录一段Wiki关于Transaction(事务)的释义: A transaction
推荐度:
导读HBase事务性(Transaction):What is Transaction 先摘录一段Wiki关于Transaction(事务)的释义: A transaction comprises a unit of work performed withi What is Transaction 先摘录一段Wiki关于Transaction(事务)的释义: A transaction


What is Transaction 先摘录一段Wiki关于Transaction(事务)的释义: A transaction comprises a unit of work performed withi

What is Transaction

先摘录一段Wiki关于Transaction(事务)的释义:

A transaction comprises a unit of work performed within a database management system (or similar system) against a database, and treated in a coherent and reliable way independent of other transactions. Transactions in a database environment have two main purposes:
1. To provide reliable units of work that allow correct recovery from failures and keep a database consistent even in cases of system failure, when execution stops (completely or partially) and many operations upon a database remain uncompleted, with unclear status.

2. To provide isolation between programs accessing a database concurrently. If this isolation is not provided, the program's outcome are possibly erroneous.
A database transaction, by definition, must be atomic, consistent, isolated and durable. Database practitioners often refer to these properties of database transactions using the acronym ACID.
Transactions provide an "all-or-nothing" proposition, stating that each work-unit performed in a database must either complete in its entirety or have no effect whatsoever. Further, the system must isolate each transaction from other transactions, results must conform to existing constraints in the database, and transactions that complete successfully must get written to durable storage.

其中,all-or-nothing很明确的表达了事务的本质:“要么全成功,要么什么都没发生过”。可以把它看作一个原子操作。

HBase Transaction

(注:这里经过补充与修改,第一天就被转载本博文这里的描述不够准确)

HBase的支持的事务很有限,0.94版本的新特性中有两条:

[HBASE-3584] - Allow atomic put/delete in one call.

[HBASE-5229] - Provide basic building blocks for "multi-row" local transactions.

第一条,我引用NoSQLFan的解读:

“0.94版本具备更完整的事务支持: 之前Hbase提供行级的事务,不过每次事务只能执行一个写操作,比如连续地执行一系列Put,Delete操作,那么这些操作是单独一个个的事务,其整体并不是原子性执行的。而在0.94版本中,可以实现Put、Delete在同一个事务中一起原子性执行。”

具体怎么用呢?有下面这一段Sample:

//Add API for atomic row mutations to HBase (currently Put and Delete).
Client API would look like this:
Delete d = new Delete(ROW);
Put p = new Put(ROW);
//...
AtomicRowMutation arm = new AtomicRowMutation(ROW);
arm.add(p);
arm.add(d);
myHtable.atomicMutation(arm);

可以看到,这里的事务仅仅是针对某一行的一系列Put/Delete操作。不同行、不同表间一系列操作是无法放在一个事务中的。

第二条,,我的个人理解,这次是多行一并的事务了!不过貌似是“同一Region中的多行”。因为文中一句“ Global (cross region) transactions are not discussed here.”

因此对一张多Region表来说,还是无法保证每次修改都能封装为一个事务。

文档

HBase事务性(Transaction)

HBase事务性(Transaction):What is Transaction 先摘录一段Wiki关于Transaction(事务)的释义: A transaction comprises a unit of work performed withi What is Transaction 先摘录一段Wiki关于Transaction(事务)的释义: A transaction
推荐度:
标签: 事务 base hbase
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top