ReZero's Utopia.

ReZero's Utopia.

Everything is permitted.

K8s
Deployment一个Deployment拥有多个Replica Set,而一个Replica Set拥有一个或多个Pod。 一个Deployment控制多个rs主要是为了支持回滚机制,每当Deployment操作时,Kubernetes会重新生成一个Replica Set并保留,以后有需要的话就可以回滚至之前的状态。 1234567891011121314151617181920212223242526272829303132333435363738394041apiVersion: apps/v1kind: Deploymentmetadata: name: nginx-dep...
Thread
线程生命周期happens-before 程序顺序规则:一个线程中的每一个操作,happens-before于该线程中的任意后续操作。 监视器锁规则:对一个锁的解锁,happens-before于随后对这个锁的加锁。 volatile变量规则:对一个volatile域的写,happens-before于任意后续对这个volatile域的读。 传递性:如果A happens-before B,且B happens-before C,那么A happens-before C。 start规则:如果线程A执行操作ThreadB.start()启动线程B,那么A线程的ThreadB.start(...
Go exception handle
原文链接:https://blog.golang.org/error-handling-and-go 1234567func Open(name string) (file *File, err error)f, err := os.Open("filename.ext")if err != nil { log.Fatal(err)}// do something with the open *File f 函数的返回值附带一个 error 作为异常返回,当出现异常时其不为 nil error 是接口类型,只包含了一个字符串做描述,因此可...
AQS
AQSCLH1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495package com.hand.hcf.app.base.bigdata;import java.util.concurrent.atomic.AtomicReference;/** * @version: 1.0 *...
Leet-Code
1234567891011121314151617181920212223242526272829303132333435363738//Given a 2D binary matrix filled with 0's and 1's, find the largest square cont//aining only 1's and return its area. //// Example: //// //Input: ////1 0 1 0 0//1 0 1 1 1//1 1 1 1 1//1 0 0 1 0////Output: 4// Relate...
Algo tips
Binary Search123456789101112131415int binarySearch(int[] nums, int target) { int left = 0; int right = nums.length - 1; // 注意 while(left <= right) { int mid = left + (right - left) / 2; if(nums[mid] == target) return mid; else if (num...
TCP
TCP/IP网络连接 注意网络状态的变化 12syn_sent -> established -> fin_wait1 -> fin_wait2 -> time_wait > closedlisten -> syn_rcvd -> established -> closed_wait -> last_ack =======> closed 三次握手 SYN 失败 RTO变化:2**(cat /proc/sys/net/ipv4/tc...
Java HashMap & Concurrent Hash Map
为啥拉链用尾插不用头插? jdk 1.7 用的头插,但头插的问题就是resize:因为hash取值后放置是从后往前(头插,逆序链表方向)的,但是在resize时会重计算hash,此时是顺序遍历方向,那么就可能出现一开始A头插在B前,rehash时B后进行rehash导致B头插在A前。这样AB的顺序resize后就不同了。这样就会使得多线程时对引用的指向调整有问题,有可能造成循环链表了。尾插法的顺序和rehash时遍历的顺序一致自然就不会有这个问题。 Collections.synchronizedMap 内部维护了一个 map 用来引用需要改造的map,通过加 mutex 排他...
Mysql InnoDB
Mysql InnoDB InnoDB In-Memory Structures1、Buffer Pool: 未落盘前数据的缓存位置 - LRU,链表 Change Buffer: 要修改数据不在内存中时对应页修改的记录位置 记录到 Change Buffer时,同时记录 redo log,然后再慢慢把数据 load 到内存,load 过来后,再把 Change Buffer 里记录的修改,应用到内存(BufferPool)中,这个动作叫做 merge;而把内存数据刷到磁盘的动作,叫 purge: change buffer 只应用于二级索引(辅助索引),因为聚簇索引是唯一的,即每...
avatar
ReZero
大屁水饺的理想国.