首页

来自智得网
跳转至: 导航、​ 搜索

精选文章

OceanBase查看全文
OceanBase是阿里巴巴开源的一款NewSQL数据库。

存储引擎 数据库存储引擎一般有两种实现 原地更新(update-in-place ):较常见于传统关系型数据库( MySQL 、Oracle ),这些数据库一般采用的 B+Tree 的结构,有较好的数据局部性,对扫描比较友好。update-in-place 更新记录时直接覆盖原有的数据,会产生大量的随机写,写的过程中会存在并发问题,一定程度上会影响写入性能。 日志更新(log-structure storage): LevelDB 、RocksDB 、HBase 、BigTable 等数据库采用的 LSMTree 结构都是基于日志的。日志更新都采用追加写的模式,过程中不需要锁,不存在并发问题,而且不会有空间碎片,写入性能较高,基于日志的存储一般需要通过异步 compaction 进行GC以及合并各个层级的数据。但是基于日志的存储读路径较长,例如 LSMTree 结构在扫描时需要读取 memtable 、L0层及其余层的数据。 OceanBase 的存储引擎采用日志更新的模式,通过 LSMTree 实现,OceanBase 将数据分为基线数据和增量数据等两部分。 基线数据是指磁盘上已经持久化的数据(SSTable),因为 LSMTree 使用追加写的方式,所以 SSTable 一旦持久化之后,数据一般不再发生变化。

增量数据是指存放在内存的数据(MemTable),所有写入操作都会将数据先存放在增量数据,通过 Redo Log 来保证数据不会发生丢失,MemTable 的数据会在存储容量达到一定阈值时会触发冻结操作( Frozen MemTable ),冻结之后的…
DNS查看全文
DNS解析过程.png
DNS是域名服务系统。

TCP/IP协议中的IP层都是通过IP地址进行通信的,但是IP地址是一串数字,不利于记忆,为了更加便于通信,需要名字服务,可以通过容易记忆的命名来替代IP地址,通信过程中再通过名字服务将名字更换为IP地址。 IP的名字服务就是域名。 域名一般通过三级结构构成,A.B.C,例如www.aigetting.com,其中com是顶级域名,aigetting.com是权威域名。 DNS系统本质就是通过域名查询IP的地址的系统,DNS提供了一个分层的命名空间,企业和个人可以将名字注册到DNS系统。通信的时候可以通过这些名字获取实际提供服务的服务器的IP地址。 DNS也是一个分布式的数据库,可以可靠的为全球提供服务。 DNS服务器 域名一般是多层结构,按照“.”作为分隔符可以将域名切分为多个层次,不同层次对应不同的命名空间。 例如www.aigetting.com,其中com是顶级域名,aigetting.com是二级域名,www.aigetting.com是三级域名。 DNS解析的过程实现是首先请求DNS解析器,例如请求www.aigetting.com,DNS解析器会首先查询是否已经缓存了该域名,如果有缓存则直接返回。 如果DNS解析器没有缓存该数据,则会请求根域名服务器,根域名服务器会根据访问的顶级域名返回对应的顶级域名服务器,比如返回处理com顶级域名的顶级域名服务器,顶级域名一般通过组织(例如.com、.edu 或 .org)和国家(例如.cn、.hk、.us等)进行区分。 在路由到顶级域名服务器之后,会讲DNS请求转发到对应的权威域名服务器。权威域名服务器会返回对应的IP地址信息。

根据职责可以把DNS服务器分为根域名服务器…
Spanner查看全文
Spanner是Google推出的一款NewSQL数据库,其支持的特性包括可伸缩,多版本,全球分布,同步复制等。它是第一个支持全球分布数据和外部持久化的分布式系统。

在最高的抽象层级,Spanner通过Paxos状态机将数据分布在全球范围的存储上,数据复制可以用于本地复制和全球范围内的可用性,客户端在不同的副本之间可以实现自动的failover,Spanner可以根据数据量以及服务节点的变化自动分片。其可以自动聚合不同服务器的数据用来进行负载均衡。Spanner被设计为可以支持数百个数据中心和数T行的记录。应用可以用Spanner实现高可用,即时面对大范围的自然灾难,也可以通过复制数据来实现。

Spanner的主要目标是管理跨数据中心的复制,但是也实现了重要的数据库特征以及分布式基础设施,

热门分类

算法题库

精选内容