跳到主内容

Scala's types of types(中文翻译)

Scala's Types of Types

在scala中各种不同的Types

工作仍在进行

尽管我在这篇文章上已经花了有些时间,这里仍有很多事情要做。当你看到某个章节被标了"x", 这表示它需要被重做或者在某些方面还未完成。

类型归因

B-tree 锁技术研究(翻译)

这是CMU高级数据库推荐的一篇论文,详细讲诉了B树锁技术的各种变体的区别和实现。是一篇不可多得的论文。 需要细读,所以干脆就把关键的地方翻译。原论文题目为《A Survey of B-Tree Locking Techniques》。

更多…

cmu15-721 lecture note

*

lecture2 内存数据库介绍

内存数据库和磁盘数据库的区别

DDBMS(Disk-oriented Database Management System)的很多设计是建立在磁盘模型上的,很多设计都是为了避免磁盘缺陷而设计的。但如今,硬件的改变使得大多数的数据库都能够存放在内存中,在这样的背景下,DDBMS的某些设计就不再是最优的。

Buffer Pool

因为DDBMS的数据都存放在硬盘或ssd中,磁盘读的速率比内存的速率低3个数量级, 因此需要使用缓存池来缓存磁盘页。

  • 缓存池的基本算法

    GetPage(pageid):

    • 如果不在缓存池中,从磁盘中使用pageId读取该页p,如果缓存池中有空余空间,则直接添加到缓存池中。
    • 如果没有空余空间,则按选举算法选举出某一页, 如果该页dirty位为假,直接移除该页,存放页p。
    • 如果该页dirty位为真, 在移除前将内容写入磁盘,其他操作如上。

    如果所有的数据都在内存中的时候,就不必再使用buffer poll。

    内存数据库的概念在19世纪80年代就提出来了,但是近期才由于硬件的发展而开始可行。

不要使用MMAP

因为一个好的数据库必须要自己掌控文件读写的时间点。OS不知道数据库中的知识,无法优化。

DNS学习

DNS是一个经典的分布式名字查询、管理系统。在一开始,

recursive query的好处

recursive query的好处分为以下几个部分。对于客户端来说, 这种策略简化了客户端的代码设计,不再需要为处理type为ns这种场景来写递归函数,解耦了客户端和dns服务器。 对于服务器来说,recursive query的过程中能够产生一系列的域名解析中间结果,包括一些其他域名服务器,dns服务器由此能够做一些缓存策略,加快整个网络的速度。

DNS's hierarchical design的好处

  1. 分布式
  2. 分权

Drawbacks to DNS's design

没有处理认证,容易被伪造。