MySQL事务隔离级别的实现原理
原文链接: https://dashen.tech/page/54/index.html
版权声明: 转载请注明出处.
sysctl.conf 系统参数详解
vim /etc/sysctl.conf
1 | # |
https://blog.csdn.net/weixin_40901788/article/details/83586965
gin中间件的编写和使用
https://www.flysnow.org/2020/06/28/golang-gin-middleware.html
gin里的中间件类似于Java里的拦截器(过滤器)可以对请求进行一些提前或者滞后的处理
MySQL中的WAL(Write-Ahead-Logging)
数据库IO简介
IO有四种类型:连续读,随机读,随机写和连续写,连续读写的IO size通常比较大(128KB-1MB),主要衡量吞吐量,而随机读写的IO size比较小(小于8KB),主要衡量IOPS和响应时间。数据库中的全表扫描是连续读IO,索引访问则是典型的随机读IO,日志文件是连续写IO,而数据文件则是随机写IO。
数据库系统基于传统磁盘访问特性来设计,最大特点是日志文件采用sequential logging,数据库中的日志文件,要求必须在事务提交时写入到磁盘,对响应时间的要求很高,所以设计为顺序写入的方式,可以有效降低磁盘寻道花费的时间,减少延迟时间。日志文件的顺序写入,虽然是物理位置是连续的,但是并不同于传统的连续写类型,日志文件的IO size很小(通常小于4K),每个IO之间是独立的(磁头必须抬起来重新寻道,并等待磁盘转动到相应的位置),而且间隔很短,数据库通过log buffer(缓存)和group commit的方式(批量提交)来达到提高IO size的大小,并减少IO的次数,从而得到更小的响应延迟,所以日志文件的顺序写入可以被认为是“连续位置的随机写入”,更关注IOPS,而不是吞吐量。
Go源代码中如何规避循环依赖
https://go-review.googlesource.com/c/go/+/432015
https://go-review.googlesource.com/c/go/+/430895/
src/go/build/deps_test.go
SpringBoot中使用Filter
某个SpringBoot项目,在application.yml中指定了context-path:
1 | server: |
这样一来,该项目所有的接口,根访问路径就都成了 ip:prot/shuang-api
math/rand包源码剖析
关于伪随机数生成算法
伪随机数生成器(pseudo random number generator,PRNG),又被称为确定性随机比特生成器(deterministic random bit generator,DRBG),是一个生成数字序列的算法,其特性近似于随机数序列的特性。PRNG生成的序列并不是真随机,因此它完全由一个初始值决定,这个初始值被称为PRNG的随机种子(seed,但这个种子可能包含真随机数)。尽管接近于真随机的序列可以通过硬件随机数生成器生成,但伪随机数生成器因为其生成速度和可再现的优势,在实践中也很重要