DDF's Blog

盗了一张图,小小确幸一下
mongo官方文档对hint的解释如下: The $hint operator forces the query optimizer to use a specific index to fulfill the query. Specify the index either by the index name or by document. hint的命令行用法: db.users.find().hint() mongo中使用exp
环境变量GOPRIVATE GOPRIVATE升级到go.1.13不得不调整的一个变量。表示引用到的modules是私有的,无须从proxy下
P是在Go1.1引入的概念,初始默认等于CPU核的数量。P只是一个逻辑概念,跟CPU也没有任何关系。 源码go/1.13.4/libexec/
文章主要介绍通过样本方差来了解数据集变化的原理。 我们对两个数据集做观察,数据集A和数据集B: A: 1,2,3,4,5 B: 2,3,3,3,4 对于定量数据集,最常用、也最容易理解的集
给自己的工作制定一套系统的指导体系,或者处理问题的方法。要想从无休止的重复劳动中解脱出来,就需要对重复劳动做提炼。 引文观点 Do planning before building something new. Capture this plan
在订单交付系统中,做到保证权益数据的实时一致性非常难,很多都选择保证数据的最终一致性。在我们的生产环境中,为了保证数据的最终一致性,专门有一
引言 结合文章我读过的最好的epoll讲解,认识select和epoll的基本工作原理。 假设:启动一个WEB服务,服务端每accept一个连接
调用链trace系统可以帮助技术人员快速的定位问题,查看整个请求的调用链路,及各个链路的耗时情况。方便技术人员针对性的对服务进行性能优化。 概
测试提Bug的基本要素,主要包括: 期望得到的结果 实际得到的结果 如何重现问题 生产环境出了故障,当然也脱离不开这3个要点。只不过相对重现问题会略
在事务操作中,要求事务的各个阶段都使用一个Conn连接。在连接被关闭之前,还需要执行rollback操作。 文章翻译了Go源码下databas
里氏替换 Let Φ(x) be a property provable about objects x of type T. Then Φ(y) should be true for objects y of type S where S is a subtype of T 本质上就是类设计中的继承,它强调类所实现的行为。参数的类型指
清除无效连接 在database库下清除过期连接时,使用了如下的代码逻辑。其中freeConn是空闲连接池,d是连接可被重复使用的最长时间,n
ObjectId在mongo中是自动生成的_id字段,充当数据表的主键ID。按照_id排序基本上等于按照记录的创建时间排序,但还是必须注意:
一个人的时候多一点努力,才能让自己的爱情,少一点条件,多一点纯粹 Quorum 在有冗余数据的分布式存储系统中,数据会在不同的机器上存放多份拷贝。但是同一
任何事情的成功都需要掐准时间 上一节mongo EOF中,关于容器的配置,只是粗略的使用了Docker-Compose-MongoDB-Repl
2019-04-27
很多事情仅仅的是严肃的提出问题都感觉很难,更何况还得要先发现它。 Question 描述 项目中使用:github.com/globalsign/mgo这个库,
非淡泊无以明,非宁静无以致远 Question 关于kafka中partation和consumer的是如何执行分配的。今早骑自行车的时候突然想起这个问题。它
这世上太多的人,宁愿吃生活苦,也不愿吃自律的苦。大概是因为生活的苦,躺着就来了,而自律的苦,得自己去找。但只有吃得下自律的苦,才有成功的自由
别抱怨,也别自怜,所有的现状都是你自己选择的 Scheduler Trace GODEBUG 变量可以控制运行时内的调试变量,参数以逗号分隔,格式为:name=val。本文着重点在调度
当你眼里只有赚钱的时候,你就永远无法把事情本身给做好,收获的也会很有限,最后可能还赚不到钱。- From Myself 下面的代码是github.com/gin-
真的猛士,敢于直面惨淡的人生,敢于正视淋漓的鲜血。这是怎样的哀痛者和幸福者?然而造化又常常为庸人设计,以时间的流驶,来洗涤旧迹,仅使留下淡红
随风要稳,逆风要浪 timer The Timer type represents a single event. When the Timer expires, the current time will be sent on C. 下面使用timer实现在固定时间点执行task任务。 处理思路:每次在执行task前
想清楚了就去做,做的时候不要再回头想。 OS Scheduler 在操作系统中保存了运行的进程列表,以及进程的运行状态(运行中、可运行及不可运行)。当进程运行时长超
我们流连于事物的表象,满足浅尝辄止的片刻欢愉,却几乎从不久留。我们在人生的道路上争先恐后,却吝于用片刻思考目标和方向。 概述 至今没有接触过My
Sharding 可以简单地认为Sharding就是对数据进行分组的过程,即将整个大的数据集按照某种规则分割成多个小数据集。类似于网站服务,针对不同的服务,
花繁柳密能拨开方见手段,风狂雨骤时可立定才是脚跟。 引言 在MySQL处理事务的过程中,遇到如下报错: Error 1205: Lock wait timeout exceeded; try restarting transaction 结合日志信息,很快的定位
Tables are automatically partitioned horizontally by HBase into regions. Each region comprises a subset of a table's rows 引言 HBase对Table提供了自动拆分的功能,非常好奇,它的自动拆分是如何实现的呢?在工作中,我们经常
把事做成的才是赢家,在口头上压倒对手,真的没有那么重要! Whirlwind introduce 当对象不再被引用时,对象不会立即被垃圾回收。也不存在任何子系统来专门记录使用的内
2019年计划通过福利彩票发家致富的,可以好好看一看这篇博客。作为新年彩蛋来送给大家,也希望大家能真的中大奖。—— 新年快乐,给每个有梦想的程
思来想去,决定总结一下垃圾回收机制。引用计数与我结缘最早,也比较简单、基础,遂决定从引用计数入手。 —— 不管人非笑,不管人毁谤,不管人荣辱,任
时间飞逝 如一名携带信息的邮差 但那只不过是我们的比喻 人物是杜撰的 匆忙是假装的 携带的也不是人的讯息 为什么使用grpc 主要包括以下两点原因: protocl bu
关于浮点数,为什么它生来就可能存在误差?带着好奇查阅了一些介绍,然后做了简单汇总。这只是一段知识的开始,后续还会继续完善。 —— 荡荡上帝,下民
全称Universally Unique Identifier,UUID占128bit,也就是16个英文字符的长度(16byte),需要强调的是,它的生成
Gin对net/http包做了封装,支持路由、中间件等特性,极大的方便对Http Server的开发。文章通过一个Test例子,来简要介绍。对
首先访问Git的地址:Godog,它也是用来做Go Test一样的事情,只是换了一种形式。引入了一个概念:BDD。通俗的讲,就是虚拟现实场景,
在调用第三方请求时,正确使用Client也不是一件非常容易的事。 下面是截取的一段描述,建议Client或Transport在整个服务期间最好
版本 0.00 我说:version dependent 表示我们的思考时,应该依赖具体的版本。举个例子,你把2015年看到的一些redis机制拿到现在跟别人谈论,很容易
版本 0.01 在使用wireshark分析https时,加密传输的内容会解析失败。而NSS可以存储TLS握手过程中的Key,用于解密。很好奇,它是如
版本 0.02 在服务运行期间,针对所有goroutine共用一份数据的情况,比如配置信息,都可以选择只读取一次配置文件。但还是要特别注意: 单例中不要
MySQL的事务是数据一致性的典范,事务内的执行要么都成功,要么都失败。但业务系统涉及系统间的相互调用,涉及的数据库也不尽相同,所以实现数据
introduction duck typing 很形象的解释了interface的本意。它是一种特别的数据类型,内部声明了一组要实现的方法集合,任何实现了这些方法的数据类型都可以认为
序 这篇文章详细介绍了,net/http包中对应HTTP的各个阶段,如何使用timeout来进行读/写超时控制以及服务端和客户端支持设置的ti
TCP在数据传输中有receive buffer和send buffer。通过连接中的window size可以看出数据的读取情况。 sliding window clien
草稿0.0 sync.Once Go语言通过sync包可以方便的实现线程安全的单利模式。最叹为观止的是,sync包的实现如此简单。 // Once is an object that will perform exactly one action. type Once struct {
BigCache的作者做了详细的阐述,尽在这里:Writing a very fast cache service with millions of entries in Go。不得不说,作者的表述非常完美,给它点赞。GitHub
感觉error确实没啥可说的,这个简单到极致的package总共也不超过10行有效代码。而且常用的fmt也提供了很方便的返回error的方法
Shell是对Linux命令的深加工,用得好,事半功倍。 本来只想加深Array的用法,但一不小心,又变成了一篇基础大全。 比较运算 习惯在if语