- 博客(62)
- 资源 (3)
- 收藏
- 关注
原创 Tesseract:在线高性能表结构变更方法(VLDB23)
支持在线的、事务性的表结构变更对DBMS的线上使用是至关重要的。但是现有的DBMS对这个功能支持不足。Tesseract提供了一种在数据库系统内部原生支持DDL的方法。通过合理使用MVCC和快照隔离,可以将DDL视为一种数据修改(DDaM),从而支持上述在线事务性的表结构变更。实验结果显示,Tesseract能够在执行DDL的同时提供高性能的DML。
2024-09-18 00:04:11
916
原创 Google Vortex流式存储引擎分析
面向写入和读取,使用不同的存储格式,从而兼顾写入性能和读取性能使用thick client library,减轻服务器的压力写入需要server的,但是读取可以不要server,直接让客户端从分布式存储上读,从而降低存储成本。
2024-09-17 23:51:02
735
原创 Google Dremel和parquet的复杂嵌套数据结构表征方法解析
转载请注明出处。作者:archimekai核心参考文献: Dremel: Interactive Analysis of Web-Scale Datasets。
2024-03-04 00:00:38
1067
2
原创 为什么postgresql中的字符串排序结果会不一样
转载请注明出处,作者:https://blog.youkuaiyun.com/archimekai/
2024-02-25 14:24:27
1161
原创 RocksDB是如何实现存算分离的
单机的磁盘(存储能力)和CPU(计算能力)的配比常常不均衡,有时计算能力会有富裕,有时存储能力会有富裕。积少成多就会导致存储空间或计算能力的浪费。如果能把磁盘放在一个池子里,就能减少要预留的空间(100个服务,各预留1TB,vs 100个服务,总共预留10TB),避免空间浪费。对zookeeper或etcd,paxos或raft有一定了解的读者能发现,这一问题是经典的分布式共识问题。要达成共识的对象是当前哪个进程能够修改数据。该技术类似于一种基于单调递增时间戳的分布式锁。
2024-01-31 22:31:24
1151
原创 DB之家:数据库开发工程师的衣柜(数据库性能优化点子集合)
减少布隆过滤器所需要的内存。参考文献:Mun, J. H., Zhu, Z., Raman, A., & Athanassoulis, M. (n.d.). LSM-Trees Under (Memory) Pressure.
2024-01-31 20:40:50
324
原创 初探Spark SQL catalog缓存机制
进一步对Spark SQL的报错进行分析,可见报错点是在org.apache.spark.sql.execution.datasources.jdbc.JDBCRDD.compute(JDBCRDD.scala:320)。从代码中可见,Spark直接使用catalog中缓存的表结构拼接SQL语句下发,直到SQL语句真正被pg执行时,才识别到c1这一列已经不存在的错误。先说结论:Spark SQL catalog中对表结构的缓存一般不会自动更新。
2024-01-10 21:22:36
717
原创 postgresql vacuum流程分析
VACUUM是postgresql MVCC机制不可分割的组成部分。postgresql在管理同一个元组的多个版本时,采取在堆表页面上从老版本到新版本放置元组的方法,每个元组都记录了xmax和xmin用于判断其可见性。这样的好处是(1)在索引键没有更新时,btree始终指向最老的元组,更新非索引键的数据无需更新btree中的指针(2)回滚的事务时无需专门进行undo(对比MySQL有专门的回滚段,如果发生了事务回滚时需要从回滚段中把上个版本的数据还原出来的)。
2023-12-23 21:55:35
1191
原创 分布式数据密集型系统设计哲学
系统是有内涵和外延,有边界的。当关键需求的变化超过边界,系统现有的架构也就无法支持了。产品经理的需求变化如果超过了一定的度,就要求软件系统发生质变才能支撑。为了方便团队统一认识,达成一致,尝试从哲学层面总结一些大家都认同的系统设计哲学。关键需求决定关键架构,关键需求不明确,架构也就定不下来。奥卡姆剃刀原理:如无必要,毋增实体。
2023-05-25 20:32:22
144
原创 跨语言环境如何高效开会
免得说了半天发现说的不是同一件事。语言表达欠佳的,加个翻译(否则互相听不懂)所有的人都按金字塔原理来说话,先说结论。提问完一个问题,再提另一个问题。别着急,让每个人把话说完。
2023-05-11 09:54:47
132
原创 两阶段提交(two phase commit,2PC)故障恢复原理分析
很多分布式方面的书籍和网络上的很多博客都有关于两阶段提交的介绍。但是遗憾的是,大部分文章只介绍了两阶段提交在正常状况下的处理流程,并未介绍出现故障时,两阶段提交如何进行故障恢复,确保事务的正确性。这就好像上了一道宫爆鸡丁,只是把其中的花生吃掉了,但是没有吃鸡丁,让读者读后无法掌握两阶段提交的精髓。基于此,笔者试图较为完整地介绍基本的两阶段提交协议,特别是介绍其日志机制,以及两阶段提交协议在面对进程重启(Failure,F)和网络超时(Timeout, T)这两种典型故障时是如何进行故障恢复的,以飨读者。
2023-03-19 23:47:41
732
原创 腾讯高性能图计算框架Plato代码阅读(二) 图加载
腾讯高性能图计算框架Plato代码阅读(二) 图加载在pagerank计算逻辑中,图加载和图切分是通过如下调用完成的: // init graph plato::graph_info_t graph_info(FLAGS_is_directed); auto pdcsc = plato::create_dcsc_seqs_from_path<plato::empty_t>( &graph_info, FLAGS_input, plato::edge_format_t
2022-01-29 02:05:05
1213
原创 腾讯高性能图计算框架Plato代码阅读(一) 进程启动及环境初始化
腾讯高性能图计算框架Plato代码阅读(一) 进程启动及环境初始化archimekai archimekai@163.com引言Plato是腾讯开源的高性能分布式图计算框架。Plato吸收了Gemini和KnightKing两个学术界系统的优秀思想,常见算法的执行性能可以比Spark GraphX快一到两个数量级,同时内存消耗比Spark GraphX降低一到两个数量级。接下来我同大家一起阅读plato源代码,学习其中的设计方法和编程技巧。进程启动及环境初始化进程启动命令进程启动命令在 run
2022-01-24 23:45:50
2537
1
原创 深度学习模型调优建议
深度学习模型调优建议数据、算法、超参等领域的常用调优建议。数据优化data.01 确保各个分类中的样本数目相近当数据集中各分类的样本数目不均衡时,需要进行调整以使每个分类对训练有程度相近的影响。可以考虑以下方法:基于数据重采样的方法:对样本数较少的类过采样对样本数目较多的类欠采样混用上面两种方案。通过上述重采样,使得训练过程中每个类出现的样本数相对均衡。需要注意的是,过采样有过拟合的风险(Cao et al., 2019)。基于代价的方法:loss函数不变,根据每个类中的样本数目
2021-11-04 17:06:04
1651
1
原创 Ray和hoplite 强化学习、基于任务的分布式系统、容错高性能的集合通信
...
2021-10-20 19:54:40
269
原创 深度学习框架与动态shape
动起来更快?从Nimble和DISC看深度学习框架与动态shape•2021年9月25日 archimekai@163.com•什么是动态shape/动态模型•静态模型:每个算子的输入输出shape均在图执行前已知。•编译期就知道形状,并且执行期保持不变•张量内存预先分配•动态模型:包括控制流、动态数据结构(例如tree-structured long short-term memory)、动态形状的模型•张量形状、内存不能预先知道••使用动态图的主要领域•自然语言处
2021-09-26 10:58:48
2879
原创 团队管理思考
团队能力建设要能长久保持一个方向的投入,才能积淀下足够的技术深度,才能更好面对将来的问题。如果总是更换团队的技术方向,则有以下坏处:团队技术方向和成员职业规划不一致,导致团队不稳定,失去成员,甚至失去核心成员。团队在新技术方向上缺乏积累,短期内难以有较大的成功(除非能补充到新方向的专家)团队在新技术方向上缺乏积累,需要大家花大量时间学习掌握新领域,导致团队在一段时间内产出下降,或者需要靠加班来弥补进度、经验、技术上的不足。成员梯队建设.........
2021-09-19 12:30:48
219
转载 常用深度学习模型调优方法
常用调优建议 数据优化 确保各个分类中的样本数目相近 获取更多数据 归一化数据 对数据做变换以使数据服从均匀分布 算法优化 参考领域中的已有工作 优化模型中每一层的大小 模型层数的选择和优化 权重初始值的选择和优化 激活函数的选择和优化 优化器的选择和优化 早停法 超参优化 学习率的选择和优化 batch size的选择和优化 学习率和batch size的联合优化 动量值的选择和优化 权重衰减参
2021-09-03 12:33:10
5473
转载 精度调优checklist
常见数据集问题 ds.01 数据集中缺失值过多 ds.02 数据的标签错误 ds.03 数据集每个类别的样本数目不均衡或部分类别训练样本不足 ds.04 训练环境上的数据集同标准数据集不同 常见数据处理算法问题 dp.01 未对数据进行归一化或标准化 dp.02 推理时数据处理方式和训练集不一致 dp.03 训练时没有对数据集进行混洗 dp.04 涉及到数据补齐时,补齐方式错误 dp.05 并行训练时多节点分片方式错误 常见超参问题 hp.01 学习率过大或过小
2021-09-03 12:29:33
262
转载 MindSpore模型精度调优实战(三)常见精度问题简介
本文转载至https://bbs.huaweicloud.com/forum/thread-119271-1-1.htmlMindSpore模型精度调优实战(三):常见精度问题简介MindSpore团队引子:在模型的开发过程中,精度达不到预期常常让人头疼。为了帮助用户解决模型调试调优的问题,我们为MindSpore量身定做了可视化调试调优组件:MindInsight。我们还梳理了针对常见精度问题的调试调优指南,将以“MindSpore模型精度调优实战”系列文章的形式分享...
2021-04-07 15:55:45
1121
转载 对于一个准确率不高的神经网络模型,应该从哪些方面去优化?
本文转载自https://zhuanlan.zhihu.com/p/353715732模型准确率不高的常见原因模型的准确率不高,模型的metrics达不到预期,常见的原因有以下几方面:1、数据集问题数据集中缺失值过多 数据集每个类别的样本数目不均衡 数据集中存在异常值 数据集中的数据对预测结果帮助不大(例如使用年龄预测性别)2、数据处理算法设计和实现问题数据处理参数有误 未对数据进行归一化 特征提取算法(如果使用了)存在错误 train和validation数据处理方式不.
2021-03-02 14:35:01
10132
转载 有没有什么可以节省大量时间的 Deep Learning 效率神器?
在Deep Learning的过程中,处处都有挑战: 训练过程难以观察、多次实验管理分析手段原始效率低、人肉调参费时费力、精度性能问题难定位等。推荐使用MindSpore生态下的可视化调试调优工具——MindInsight,MindInsight中集成了精度调优、性能调优、脚本迁移等功能,帮助你高效管理实验,快速定位问题。⦁ 方便地观察训练过程,高效对实验进行记录和分析在MindSpore中训练,只需要修改几行代码即可使用SummaryCollector轻松观察训练过程,管理分析多次实验...
2021-02-28 10:51:28
326
转载 MindSpore模型精度调优实战(二)精度调试调优思路
转载自 华为云论坛https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=106624MindSpore模型精度调优实战(二)精度调试调优思路MindSpore团队引子:在模型的开发过程中,精度达不到预期常常让人头疼。为了帮助用户解决模型调试调优的问题,我们为MindSpore量身定做了可视化调试调优组件:MindInsight。我们还梳理了针对常见精度问题的调试调优指南,将以“MindSpore模型...
2021-02-21 16:49:02
941
转载 MindSpore模型精度调优实战(一)精度问题的常见现象、原因和简要调优思路
转自 华为云论坛https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=102750MindSpore模型精度调优实战(一)精度问题的常见现象、原因和简要调优思路MindSpore团队引子:在模型的开发过程中,精度达不到预期常常让人头疼。为了帮助用户解决模型调试调优的问题,我们为MindSpore量身定做了可视化调试调优组件:MindInsight。我们还梳理了针对常见精度问题的调试调优指南,将以“M...
2021-02-21 16:47:17
1077
原创 numpy中如何判断数组类型(dtype)是否为数字
numpy中如何判断数组类型(dtype)是否为数字使用np.issubdtype()可以判断类型继承关系,结合numpy中的类型继承关系图,可以轻松写出判断函数:import numpy as npdef is_simple_numpy_number(dtype): if np.issubdtype(dtype, np.integer): return True if np.issubdtype(dtype, np.floating): ret
2020-07-07 19:28:31
6283
原创 python 同0(zero)比较的写法
python 同0(zero)比较的写法author: archimekai在PEP8中,规定了一些情况的比较写法,比如和True和False比较的写法,判断列表是否为空的写法。但是,PEP8没有明确说明和0比较时,如何书写。目前来看,判断变量是否为0,有两种写法:写法一: if x == 0最直接的写法。而且符合PEP20中的explicit is better than implicit原则。写法二: if not x这种写法利用了python中,0.__bool__() 为 False的
2020-06-30 12:10:15
1355
原创 HTTP (RESTful) API 响应时间分析及SLA定义
HTTP (RESTful) API 响应时间分析及SLA定义author: archimekaiHTTP API时间过程分解TODO 各时间阶段分析浏览器接受请求数据如果浏览器边接收请求数据边处理,浏览器对请求数据的处理速度可能会影响浏览器接收请求数据的速度。HTTP API响应时间定义从浏览器 和 服务器的角度,可以给出响应时间的不同定义。浏览器角度的HTTP API响应时间SLA定义站在浏览器的角度,从开始发送请求数据的时刻开始计算响应时间,到浏览器响应数据接收完毕的时刻为止。其
2020-06-30 12:08:33
2347
原创 训练集、验证集、测试集
训练集、验证集、测试集训练集 train set用于训练模型的数据样本,通过训练数据调整模型中的参数类似于学生的课本验证集 validation set用于在模型训练过程中,对基于训练集训练的模型效果进行评估,可以用来调整模型的超参,算法等。类似于学生的作业,通过作业可以掌握学生的学习情况,并指导学生调整学习方法。测试集 test set用来评估模型的最终训练结果,不能用作超参、算法等的条有依据。类似于高考,考的题学生从未见过,最终认定学生(模型)的能力。...
2020-05-12 22:03:16
534
原创 在 linux ubuntu 18.04 上运行QQ音乐
在 linux ubuntu 18.04 上运行QQ音乐我使用的组合为 ubuntu 18.04 + wine-stable 3.6 + QQ音乐17.63,未在其它平台做过尝试。一直想在ubuntu上好好听音乐,由于我的歌单都在QQ音乐中,就很想能在ubuntu上用QQ音乐。虚拟机方案 – 放弃一开始尝试安装oracle vm virtual box + win 10 虚拟机,在虚拟机中...
2020-05-04 20:43:44
13834
8
原创 自己训练BERT网络
自己训练BERT本文使用google提供的BERT脚本进行训练,并在TensorBoard中观察BERT的计算图。bert地址:https://github.com/google-research/bertclone这个git repogit clone https://github.com/google-research/bert下载BERT预训练模型,里面有vocab.txt文件,...
2020-05-02 19:50:59
3431
1
原创 将Ubuntu配置为生产力工具
将Ubuntu配置为生产力工具本人最近开始使用Ubuntu作为开发主力编写代码,经过一段时间的尝试,发现Ubuntu基本能够满足生产力机器的需求。下面讲本人的配置/软件分享给大家:操作系统使用的操作系统为Ubuntu 18.04 LTS 中文版。 使用中文版的原因是,将来写汉字比较方便。安装的时候按默认配置一路安装即可。基础软件浏览器:系统自带的firefox即可,速度很快。当然也可以...
2020-04-25 12:26:02
951
原创 numpy中如何判断一个值是否为masked
numpy中如何判断一个值是否为masked?标签: numpy MaskedArray判断方法:myval is numpy.ma.masked使用等号(==)是不能判断的。masked是一个特殊的常量,定义在numpy的core.py中:masked = masked_singleton = MaskedConstant()class MaskedConstant(Maske...
2020-04-13 20:04:40
2865
转载 解决ubuntu18.04不发出声音、显示伪输出(dummy output)的问题
解决ubuntu18.04不发出声音、显示伪输出(dummy output)的问题以root权限编辑/etc/modprobe.d/alsa-base.conf文件,加入这一行options snd-hda-intel dmic_detect=0参考代码echo “options snd-hda-intel dmic_detect=0” | sudo tee -a /etc/modprobe...
2020-04-11 10:43:24
4902
1
原创 AES与SM4实现原理的比较
AES与SM4实现原理的比较基本比较三种算法的基本比较如下表: 算法名称 密钥长度 分组长度 循环次数 算法结构 AES 128 128/192/256 10/12/14 Substitution-Permutation SM4 128 128 32 非平衡Feistel每轮操作的比较在安全性设计方面,AES每轮的操作包括(1)使用S盒完成
2016-11-09 09:14:06
24689
5
原创 SM4国密算法实现分析
SM4国密算法实现分析代码下载请见 上一篇文章 AES算法实现分析SM4的说明(pdf):http://download.youkuaiyun.com/detail/leechiyang/5008528算法调用参数该算法需要一个结构体 sm4_context ctx 来保存上下文信息,即加密模式和各轮子密钥。该结构体定义如下:typedef struct{ int mode;
2016-11-09 09:12:49
32191
4
2021年9月25日 深度学习框架与动态shape v3.1 archimekai.pptx
2021-09-26
java api 文档 jdk9
2020-04-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人