zoukankan      html  css  js  c++  java
  • 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)


  • 相关阅读:
    linux线程
    linux线程
    c++之堆、栈、数据段、
    fork()、僵死进程和孤儿进程
    linux之管理mysql
    linux之管理apache
    Django 时间与时区设置问题
    Django rest framework:__str__ returned non-string (type NoneType) 真正原因
    Django获取当前页面的URL——小记
    Django中出现:TemplateDoesNotExist at
  • 原文地址:https://www.cnblogs.com/bluejoe/p/5115884.html
Copyright © 2011-2022 走看看