Notes
B Tree
https://cstack.github.io/db\_tutorial/parts/part7.html
https://cstack.github.io/db\_tutorial/
https://www2.cs.duke.edu/courses/spring17/compsci316/lectures/15-index-qp.pdf
https://stackoverflow.com/questions/33009174/postgres-usage-of-btree-indexes-vs-mysql-btrees
https://ieftimov.com/postgresql-indexes-btree
http://patshaughnessy.net/2014/11/11/discovering-the-computer-science-behind-postgres-indexes
http://momjian.us/main/presentations/internals.html
MySQL InnoDB B+: https://blog.jcole.us/2013/01/10/btree-index-structures-in-innodb/
结构的区别:
B和B+树的一个最区别点,就是所有的Key数据都会出现在叶子节点,中间节点的Key也会重复出现在叶子节点,但是B树就不会。正是因为
这个原因,所以说,B+树才能把所有叶子节点连接起来,用以扫描所有元素。而B树做不到这一点。
B+树的索引数据至多出现两次,一个可能是在非叶子节点,一个是在叶子节点。B树的索引数据只会出现一次。
B树的查找可以在中间节点终结(如果命中的话), B+树的查找肯定都要终结在叶子节点,无论是命中还是没命中。
B+树如何做范围查询,先查找到低值,然后,在叶子节点的链表中,依次扫描直到当前值大于高值。
因为结构的不一样而导致的性质的区别:
应用场景的区别:
https://en.wikipedia.org/wiki/Producer%E2%80%93consumer\_problem
https://www.tutorialspoint.com/java\_concurrency/concurrency\_fork\_join.htm'
http://thesecretlivesofdata.com/raft/
https://yeasy.gitbooks.io/blockchain\_guide/content/distribute\_system/bft.html
mutex, semaphore, monitor
https://stackoverflow.com/questions/7335950/semaphore-vs-monitors-whats-the-difference
semaphore: P & V
monitor?: wait and singal
monitor lock?
monitor vs condition sychronization
http://www.comp.nus.edu.sg/~abhik/CS3211/lectures/Lec6.pdf
https://www.slideshare.net/pgdayasia/introduction-to-vacuum-freezing-and-xid
分布式系统?分类,要解决的问题。分布式一致性算法,HA, 。你要能娓娓道来 Paxos Ceph,Cassandra, GFS,
JDK tool? 线上系统必备。也要学习
TCP? 拥塞控制,滑动窗口,这是TCP的基本,核心和必备,你要要会。
如果有20万并发,QPS? 高并发系统的设计思路和方法。
所做系统的设计与难点? 如何做到HA,高可用?所做系统的复杂度在哪里?如何处理高并发? DP? 都需要刻苦学习,脚踏实地。 OpenStack, Unity,
如何能有这种经验? OpenStack?
不仅要知道设计理念,更要知道如何实现的?知道理念没用,你有没能力创建一个? "What I cannot create, I do not understand" -- Richard Feynman