Citation: | Hu Hao, Liang Wenkai, Li Shiyi, Wang Hongpeng, Xia Wen. Survey of Transaction Management System in New Memory Hardware Environment[J]. Journal of Computer Research and Development, 2023, 60(3): 572-591. DOI: 10.7544/issn1000-1239.202220579 |
The era of big data explosion has produced various new types of business, and business data drives the innovative and iterative development of transaction management systems. Due to the limitations of traditional persistence media, traditional transaction management systems cannot efficiently execute transactions. The additional overhead of resolving transaction conflicts can also limit the throughput of the transaction management system. The commercial application of new hardware has injected more possibilities into transaction management systems and has received extensive attention in both academia and industry. Hardware transactional memory (HTM) can provide hardware-level transaction conflict detection for transaction management systems. Compared with solid-state drives (SSD), the byte addressability and persistence characteristics of non-volatile memory can significantly reduce transaction execution latency and improve the performance of transaction management system. However, existing transaction management system technology cannot fully take advantage of the performance improvement brought by the hardware, so it is necessary to reconstruct the transaction architecture to address this problem. We first analyze current transaction management systems under the new hardware environment, then summarize the current technical aspects of them, and make clear the advantages and disadvantages of the transaction management system under the hardware transactional memory and non-volatile storage hardware. Finally, the possible development direction and new challenges of the transaction management system in the new hardware environment are pointed out.
[1] |
Wikipedia. Database transaction [EB/OL]. [2022-06-05].https://en.wikipedia.org/wiki/Database_transaction
|
[2] |
Barghouti N S, Kaiser G E. Concurrency control in advanced database applications[J]. ACM Computing Surveys, 1991, 23(3): 269−317 doi: 10.1145/116873.116875
|
[3] |
Oracle. Oracle database service [EB/OL]. [2022-06-05].https://www.oracle.com/database/
|
[4] |
Microsoft. SQL server [EB/OL]. [2022-06-05].https://www.microsoft.com/en-us/sql-server/sql-server-2022
|
[5] |
Lindström J, Raatikka V, Ruuth J, et al. IBM solidDB: In-memory database optimized for extreme speed and availability[J]. IEEE Database Engineering Bulletin, 2013, 36(2): 14−20
|
[6] |
Bandi N, Sun Chengyu, Agrawal D, et al. Hardware acceleration in commercial databases: A case study of spatial operations[C] //Proc of the 30th Int Conf on Very Large Data Bases (VLDB 2004). San Francisco, CA: Morgan Kaufmann, 2004: 1021−1032
|
[7] |
Sen R, Ramachandra K. Characterizing resource sensitivity of database workloads[C] //Proc of the 24th IEEE Int Symp on High Performance Computer Architecture (HPCA 2018). Piscataway, NJ: IEEE, 2018: 657−669
|
[8] |
Redis. Redis key-value storage [EB/OL]. [2022-06-05].https://redis.io/
|
[9] |
Vora M N. Hadoop-HBase for large-scale data[C] //Proc of the 1st Int Conf on Computer Science and Network Technology. Piscataway, NJ: IEEE, 2011: 601−605
|
[10] |
MongoDB. MongoDB database [EB/OL]. [2022-06-05].https://www.mongodb.com/
|
[11] |
Neo4J. Neo4J graph database [EB/OL]. [2022-06-05].https://neo4j.com/
|
[12] |
Datta A, Thomas H. The cube data model: A conceptual model and algebra for on-line analytical processing in data warehouses[J]. Decision Support Systems, 1999, 27(3): 289−301 doi: 10.1016/S0167-9236(99)00052-4
|
[13] |
Larus J, Kozyrakis C. Transactional memory[J]. Communications of the ACM, 2008, 51(7): 80−88 doi: 10.1145/1364782.1364800
|
[14] |
Huang Jian, Schwan K, Qureshi M K. NVRAM-aware logging in transaction systems[J]. Proceedings of the VLDB Endowment, 2014, 8(4): 389−400 doi: 10.14778/2735496.2735502
|
[15] |
Hu Qingda, Ren Jinglei, Badam A, et al. Log-structured non-volatile main memory[C] //Proc of the 23rd USENIX Annual Technical Conf (USENIX ATC 2017). Berkeley, CA: USENIX Association, 2017: 703−717
|
[16] |
Dice D, Lev Y, Moir M, et al. Early experience with a commercial hardware transactional memory implementation[C] //Proc of the 14th Int Conf on Architectural Support for Programming Languages and Operating Systems. New York: ACM, 2009: 157−168
|
[17] |
Jacobi C, Slegel T, Greiner D. Transactional memory architecture and implementation for IBM system z[C] //Proc of the 45th Annual IEEE/ACM Int Symp on Microarchitecture(MICRO 2012). Piscataway, NJ: IEEE, 2012: 25−36
|
[18] |
Hammarlund P, Martinez A J, Bajwa A A, et al. Haswell: The fourth-generation Intel core processor[J]. IEEE Micro, 2014, 34(2): 6−20 doi: 10.1109/MM.2014.10
|
[19] |
Wong H S P, Raoux S, Kim S B, et al. Phase change memory[J]. Proceedings of the IEEE, 2010, 98(12): 2201−2227 doi: 10.1109/JPROC.2010.2070050
|
[20] |
Zangeneh M, Joshi A. Design and optimization of nonvolatile multibit 1T1R resistive RAM[J]. IEEE Transactions on Very Large Scale Integration Systems, 2013, 22(8): 1815−1828
|
[21] |
Li Jing, Ndai P, Goel A, et al. Design paradigm for robust spin-torque transfer magnetic RAM (STT MRAM) from circuit/architecture perspective[J]. IEEE Transactions on Very Large Scale Integration Systems, 2009, 18(12): 1710−1723
|
[22] |
Mark T. Optane DC persistent memory [EB/OL]. [2022-06-05].https://hexus.net/tech/news/storage/129143-intel-optane-dc-persistent-memory-launched/
|
[23] |
Gugnani S, Kashyap A, Lu Xiaoyi. Understanding the idiosyncrasies of real persistent memory[J]. Proceedings of the VLDB Endowment, 2020, 14(4): 626−639 doi: 10.14778/3436905.3436921
|
[24] |
Yang Jian, Kim J, Hoseinzadeh M, et al. An empirical guide to the behavior and use of scalable persistent memory[C] //Proc of the 18th USENIX Conf on File and Storage Technologies (FAST 2020). Berkeley, CA: USENIX Association, 2020: 169−182
|
[25] |
Yen L, Bobba J, Marty M R, et al. LogTM-SE: Decoupling hardware transactional memory from caches[C] //Proc of the 13th IEEE Int Symp on High Performance Computer Architecture (HPCA 2007). Piscataway, NJ: IEEE, 2007: 261−272
|
[26] |
Tomić S, Perfumo C, Kulkarni C, et al. EazyHTM: Eager-lazy hardware transactional memory[C] //Proc of the 42nd Annual IEEE/ACM Int Symp on Microarchitecture (MICRO 2009). New York: ACM, 2009: 145−155
|
[27] |
Negi A, Titos-Gil R, Acacio M E, et al. π-TM: Pessimistic invalidation for scalable lazy hardware transactional memory[C] //Proc of the 18th IEEE Int Symp on High Performance Computer Architecture (HPCA 2012). Piscataway, NJ: IEEE, 2012: 141−152
|
[28] |
Park S, Prvulovic M, Hughes C J. PleaseTM: Enabling transaction conflict management in requester-wins hardware transactional memory[C] //Proc of the 22nd IEEE Int Symp on High Performance Computer Architecture (HPCA 2016). Piscataway, NJ: IEEE, 2016: 285−296
|
[29] |
Park S, Hughes C J, Prvulovic M. Forgive-TM: Supporting lazy conflict detection in eager hardware transactional memory[C] //Proc of the 28th Int Conf on Parallel Architectures and Compilation Techniques (PACT 2019). Piscataway, NJ: IEEE, 2019: 192−204
|
[30] |
Titos-Gil R, Fernández-Pascual R, Ros A, et al. Concurrent irrevocability in best-effort hardware transactional memory[J]. IEEE Transactions on Parallel and Distributed Systems, 2019, 31(6): 1301−1315
|
[31] |
Leis V, Kemper A, Neumann T. Exploiting hardware transactional memory in main-memory databases[C] //Proc of the 30th IEEE Int Conf on Data Engineering. Piscataway, NJ: IEEE, 2014: 580−591
|
[32] |
Wu Yingjun, Tan K L. Scalable in-memory transaction processing with HTM[C] // Proc of the 22nd USENIX Annual Technical Conf (USENIX ATC 2016). Berkeley, CA: USENIX Association, 2016: 365−377
|
[33] |
Cai Zixian, Blackburn S M, Bond M D. Understanding and utilizing hardware transactional memory capacity[C] //Proc of the 21st ACM SIGPLAN Int Symp on Memory Management (ISMM 2021). New York: ACM, 2021: 1−14
|
[34] |
Krishnan R M, Kim J, Mathew A, et al. Durable transactional memory can scale with TimeStone[C] //Proc of the 25th Int Conf on Architectural Support for Programming Languages and Operating Systems. New York: ACM, 2020: 335−349
|
[35] |
Marathe V, Mishra A, Trivedi A, et al. Persistent memory transactions[J]. arXiv preprint, arXiv: 1804.00701, 2018
|
[36] |
Kolli A, Pelley S, Saidi A, et al. High-performance transactions for persistent memories[C] //Proc of the 21st Int Conf on Architectural Support for Programming Languages and Operating Systems. New York: ACM, 2016: 399−411
|
[37] |
Memaripour A, Badam A, Phanishayee A, et al. Atomic in-place updates for non-volatile main memories with Kamino-Tx[C] //Proc of the 12th European Conf on Computer Systems. New York: ACM, 2017: 499−512
|
[38] |
Correia A, Felber P, Ramalhete P. Romulus: Efficient algorithms for persistent transactional memory[C] //Proc of the 30th on Symp on Parallelism in Algorithms and Architectures (SPAA 2018). New York: ACM, 2018: 271−282
|
[39] |
Joshi A, Nagarajan V, Viglas S, et al. ATOM: Atomic durability in non-volatile memory through hardware logging[C] //Proc of the 23rd IEEE Int Symp on High Performance Computer Architecture (HPCA 2017). Piscataway, NJ: IEEE, 2017: 361−372
|
[40] |
Volos H, Tack A J, Swift M M. Mnemosyne: Lightweight persistent memory[J]. ACM SIGARCH Computer Architecture News, 2011, 39(1): 91−104 doi: 10.1145/1961295.1950379
|
[41] |
Lu Youyou, Shu Jiwu, Sun Long, et al. Loose-ordering consistency for persistent memory[C] //Proc of the 32nd IEEE Int Conf on Computer Design. Piscataway, NJ: IEEE, 2014: 216−223
|
[42] |
Giles E R, Doshi K, Varman P. SoftWrAP: A lightweight framework for transactional support of storage class memory[C/OL] //Proc of the 31st Symp on Mass Storage Systems and Technologies (MSST 2015). Piscataway, NJ: IEEE, 2015 [2022-11-10].https://ieeexplore.ieee.org/abstract/docume nt/7208276/
|
[43] |
Liu Mengxing, Zhang Mingxing, Chen Kang, et al. DudeTM: Building durable transactions with decoupling for persistent memory[J]. ACM SIGPLAN Notices, 2017, 52(4): 329−343 doi: 10.1145/3093336.3037714
|
[44] |
Gu Jinyu, Yu Qianqian, Wang Xiayang, et al. Pisces: A scalable and efficient persistent transactional memory[C] //Proc of the 25th USENIX Annual Technical Conf (USENIX ATC 2019). Berkeley, CA: USENIX Association, 2019: 913−928
|
[45] |
Wang Qing, Lu Youyou, Wu Zhongjie, et al. Improving the concurrency performance of persistent memory transactions on multicores[C/OL] //Proc of the 57th ACM/IEEE Design Automation Conf. Piscataway, NJ: IEEE, 2020 [2022-11-10].https://ieeexplore.ieee.org/document/9218554
|
[46] |
Wu Kai, Ren Jie, Peng I, et al. ArchTM: Architecture-aware, high performance transaction for persistent memory[C] //Proc of the 19th USENIX Conf on File and Storage Technologies (FAST 2021). Berkeley, CA: USENIX Association, 2021: 141−153
|
[47] |
Felber P, Fetzer C, Riegel T. Dynamic performance tuning of word-based software transactional memory[C] //Proc of the 13th ACM SIGPLAN Symp on Principles and Practice of Parallel Programming. Piscataway, NJ : IEEE, 2008: 237−246
|
[48] |
McKenney P E, Slingwine J D. Read-copy update: Using execution history to solve concurrency problems[C] //Proc of the 10th Int Conf on Parallel and Distributed Computing and Systems. New York: ACM, 1998: 509−518
|
[49] |
Kashyap S, Min C, Kim K, et al. A scalable ordering primitive for multicore machines[C/OL] //Proc of the 13th European Conf on Computer Systems. New York: ACM, 2018 [2022-11-10].https://dl.acm.org/doi/10.1145/3190508.3190510
|
[50] |
Matveev A, Shavit N, Felber P, et al. Read-log-update: A lightweight synchronization mechanism for concurrent programming[C] //Proc of the 25th Symp on Operating Systems Principles. New York: ACM, 2015: 168−183
|
[51] |
Kim J, Mathew A, Kashyap S, et al. MV-RLU: Scaling read-log-update with multi-versioning[C] //Proc of the 24th Int Conf on Architectural Support for Programming Languages and Operating Systems. New York: ACM, 2019: 779−792
|
[52] |
Joshi A, Nagarajan V, Cintra M, et al. DHTM: Durable hardware transactional memory[C] //Proc of the 45th ACM/IEEE Annual Int Symp on Computer Architecture (ISCA 2018). Piscataway, NJ: IEEE, 2018: 452−465
|
[53] |
Giles E, Doshi K, Varman P. Continuous checkpointing of HTM transactions in NVM[J]. ACM SIGPLAN Notices, 2017, 52(9): 70−81 doi: 10.1145/3156685.3092270
|
[54] |
Castro D, Romano P, Barreto J. Hardware transactional memory meets memory persistency[C] //Proc of the 32nd IEEE Int Parallel and Distributed Processing Symp. Piscataway, NJ: IEEE, 2018: 368−377
|
[55] |
Avni H, Levy E, Mendelson A. Hardware transactions in nonvolatile memory[C] //Proc of the 29th Int Symp on Distributed Computing (DISC 2015). Berlin: Springer, 2015: 617−630
|
[56] |
Avni H, Brown T. Persistent hybrid transactional memory for databases[J]. Proceedings of the VLDB Endowment, 2016, 10(4): 409−420 doi: 10.14778/3025111.3025122
|
[57] |
Baldassin A, Murari R, de Carvalho J P L, et al. NV-PhTM: An efficient phase-based transactional system for non-volatile memory[C] //Proc of the 26th Int Conf on Parallel and Distributed Computing. Berlin: Springer, 2020: 477−492
|
[58] |
Genç K, Bond M D, Xu G H. Crafty: Efficient, HTM-compatible persistent transactions[C] //Proc of the 41st ACM SIGPLAN Conf on Programming Language Design and Implementation. New York: ACM, 2020: 59−74
|
[59] |
Castro D, Baldassin A, Barreto J, et al. SPHT: Scalable persistent hardware transactions[C] //Proc of the 19th USENIX Conf on File and Storage Technologies (FAST 2021). Berkeley, CA: USENIX Association, 2021: 155−169
|
[60] |
姜天洋,张广艳,李之悦. 内存事务中并发控制协议研究综述[J]. 计算机研究与发展,2022,59(4):727−736
Jiang Tianyang, Zhang Guangyan, Li Zhiyue. Survey on concurrency control protocols of in-memory transactions[J]. Journal of Computer Research and Development, 2022, 59(4): 727−736 (in Chinese)
|
[61] |
肖仁智,冯丹,胡燏翀,等. 面向非易失内存的数据一致性研究综述[J]. 计算机研究与发展,2020,57(1):85−101 doi: 10.7544/issn1000-1239.2020.20190062
Xiao Renzhi, Feng Dan, Hu Yuchong, et al. A survey of data consistency research for non-volatile memory[J]. Journal of Computer Research and Development, 2020, 57(1): 85−101 (in Chinese) doi: 10.7544/issn1000-1239.2020.20190062
|
[1] | Jiang Xuyan, Quan Wei, Fu Wenwen, Zhang Xiaoliang, Sun Zhigang. OpenPlanner: An Open-Source Traffic Planning Software for Time-Sensitive Networking[J]. Journal of Computer Research and Development. DOI: 10.7544/issn1000-1239.202330776 |
[2] | Zhang Junna, Bao Xiang, Chen Jiawei, Zhao Xiaoyan, Yuan Peiyan, Wang Shangguang. A Dependent Task Offloading Method for Joint Time Delay and Energy Consumption[J]. Journal of Computer Research and Development, 2023, 60(12): 2770-2782. DOI: 10.7544/issn1000-1239.202220779 |
[3] | Zheng Yingying, Zhou Junlong, Shen Yufan, Cong Peijin, Wu Zebin. Time and Energy-Sensitive End-Edge-Cloud Resource Provisioning Optimization Method for Collaborative Vehicle-Road Systems[J]. Journal of Computer Research and Development, 2023, 60(5): 1037-1052. DOI: 10.7544/issn1000-1239.202220734 |
[4] | Gong Xiaohang, Jiang Binze, Chen Xianglan, Gao Yinkang, Li Xi. Survey of Real-Time Computer System Architecture[J]. Journal of Computer Research and Development, 2023, 60(5): 1021-1036. DOI: 10.7544/issn1000-1239.202220731 |
[5] | Zhang Tong, Feng Jiaqi, Ma Yanying, Qu Siyuan, Ren Fengyuan. Survey on Traffic Scheduling in Time-Sensitive Networking[J]. Journal of Computer Research and Development, 2022, 59(4): 747-764. DOI: 10.7544/issn1000-1239.20210203 |
[6] | Quan Wei, Fu Wenwen, Sun Zhigang, Li Tao. HX-DS09: A Customized Low Power Time Sensitive Networking Chip for High-End Equipment[J]. Journal of Computer Research and Development, 2021, 58(6): 1242-1245. DOI: 10.7544/issn1000-1239.2021.20210164 |
[7] | Sha Letian, Fu Jianming, Chen Jing, and Huang Shiyong. A Sensitivity Measurement for Sensitive Information Processing[J]. Journal of Computer Research and Development, 2014, 51(5): 1050-1060. |
[8] | Hou Yongshuai, Zhang Yaoyun, Wang Xiaolong, Chen Qingcai, Wang Yuliang, and Hu Baotian. Recognition and Retrieval of Time-sensitive Question in Chinese QA System[J]. Journal of Computer Research and Development, 2013, 50(12): 2612-2620. |
[9] | Zhou Hang, Huang Zhiqiu, Zhu Yi, Xia Liang, Liu Linyuan. Real-Time Systems Contact Checking and Resolution Based on Time Petri Net[J]. Journal of Computer Research and Development, 2012, 49(2): 413-420. |
[10] | Zhou Hang, Huang Zhiqiu, Hu Jun, Zhu Yi. Real-Time System Resource Conflict Checking Based on Time Petri Nets[J]. Journal of Computer Research and Development, 2009, 46(9): 1578-1585. |