开源技术周报三期

本文分为三个部分 基础知识,行业知识,产品服务

一. 基础知识:从青铜到白银经历问题

gdb入门教程

:::success
gdb 调试死锁打印所以线程堆栈
输出的文件
https://www.cnblogs.com/goose/articles/12617549.html
:::

文件存储

软件RAID与硬件RAID的区别?

  • 硬件十万个为什么
  • RAID 的执行可以使用特殊控制器(硬件 RAID)或操作系统驱动程序(软件 RAID)来完成

2.SAS

git入门门教程

https://www.yiibai.com/git/
https://www.wenjiangs.com/docs/git-tutorial
https://www.yiibai.com/git/

:::success
问题2:
git出现 You are in the middle of a merge -- cannot amend问题解决方法

checrry-picking is not possible because you have unmerged files

:::

linux和windows混合开发,很容易会遇到行尾换行符的问题,windows下默认是\r\n,linux下是\n

how:

借助于dos2unix插件转化功
dos2unix *
sudo find /home/test -name "*.py" | xargs dos2unix
  1. 将换行符设置成UNIX的模式
使用 vim 打开,并执行 :set ff=unix 命令 
  1. Git 优雅处理行结束符

如果你用Windows就设置全局变量 
git config --global core.autocrlf true 
如果是mac/linux则设置 
git config --global core.autocrlf input 

默认是 nolist 。 如果使用 set list 显示隐藏字符,类似 cat -A 文件名 。 : set list :显示隐藏字符。 : set nolist :不显示隐藏字符

c++

共识:
C++最重要就是三座大山:面向对象技术,内存管理,模板(泛型编程)。
误区

  • 大部人都觉得基础知识 和工作不相关 这个又是一个误区

  • 如果工作比较忙,先完成工作,再找时间补齐,结果一直忙

T& & 、T& && T&& &都被折叠成T&
typename remove_reference<T>::type&& move (T&& arg) noexcept
{
    return static_cast<typename remove_reference<T>::type&&>(t);
}
int rr1=2;
int && rr2 = std::move(rr1)
将一个左值绑定到右值引用上,rr1将不再被使用。
std::forward;保持类型的细节
https://zhuanlan.zhihu.com/p/364005478
https://www.zhihu.com/question/43513150
C++标准规定,delete (void*)0;是安全的。
二现在的编译器通常都会有一个#define NULL 0的宏
所以,delete NULL也是安全的,是一个空操作;

:::success
提问9:c++ 类中的类成员变量怎么调用带参数的构造函数来初始化?
Person me("lucas", 35);
当做一个类成员变量。

:::
:::warning
提问8 :模板类继承模板类是如何使用的?

:::

提问7 :
认真理一理C++的构造函数
const或者引用的成员变量,必须在构造函数中给它初始化,注意是初始化,而不是赋值

问题6: (移动)拷贝构造函数调用场景?
https://en.cppreference.com/w/cpp/thread/unique_lock/unique_lock
unique_lock( unique_lock&& other ) noexcept;

  • echo | g++ -v -x c++ -E -
  • /usr/include/c++/
  • find ./ -name memory

今天看C++并发编程实战,看到一个lock_guard<std::mutex>l(mutex,std::adopt_lock);我就一直在想这个是什么东西,从字面意思理解,就是收养个锁,去msdn搜了搜,msdn是这样解释的,我也没看懂,后来看了几篇博客,大概理解了

adopt_lock 和 defer_lock 的区别
https://en.cppreference.com/w/cpp/thread/lock_tag_t

:::warning
C++11 std::unique_lock与std::lock_guard区别?
:::


C++11:为什么 std::condition_variable 使用 std::unique_lock?

:::danger

std::condition_variable_any

:::

在一个类里,创建2个线程,这2个线程分别读取,类中成员变量数值,读取是一样的吗?
这2个类读取变量是一致的?

maimai回答

SRE运维

$( )与``(反引号):返回括号中命令的结果

echo today is $(date "+%Y-%m-%d")
echo today is `date "+%Y-%m-%d"`
today is 2023-03-21

sed 批量替换多个文件

sed -i "s/bb/aa/g" *.txt
-i 表示inplace edit,就地修改文件    
 s/regexp/replacement/

** DOT语言**是一种文本图形描述语言。它提供了一种简单的描述图形的方法,并且可以为人类和计算机程序所理解。DOT语言文件通常是具有.gv或是.dot的文件扩展名。
https://products.groupdocs.app/zh/viewer/dot

性能优化

:::success

概述

Windows 10 彻底关闭 Antimalware Service Executable 降低内存占用

最近给内网的一台电脑安装 Windows 10 专业版系统,由于此电脑不会涉及到不安全因素,所以杀毒软件非必须。
以最大限度节省系统资源考虑,默认安装的 Micoroft Defender 占用了大量内存,而且还有不断增长的趋势。
:::

二. 行业 从石器时代到黄金时代

一、公开课[资料]

官方地址:https://pdos.csail.mit.edu/6.824/

阅读书籍:leveldb 精通

https://github.com/watchpoints/leveldb
https://leveldb-handbook.readthedocs.io/zh/latest/basic.html

二. TIdb

资料 作者 地址
High Performance TiDB 课程学习计划 官方 https://docs.qq.com/sheet/DY3RueHVEd1JQV1Vi?tab=BB08J2
TiFlash 往期源码解读 官方 https://asktug.com/t/topic/903372
Talent Plan 2021 KV 社区 https://learn.pingcap.com/learner/course/510001
https://github.com/tikv/tikv
### TiDB 社区技术月刊
七大模板 https://tidb.net/book/tidb-monthly/
TiKV 源码阅读三部曲 社区 https://mp.weixin.qq.com/s/HgflwnZZMHXaIsFV3PdGAg
### issue
https://github.com/pingcap/tidb/issues/7623
https://github.com/tikv/tikv/issues/8650
【源码类学习资源大放送】TiDB、TiKV、TiFlash、Chaos Mesh 等源码解读补给站

|
| https://asktug.com/t/topic/693645/1 |
| 最近学习数据库源码 遇到的疑惑,希望过来人帮忙解答 | | https://asktug.com/t/topic/1000469?_gl=1fkkx3_gaMjI2MTMzMTkyLjE2NzM5MjYyNDI._ga_5FQSB5GH7F*MTY3NzE1NzkzOS4yMi4wLjE2NzcxNTc5MzkuMC4wLjA. |

三 ob社区

分类 问题 回复
配置 ob一个表的分区上限是多少 社区版3.x的版本是8192个,4.x版本已经基本没有限制了
juicefs 1.0.3 集成 oceanbase 4.0 测试 https://www.cnblogs.com/rongfengliang/p/17128080.html
memstore中同时会存在多个冻结的memtable吗? https://ask.oceanbase.com/t/topic/35602848

四 TDengine

序号 模块 提问 回答
1 技能 通过招聘看要求 必须掌握英语。
2

:::success
Hi 大神们 遇到个问题 taos 用了32g的 内存 被系统杀掉了 我要怎么限制taos的内存使用
如何限制taos 最大内存 配置taos的内存回收策略
:::


Q2: yum config-manager --set-enabled powertools 执行失败
https://github.com/taosdata/TDengine/issues/15593
A2:
dnf install epel-release
dnf install 'dnf-command(config-manager)'
dnf config-manager --set-enabled PowerTools


五 文件存储

基本概念

  • samba服务程序已经成为在Linux系统和Windows系统之间共享文件的最佳选择
  • 【分享】CIFS和NFS的区别
  • NFS:sun公司1984年推出,基于RPC构建,依靠Unix OS
  • NFS(Network File System,网络文件系统)是当前主流异构平台共享文件系统之

机制

方案:

  1. 本地缓存与分布式缓存的优缺点、适用场景与实现分析
  • 分布式缓存的典型实现包括 MemCached 和 Redis。
  1. Isilon的分布式缓存是动了真格的!

:::success
Isilon的OneFS采用了与CPU类似的缓存一致性协议,开发这套协议需要相当的技术水平。Isilon采用Infiniband互联,采用Sockets Direct Protocol (SDP) over InfiniBand (IB)来实现节点间同步。
Isilon采用MESI协议实现缓存一致性。MESI表示每个缓存行的4种状态:
M – Modified: The data exists only in local cache, and has been changed from the value in shared cache. Modified data is typically referred to as dirty.
E – Exclusive: The data exists only in local cache, but matches what is in shared cache. This data is often referred to as clean.
S – Shared: The data in local cache may also be in other local caches in the cluster.

I – Invalid: A lock (exclusive or shared) has been lost on the data
每个节点均记录本地缓存行的状态,就可以决定是否要发出广播。
:::

JuiceFS 客户端的缓存默认是单机独享的,但当大量客户端需要反复访问同一个数据集时,可以开启「分布式缓存」功能,让大量客户端共享同一批缓存数据,有效提升性能。
分布式缓存非常适合使用 GPU 集群进行深度学习模型训练的场景,通过把训练数据集缓存到集群所有节点的内存或 SSD 中,提供高性能的数据访问能力,让 GPU 不会因为数据读取太慢而闲置

在分布式缓存方案中,每个 JuiceFS 客户端均参与缓存组的建立。如果遇到 JuiceFS 客户端不是常驻的情况,比如 Kubernetes 集群,客户端不断被销毁、重建,可能导致缓存利用率很低。对于此类动态创建伸缩的计算集群
JuiceFS 是一个分布式文件系统,而 JuiceFS 云服务是由官方提供的 SaaS(Software-as-a-Service)服务
https://juicefs.com/docs/zh/cloud/

  1. 组件:元数据引擎性能测试

4. MPI——进程之间的全局通信

image.png

实践

  1. JuiceFS 在携程海量冷数据场景下的实践

基本知识

  1. VMware 虚拟机中添加新硬盘的方法
  2. Linux使用createrepo制作本地yum源

提问:自己制作的rpm包,不能被别人直接使用,需要创建索引
回答:

  1. 例如 rpm放到 /var/www/html/Rocky8.4/AppStream

cd /var/www/html/Rocky8.4/AppStream

yum install -y createrepo
createrepo ./
/2. etc/yum.repos.d
[appstream]
name=Rocky Linux $releasever - Media - AppStream
baseurl=file:///var/www/html/Rocky8.4/AppStream
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial

3. 磁盘故障检查

非分布式锁管理器DLM 和cup缓存一致性

磁盘识别状态(lsblk)
lsblk lists information about all available or the specified block devices
sdb 8:16 0 447.1G 0 disk
nvme4n1 259:0 0 931.5G 0 disk
nvme5n1 259:1 0 931.5G 0 disk

先使用dmesg命令查看有没有硬件I/O故障的日志
grep"error"/va/log/messages*;

smartctl --smart=on --offlineauto=on --saveauto=on /dev/nvme0n1

smartctl -H /dev/nvme0n1
命令释义: PASSED:这表示硬盘健康状态良好; FAILED:硬盘不健康,建议更换硬盘
smartctl -a

=== START OF INFORMATION SECTION ===
Model Number: INTEL SSDPE2KX010T8
Serial Number: PHLJ140102GQ1P0UGN
Firmware Version: VDV10173

硬盘序列号,英文名为Hard Disk Serial Number

FirmWare, 应该是固件版本。
固件(firmware)是指设备内部保存的设备自身的“驱动程序”

dd if=/dev/zero of=/dev/nvme0n1 bs=1M count=1024 oflag=direct

2、 软 RAID 和硬 RAID 各有什么优劣?

https://www.zhihu.com/question/19613331
如果由CPU执行硬盘控制器的驱动程序代码完成,就是软RAID;
如果由RAID卡上的主控芯片完成,就是硬RA

如果由CPU执行硬盘控制器的驱动程序代码完成,就是软RAID;如果由RAID卡上的主控芯片完成,就是硬RA

3. 如何访问共享文件?

  • 键盘输入“win + R”,再输入“\IP”

三 、站在巨人肩膀上

  • 句子

"It's hard to grow beyond something if you won't let go of it."
“如果你不放手,就很难超越它。”

参考

【1】 https://blog.csdn.net/weixin_37766087/article/details/99974385

本文由mdnice多平台发布

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容