- 博客(5)
- 收藏
- 关注
原创 MySQL易忘点
悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在应用层中实现了加锁机制,也无法保证外部系统不会修改数据)。e.g. 若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,T释放A上的读锁前,其他事务不能加X锁。悲观锁的应用:select * from tableB for update 加锁机制,在查询数据时对所选的数据进行锁定,避免其他事务对其进行修改,直到当前事务提交或回滚。
2024-07-25 19:17:47
832
原创 分布式事务
当瞬时请求量很大时,两个号段会被瞬间消费完毕,而如果此时号段更新线程没有及时从DB中获取到新的号段,将导致获取id失败(获取到的id不是正确的id值,而是-1)。在单机上,生成的ID是递增的,但在多台机器上,只能大致保持递增趋势,并不能严格保证递增。原理:每次从DB中获取新的号段时,都与前一次号段维持时间做对比,如果小于N,则增加号段长度,如果大于N则减小号段长度,从而做到号段至少能够维持N时间的长度。: 1bit,最高位是符号位,0 表示正,1 表示负,固定为 0,如果是 1 就是负数了。
2024-07-24 15:11:03
777
原创 项目经验教训
准备好checklist,避免遗漏。checklist在开发过程中可持续进行完善,如新增的配置,新申请的环境等,避免后续遗忘。按照checklist,提前把新加的配置配好;有灰度环境,则先上灰度验证;无灰度环境,是否有灰度控制开关、灰度验证名单依赖方先上线;代码发布;修改现有配置;被依赖方上线;线上验证项目复盘,收益量化日常值班时,注意风险。。尤其牵扯导数据的,即使觉得毫无秘密性的数据,按规范来,不确定的问领导5、主R项目总结。
2024-07-24 15:06:15
518
原创 java面试-基础知识易忘点
迭代器在遍历时直接访问集合的内容,为保证集合中的内容在遍历的过程中不能被修改,迭代器内部维护了一个modCount 变量 ,当集合结构改变(添加、删除或者修改),就会改变 modCount 的值。抽象内存模型JMM定义了线程和主内存之间的抽象关系:共享变量存储在主内存(Main Memory,抽象概念)中,每个线程都有一个私有的本地内存(Local Memory,抽象概念),本地内存保存了被该线程使用到的主内存的副本拷贝,线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存中的变量。
2024-07-24 14:58:09
768
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人