fastDB核心心得

本文主要探讨了fastDB的锁机制,重点分析了在不同权限下数据库的锁行为,如独占锁、共享锁在dbConcurrentUpdate模式和其他模式下的应用。此外,还概述了fastDB的内存管理,包括内存分配原则和位图管理策略。通过对fastDB的深入研究,有助于优化其在高并发写操作场景下的性能。
摘要由CSDN通过智能技术生成

学习背景:最近遇到了fastDB瓶颈的问题,经过仔细的研究fastDB的锁机制和内存机制,暂时记录如下。

fastdb的锁:fastdb是内存数据库,锁针对的是整个库的锁,所以在频繁写操作时会拖低系统的效率,这也是无奈之举。下面的分析是基于beginTransaction(事务分析的)

           在使用的时候打开数据库的权限中有几种方式:1。dbConcurrentUpdate //同时更新方式 2.dbConcurrentRead同时读方式。3dbAllAccess普通方式 4.dbReadOnly只读方式。

    在使用锁的时候会将传入的锁类型和打开数据库的权限结合确定锁的范围。

                   当dbConcurrentUpdate方式打开数据库时比较特殊:

                              当使用独占锁时:线程的ctx->isMutator = true (写标示)和ctx->mutatorCSLocked = true(临界区锁)

                               当使用共享锁时:ctx->mutatorCSLocked = true(临界区写锁)
                               当使用提交锁时:同下面使用提交锁的情况。

                    当以其他方式打开数据库(包括1和2结合在一起,或者3单独)(accessType!=dbConcurrentUpdate )

                                当使用独占锁和提交锁时&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值