h2database源码浅析:TransactionMap、MVMap、MVStore
- TransactionStore:A store that supports concurrent MVCC read-committed transactions.
- TransactionStore.Transaction:A transaction.
- TransactionStore.TransactionMap<K,V>:A map that supports transactions.
TransactionStore通过openMap获取到Map:
<K,V> TransactionStore.TransactionMap<K,V>
openMap(java.lang.String name, DataType keyType, DataType valueType)
Open the map to store the data.
TransactionStore通过open创建一个Transaction:
TransactionStore.Transaction begin()
Begin a new transaction.
MVMap<K,V>
多版本Map
读操作:Read operations can happen concurrently with all other operations, without risk of corruption.
写操作:Write operations first read the relevant area from disk to memory concurrently, and only then modify the data. The in-memory part of write operations is synchronized. For scalable concurrent in-memory write operations, the map should be split into multiple smaller sub-maps that are then synchronized independently.
所有已实现的接口:
java.util.concurrent.ConcurrentMap<K,V>, java.util.Map<K,V>
直接已知子类:
MVMapConcurrent, MVRTreeMap
MVTableEngine.Store
public MVStore getStore() 获取MVStore
MVStore
A persistent storage for maps.
openMap()方法用以创建一个MVMap:
public <K,V> MVMap<K,V> openMap(java.lang.String name)
h2database源码浅析:TransactionMap、MVMap、MVStore的更多相关文章
- h2database源码浅析:SQL语句的执行
最近想好好了解一下数据库的原理,下载了h2database的源码,准备好好看看.此过程的一些想法,暂且记下来,权当做读码笔记吧! 为了调试准备的测试用例: @Test public void test ...
- h2database源码浅析:MVTable与MVIndex
Database包含一个Store:MVTableEngine.Store getMvStore() MVTableEngine.Store可以获取各tables:java.util.HashMap& ...
- h2database源码浅析:集群
Clustering / High Availability This database supports a simple clustering / high availability mechan ...
- h2database源码浅析:锁与MVCC
Table Level Locking The database allows multiple concurrent connections to the same database. To mak ...
- h2database源码浅析:事务、两阶段提交
Transaction Isolation Transaction isolation is provided for all data manipulation language (DML) sta ...
- 【深入浅出jQuery】源码浅析--整体架构
最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...
- 【深入浅出jQuery】源码浅析2--奇技淫巧
最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...
- Struts2源码浅析-ConfigurationProvider
ConfigurationProvider接口 主要完成struts配置文件 加载 注册过程 ConfigurationProvider接口定义 public interface Configurat ...
- (转)【深入浅出jQuery】源码浅析2--奇技淫巧
[深入浅出jQuery]源码浅析2--奇技淫巧 http://www.cnblogs.com/coco1s/p/5303041.html
随机推荐
- Visual Studio 2015 编译错误【错误 C4996 'vsprintf': This function or variable may be unsafe. Consider using vsprintf_s instead. 】的解决方案
错误提示信息: 错误 C4996 'vsprintf': This function or variable may be unsafe. Consider using vsprintf_s inst ...
- leetcode@ [236] Lowest Common Ancestor of a Binary Tree(Tree)
https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/ Given a binary tree, find the ...
- Java网络编程(UDP协议-聊天程序)
接收端: package WebProgramingDemo; import java.net.DatagramPacket; import java.net.DatagramSocket; publ ...
- STL学习系列二:Vector容器
1.Vector容器简介 vector是将元素置于一个动态数组中加以管理的容器. vector可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法,这个等下会详讲). vector尾部添 ...
- Modbus调试利器 Modbus Poll
Modbus Poll是一个非常不错的工具,支持TCP/串口 下载地址:http://pan.baidu.com/share/link?shareid=2880213929&uk=248325 ...
- 线段树—Lazy_Tag
转载LINK:LAZY_TAG 先看一个具体问题吧 PKU 3468 http://poj.org/problem?id=3468 题意很清楚 1 ≤ N,Q ≤ 100000. "C a ...
- .Net 项目常见疑难杂症
1.A项目引用 B项目 B项目引用C.dll 同时 A也必须引用 C.dll 则 A中引用的C的版本 必须和 B中引用C的版本相同 否则就会出现下面这类问题:解决办法 :同步A B项目中引用C的版本一 ...
- Why Does Everyone Else Appear to Be Succeeding?
Why Does Everyone Else Appear to Be Succeeding? —Steven G. Krantz When you are a student, it will a ...
- HDU4279(2012年天津网络赛---数论分析题)
题目:Number 题意: 给出一个f(x),表示不大于x的正整数里,不整除x且跟x有大于1的公约数的数的个数.定义F(x),为不大于x的正整数里,满足f(x)的值为奇数的数的个数.题目就是求这个F( ...
- Android动画Animation之Tween用代码实现动画
透明度动画.旋转动画.尺寸伸缩动画.移动动画 package com.javen.tween; import android.annotation.SuppressLint; import andro ...