编辑
2023-12-06
数据库理论基础
00

BoltDB是一个纯Go语言实现的持久化解决方案,用于存储键值对数据。它提供了简单、快速和可靠的数据库功能,适用于不需要完整数据库服务器(如Postgres或MySQL)的项目。

  1. 安装BoltDB库:使用以下命令安装BoltDB库:
$ go get github.com/boltdb/bolt
编辑
2023-12-06
后端
00

Pauseless GC(无停顿垃圾回收)是一种垃圾回收器的概念,旨在减少或消除垃圾回收过程中的停顿时间。C4垃圾回收器是一种实现了Pauseless GC的具体垃圾回收器。

Pauseless GC(无停顿垃圾回收)

Pauseless GC是一种垃圾回收器的概念,它旨在解决传统垃圾回收器在执行垃圾回收时可能导致的应用程序停顿问题。传统的垃圾回收器在执行垃圾回收时,需要暂停应用程序的执行,以便进行垃圾对象的标记和清理。这种停顿时间可能会对应用程序的性能和响应时间产生负面影响。

编辑
2023-12-06
后端
00

Python的垃圾回收(Garbage Collection,GC)机制是Python自动管理内存的重要组成部分。Python使用了多种垃圾回收算法,包括引用计数器、标记清除和分代回收等。下面将详细介绍Python的垃圾回收机制,并结合源码进行解析。

1. 引用计数器

Python的垃圾回收机制首先使用了引用计数器(Reference Counting)算法。每个对象都有一个引用计数器,用于记录对象被引用的次数。当引用计数器为0时,表示该对象不再被引用,可以被回收。

c
// 对象的基类,拥有双向链表和引用计数 typedef struct _object { struct _object *_ob_next; struct _object *_ob_prev; Py_ssize_t ob_refcnt; struct _typeobject *ob_type; } PyObject; typedef struct { PyObject ob_base; Py_ssize_t ob_size; } PyVarObject; struct _longobject { PyVarObject ob_base; digit ob_digit[1]; };
编辑
2023-12-04
后端
00

etcd是一个使用Go语言编写的分布式键值存储系统,是CNCF(Cloud Native Computing Foundation)的核心项目之一。它提供了高可用性、一致性和分布式事务的支持。

1. 服务端设计

etcd的服务端模块是etcd的核心模块,它定义了主要的接口和数据交互格式,并解决了以下问题:

  • 接收客户端的请求并对节点进行分发
  • 感知集群成员变动,对成员进行通知
  • 同步或启动恢复快照等
编辑
2023-12-04
后端
00

ETCD的Raft一致性算法原理

ETCD是一个使用Raft一致性算法来实现分布式一致性的高可用键值存储系统。Raft算法是一种易于理解和实现的一致性算法,它通过选举一个leader节点来协调分布式系统中的数据复制和一致性。