摘要: 主要考虑3个问题 1. 主要的操作 2. 扩容的策略 3. 数据迁移策略 其中,主要操作如下: 大概有3种设计方案 1. 普通方案:两倍扩容+挨个元素拷贝。 2. 仿造slice切片的方案:数组做底层存储+类似窗户的索引+ 更灵活的扩容+数组整体拷贝。 删除元素时不需要真的删除,只是移动索引。 增加 阅读全文
posted @ 2020-04-01 18:27 sicnu-yudidi 阅读(1343) 评论(0) 推荐(0)
摘要: 1. sync.Map 2. aufs文件系统。docker一个镜像可以运行多个容器的原理,就是借助aufs的联合挂载来实现写时复制的。 3. fork的实现。 附录1,2 4. Redis的COW 附录2 5. 文件系统的COW 附录 1. "Linux写时拷贝技术(copy on write)" 阅读全文
posted @ 2020-04-01 16:41 sicnu-yudidi 阅读(270) 评论(0) 推荐(0)
摘要: https://time.geekbang.org/column/article/215383 3个线程 // 附录2 如何解决主从同步的数据一致性问题 // 附录2 方法 1:异步复制 方法 2:半同步复制 方法 3:组复制 参考 1. "1、MySQL的复制原理以及流程" 2. "35丨数据库主 阅读全文
posted @ 2020-03-31 17:54 sicnu-yudidi 阅读(898) 评论(0) 推荐(0)
摘要: 主从同步主要的3个流程 每个步骤可能导致的延迟 1. 主库有大量的ddl dml dml 操作,拆分 ddl 操作,gh ost // 参考附录1,2 2. 日志传输 3. 备库的并行复制能力: (relay log的执行速度) 第3步是主要延迟因素,优化效果最明显 并行复制: 本来是单线程执行re 阅读全文
posted @ 2020-03-30 23:33 sicnu-yudidi 阅读(672) 评论(0) 推荐(0)
摘要: "21. Merge Two Sorted Lists" 递归 不需要dummy head, 因为可以确定是返回哪个头节点 https://leetcode cn.com/submissions/detail/57614448/ 迭代 Q: 为什么迭代解法需要用dummy A: 如果不用dummy, 阅读全文
posted @ 2020-03-29 12:20 sicnu-yudidi 阅读(137) 评论(0) 推荐(0)
摘要: 1. 栈溢出 "golang fmt递归引起stack overflow异常" 2. fmt包是很好的sync.Pool的使用例子 3. 顺便还问了sync.Once的源码 4. epoll 5. redis 6. 怎么避免内存泄露 阅读全文
posted @ 2020-03-28 21:24 sicnu-yudidi 阅读(151) 评论(0) 推荐(0)
摘要: 思路 实现 https://gitee.com/sicnu yudidi/interview/blob/master/%E5%89%91%E6%8C%87offer v2/%E9%93%BE%E8%A1%A8/82.%20Remove%20Duplicates%20from%20Sorted%20L 阅读全文
posted @ 2020-03-24 15:35 sicnu-yudidi 阅读(111) 评论(0) 推荐(0)
摘要: 题目地址 https://leetcode cn.com/problems/remove linked list elements/ imooc讲解地址 https://coding.imooc.com/lesson/82.html mid=2671 学习点 1. 感受不使用虚拟头节点,单独处理头节 阅读全文
posted @ 2020-03-24 13:17 sicnu-yudidi 阅读(90) 评论(0) 推荐(0)
摘要: 题目说明 数据结构设计 1. 操作 2. 关键点 实现1 实现2 https://leetcode cn.com/problems/lru cache/solution/man hua ceng ceng fen xi lrukan bu dong wo chi shi/ 实现3 采用双向链表,标准 阅读全文
posted @ 2020-03-23 20:26 sicnu-yudidi 阅读(165) 评论(0) 推荐(0)
摘要: 速记: 三指针逐个反转 or 递归 题意理解 1 2 3 null null3 nil) pre的由来: cur需要指向前一个节点,而从cur本身是不能直到前一个节点的,所以要用pre来保存前一个节点: 比如此时2不知道前一个节点是1 (nil3(next) nil) Q: 迭代继续或终止条件 A: 阅读全文
posted @ 2020-03-23 13:29 sicnu-yudidi 阅读(138) 评论(0) 推荐(0)