数据结构与算法

【学习笔记】【数据结构与算法篇】复杂度分析

复杂度分为两类:时间复杂度和空间复杂度 我们为什么需要复杂度:用来衡量执行一个算法时,数据规模与时间和空间的关系 那什么是复杂度?怎么定义?: 时间复杂度:定性描述算法运行时间的函数 空间复杂度:对一个算法在运行过程中临时占用存储空间大小的量度 请注意,是定性描述。 表示方法: 用 big O 表示法表示,形如 O(n2) 时间复杂度量级: 常数阶 O(1) 对数阶 O(logn) 线性阶 O(n) 线性对数阶 O(

  • liaojl
2 min read
Hyperledger

Hyperledger 1.4.3 单机单节点部署

单机单节点指的是一个 order (排序服务),一个 Org (组织),一个 peer (节点)。 步骤: 准备生成工具 准备证书和区块的生成配置文件 生成公私钥和证书 生成创世区块 生成通道配置区块 准备docker配置文件 启动Fabric网络 创建并加入Channel 安装与运行智能合约 准备生成工具 为了轻量化,我们不去下载 bin 目录,通过 docker 来获取生成工具。 # 包含:cryptogen, configtxgen 等工具 docker pull

  • liaojl
12 min read
分布式系统

分布式系统:数据分布方式

哈希方式 将哈希值与机器中的机器建立映射关系,将不同哈希值的数据分布到不同的机器上 缺点: 扩展性不高,一旦集群规模扩展,几乎所有的数据需要被迁移并重新分布 解决方式,将对应关系作为元数据由专门的元数据服务器管理 数据倾斜问题 data skew 按数据范围分布 将数据按特征值的值域范围划分为不同的区间,使得集群中每台服务器处理不同区间的数据 当某个区间的数据量突破某个阈值时,将区间分裂拆分为两个区间 需要元服务器,维护数据分布信息 按数据量分布 将数据视为顺序增长的文件,并按照一定大小划分为 chunk,需要元数据服务器记录数据分布信息 一致性哈希 使用一个哈希函数计算数据或数据特征的哈希值,令其值域为一个封闭的环,即其输出的最大值是最小值的前序。将节点随机分布到此环上,每个节点负责处理从自己开始顺时针至下一节点的全部哈希值域上的数据 节点在环上的位置作为元信息 优点:可以任意动态添加、

  • liaojl
2 min read
分布式系统

分布式系统:一致性级别

分布式系统一致性级别 强一致性 任何时刻任何用户或任何节点都可以读到最近一次成功更新的数据。 实现强一致性的一致性算法 Two-Phase Commit, 两阶段提交 Three-Phase Commit,三阶段提交 Paxos Raft Paxos 是目前最重要、应用最广的算法。 世界上只有一种一致性协议,就是Paxos, 其他协议要么是paxos的简化,要么是错误的 当然,严格地讲,Paxos 和 Raft 应该是共识算法,没有一致性强弱之分 单调读一致性 任何时刻,任何用户一旦读到某个数据在某次更新后的值,这个用户不会再读到比这个值更旧的值。 会话一致性 任何用户在某一次会话内一旦读到某个数据在某次更新后的值,这个用户在这次会话过程中不会再读到比这个值更旧的值。

  • liaojl
1 min read
2693491512@qq.com