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
随机推荐
- 流(stream)
流的概念 Java程序通过流来完成输入/输出.流是生产或消费信息的抽象.流通过Java的输入/输出系统与物理设备链接.尽管与它们链接的物理设备不尽相同,所有流的行为具有同样的方式.这样,相同的输入/输 ...
- 【noip2011】观光公交
题解: 做这题的时候为了敢速度- - 直接orz了神小黑的题解 其实我还是有想一个拙计的方法的- - dp:f[i][j] 表示到i点使用j个加速器 在i前上车的人的时间和 轻松愉悦转移之 - - 但 ...
- Java注解处理器使用详解
在这篇文章中,我将阐述怎样写一个注解处理器(Annotation Processor).在这篇教程中,首先,我将向您解释什么是注解器,你可以利用这个强大的工具做什么以及不能做什么:然后,我将一步一步实 ...
- Google Android官方文档进程与线程(Processes and Threads)翻译
android的多线程在开发中已经有使用过了,想再系统地学习一下,找到了android的官方文档,介绍进程与线程的介绍,试着翻译一下. 原文地址:http://developer.android.co ...
- Java之泛型练习
package cn.itcast.generics; import java.util.Comparator; import java.util.Iterator; import java.util ...
- 第十三章、学习 Shell Scripts 循环 (loop)
while do done, until do done (不定循环) while [ condition ] <==中括号内的状态就是判断式 do <==do 是回圈的开始! 程序段落 ...
- jquery.layout框架分割线
css <link href="${base}/res/common/css/jquery.layout/jquery.layout.css" rel="style ...
- Xcode8适配iOS10.1真机测试
将10.1测试包相关文件存放到指定位置,如图步骤提示: 解压文件:
- MYSQL BLOB 字段大小以及个数的限制測试。
測试结论 mysql版本号 5.1 表类型: innodb, row_format=compact (这是默认的行格式) 插入超过10个blob, blob的数据量非常小(<76 ...
- materialish-progress
https://github.com/pnikosis/materialish-progress materialish-progress-master.zip