首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【内含抽奖】告别锁争用,日志写入还能这么通畅?

文末有礼品,千万别错过

预写日志写入过程中

常出现锁争用问题

影响写入效率

Vastbase只需两步

轻松缓解锁争用问题

点击 一探究竟

STEP 1

引入免锁的CAS操作

Vastbase首先通过引入CAS操作来避免锁争用,CAS(Compare-And-Swap)是一种原子操作,它允许线程在无需加锁的情况下,安全地修改数据库中的数据。

当线程想要修改数据库中的某个值时,CAS会确认当前值是否与预期值相等,若相等,则会将当前值变更为新值,CAS操作成功;若不相等,则会返回重新计算,便于后续的重试。

这样一来,Vastbase就巧妙地绕开了锁争用的泥潭,让数据库操作更加流畅。

加入CAS操作前后对比(以WAL机制为例)

虽然利用CAS替换了自旋锁

但在冲突很高的情况下

CAS操作耗时还是会非常长

这就来到了第二步

STEP 2

引入WAL分组写入机制

Vastbase引入WAL分组写入机制来降低CAS操作发生冲突的可能,WAL(Write-Ahead Logging)即预写日志系统。

当事务生成日志后,会首先加入到写入组。第一个加入组的线程成为Leader,后续的加入者成为Follower。

Leader负责处理所有的读写操作,拷贝自身和Follower的日志条目到WAL BUFFER中。

因为Follower的日志条目早已被Leader写入,就无需再进行CAS操作了。

通过引入CAS操作和WAL分组写入机制

Vastbase精妙的缓解了锁争用的问题

这将减少I/O操作次数

提升日志写入效率

确保了数据库在高负载下

依然能保持出色的吞吐量和稳定性

真正做到高并发

• END •

关于海量数据

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O9SYdiFzFxQupgmtEtI5rWiA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券