• 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的更多相关文章

  1. h2database源码浅析:SQL语句的执行

    最近想好好了解一下数据库的原理,下载了h2database的源码,准备好好看看.此过程的一些想法,暂且记下来,权当做读码笔记吧! 为了调试准备的测试用例: @Test public void test ...

  2. h2database源码浅析:MVTable与MVIndex

    Database包含一个Store:MVTableEngine.Store getMvStore() MVTableEngine.Store可以获取各tables:java.util.HashMap& ...

  3. h2database源码浅析:集群

    Clustering / High Availability This database supports a simple clustering / high availability mechan ...

  4. h2database源码浅析:锁与MVCC

    Table Level Locking The database allows multiple concurrent connections to the same database. To mak ...

  5. h2database源码浅析:事务、两阶段提交

    Transaction Isolation Transaction isolation is provided for all data manipulation language (DML) sta ...

  6. 【深入浅出jQuery】源码浅析--整体架构

    最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...

  7. 【深入浅出jQuery】源码浅析2--奇技淫巧

    最近一直在研读 jQuery 源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美. 其结构明晰,高内聚.低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷.渐 ...

  8. Struts2源码浅析-ConfigurationProvider

    ConfigurationProvider接口 主要完成struts配置文件 加载 注册过程 ConfigurationProvider接口定义 public interface Configurat ...

  9. (转)【深入浅出jQuery】源码浅析2--奇技淫巧

    [深入浅出jQuery]源码浅析2--奇技淫巧 http://www.cnblogs.com/coco1s/p/5303041.html

随机推荐

  1. 恒天云IaaS基础设施标准

    系统总体要求: 支持多种操作系统:支持Windows,Redhat.Suse等Linux操作系统: 支持多种虚拟化系统:支持多种计算资源虚拟化方式: 网络接口:支持千兆及万兆以太网技术: 供电:支持直 ...

  2. ubuntu下PHP支持cURL

    公司项目需要,注册需要验证手机号码,其中需要LAMP支持cURL.由于事先安装平台的时候,并没有注意到这一点,所以编译PHP5的时候,并没有使用参数--with-curl.后来需要的时候,查一些参考方 ...

  3. Apache Hadoop 源码阅读

    总之一句话,这些都是hadoop-2.2.0的源代码里有的.也就是不光只是懂理论,编程最重要,还是基本功要扎实啊.... 在hadoop-2.2.0的源码里,按Ctrl + Shift + T . 跳 ...

  4. 再次踩bug:遍历删除list(java.util.ConcurrentModificationException)

    再次踩bug:遍历删除list(java.util.ConcurrentModificationException) 使用 List<Long> list = new ArrayList& ...

  5. Java之泛型练习

    package cn.itcast.generics; import java.util.Comparator; import java.util.Iterator; import java.util ...

  6. A Tour of Go Interfaces are satisfied implicitly

    A type implements an interface by implementing the methods. There is no explicit declaration of inte ...

  7. 退出程序是跳过屏幕自检 比如 必输 EXIT-COMMAND

    控制必须输入可以,但是我退出程序的时候还要求我输入个值才能退出,这太变态了,相信很多同志都在SAP程序中反感过这个问题. 标准程序咱就不说了,忍了,新开发的功能还是要解决这个问题. 办法很简单:MOD ...

  8. linux makefile: c++ 编程_基础入门_如何开始?

    学习android 终究还是需要研究一下其底层框架,所以,学习c++很有必要. 这篇博客,算是linux(ubuntu) 下学习 c++ 的一个入门. 刚开始学习编程语言的时候,最好还是使用命令行操作 ...

  9. Postfix配置Q&A

    原文地址:http://space.doit.com.cn/51460/viewspace-4943.html 在配置Postfix中遇到的一些问题及相关的解决方法,希望在遇到相同的问题时能起参考的作 ...

  10. Asp.Net Mvc5 之Controller

    经过前面介绍了路由系统之后,我们知道任何一个请求在经过asp.net url路由系统的拦截之后,会生成以controller/action 名称为核心的路由数据.asp.net mvc 根据此解析出目 ...