- 博客(128)
- 收藏
- 关注
原创 有关insert on duplicated key
Mysql:使用on duplicate key update时导致自增id不连续怎么办?_on duplicate key update 导致mysql自增主键id跳跃增长-CSDN博客
2024-04-13 07:55:00 133
原创 rocketmq的运维
bin/mqadmin updateTopic -n 10.49.196.33:9876 -t TRANSACTION_TOPIC -c DefaultCluster -a +message.type=TRANSACTION #事务消息。bin/mqadmin updateTopic -n 10.49.196.33:9876 -t DELAY_TOPIC -c DefaultCluster -a +message.type=DELAY #定时/延时消息。2. 创建不同的topic。
2024-04-03 20:49:28 351
原创 多人ELO的计算文章
https://towardsdatascience.com/developing-a-generalized-elo-rating-system-for-multiplayer-games-b9b495e87802对应的代码:GitHub - djcunningham0/multielo
2024-03-31 20:57:14 222
原创 一亿行挑战(1BRC)top代码精析-使用 SWAR 技术找到分号分隔符
但是因为~match对应的首bit为0, 进行&后,正好结果就是首bit为0。3. 综上所述,((match - 0x0101010101010101L) & ~match)在分割成的8段字节中,如果有字节为分号,则结果一定从左数第一个bit值为1.如果没有,则该字节从左数第一个bit值为0.期待他情况下,~match的第一个bit位必然为1,而(match - 0x0101010101010101L)的结果根据解析的第一步说明它第一个bit值为0.因此& ~match后第一个bit值必然为0。
2024-03-24 17:22:46 327
原创 defer 中recovery from panic中的注意点
如果在defer 方法中再调用recovery包装方法,则是无法恢复panic现场的。
2024-03-19 17:52:40 149
原创 golang time.Newtimer和time.NewTicker使用和不同
1. time.Newtimer是可以在没有强引用的时候被gc回收掉的。但是time.NewTicker必须在defer中使用stop来释放资源,否则资源永远不会被gc回收2. time.Tick(d Duration) <-chan Time方法是存在资源泄漏的,见注释:这种只能用于no need to shut down的情况,因此一般是不应该使用这个的相关区别:1. timer是用于只执行一次延时获取能力的情况。如果要多次使用,需要结合reset。例如:for {select {
2024-01-21 21:16:52 1274 2
原创 pprof时如何指定source
在用远端的pprof的时候,找的sourcecode的路径不对,此时需要增加参数:go tool pprof -inuse_space -source_path=$(go env GOMODCACHE) http://10.45.1.246:32612/debug/pprof/heap()
2024-01-19 15:12:44 353
原创 在一个nil的channel上发送和接收操作会被永久阻塞
/ 这里比hub 发送时候有延迟时间,这段延迟时间是否会对结果产生影响。这里一定要注意,以下问题导致gorounting阻塞。
2024-01-19 12:25:50 899
原创 golang三个坑实录
同理,不能将一个具体的指针对象,复制给一个interface。则PlayerStatus = "Playing"和PlayerStatus = "Buying"中的PlayerStatus必不可少,否则如果写成。Playing PlayerStatus = "Playing" // 正在玩牌。但是在反射获取Playing类型时,得到的就不是预期的PlayerStatus类型,会导致隐藏的错误。虽然 "Playing" == Playing还是返回true的,
2023-11-12 00:08:28 500
原创 golang相关代码注意点
的情况,注意ticker是一个length=1的chan。因此如果tick的间隔时间过短,例如图中所示,则会在获取chan之后,chan又被写入下一个触发的element。如果代码只是想触发一次,代码中使用c.reset试图调整ticker的下次触发时间,但是因为存在chan又被写入下一个触发的element的情况,会导致该chan被触发两次,不符合预期的情况。注意此时Test2的类型是string,而不是xxx。注意此时就是存在x == Test2的比较,两者类型都不一样,肯定不等。
2023-11-05 15:04:37 181
原创 clickhouse 正在执行sql时如果客户端断开链接会怎样
2. 只测试了执行dbt的sql,此时peotry dbt 命令因为sql在执行,在等待结果,因此在卡住等待返回结果。说明在ctrl+c时候,操作系统会给clickhouse的servier端发送了关闭链接的挥手请求,而ck可能是监控到了这个挥手请求,因此正在执行中的sql不会真正的落盘。有理由相信,可能在kill -9,docker kill 的时候,操作系统都会发送关闭链接的请求,因此ck都不会将sql执行结果insert的数据真正执行。
2023-06-15 16:56:14 247
原创 clickhouse 优化
clickhouse配置项system.settings详解_clickhouse settings_Aiky哇的博客-CSDN博客Clickhouse优缺点、性能以及错误躺坑_clickhouse insert_deduplicate_天空飘来一个云哥哥的博客-CSDN博客
2023-05-29 21:26:28 100
原创 clickhouse 多副本如果机器损坏如何通过副本恢复数据
执行 sudo -u clickhouse touch /data/clickhouse/flags/force_restore_data。从另一个正常副本将 metadata 目录拷贝过来(这一步之后可以启动数据库,但是只有。清空异常副本节点的 metadata 和 data 目录。(1)问题:某个数据副本异常无法启动,需要重新搭建副本。ClickHouse 高级(八)常见问题排查。3 副本节点全量恢复。
2023-05-26 19:37:36 1200
原创 pq文件解释
如果么有C,则null的C对应的路径是B.C. 其中B是optional,C是null的,因此null对应的definition level为1.如果有C,则对应的路径是B.C.其中C是optional.因此有c则对应的efinition level是2。
2023-05-17 17:44:59 254
原创 头条面试相关问题解答
操作系统之文件描述符FD与Inode - 简书MSS与MTU的关系_51CTO博客_mtu mss深入理解 ext4 等 Linux 文件系统 - 知乎SO_REUSEPORT使用示例_阿冬哥的博客-CSDN博客剖析 TCP - SO_REUSEPORT 使用 - 简书
2023-05-17 08:05:42 52
原创 如何处理明星员工
https://agora0.gitlab.io/news/wsj/2023/05/04/WSJ-%E5%A6%82%E4%BD%95%E7%AE%A1%E7%90%86%E6%98%8E%E6%98%9F%E5%91%98%E5%B7%A5.html
2023-05-07 00:42:40 48
原创 linux poll,epoll,select的区别
epoll中红黑树的作用?红黑树和epoll_wait的关系?其他区别:1. select 在linux内核中限制了能监听的数目上限。32位是1024,64位是20482. poll是将监听的对象改成了链表实现,因此没有数目上限3. select和poll都需要每次从用户空间和内核空间之间进行数据的2次拷贝select 实现多路复用的方式是,将已连接的 Socket 都放到一个,然后调用 select 函数将文件描述符集合到内核里,让内核来检查是否有网络事件产生,检查的方式很粗暴,就是通过。
2023-05-02 10:15:28 679
原创 golang 内存分配策略
•如果没有可用于mcentral的块,则应用mheap并使用BestFit查找最合适的mspan。如果超出了应用程序的大小,则会根据需要进行划分,以返回用户所需的页面数。•大小在16B〜32k之间,计算要使用的sizeClass,然后在mcache中使用相应的sizeClass的块分配。但是Go在OS级别分配的页面甚至更大(称为竞技场)。•如果与mcache对应的sizeClass没有可用的块,则将其应用于mcentral。•如果没有可用的跨度,请向操作系统申请一组新的页面(至少1MB)。
2023-04-26 07:09:57 476
原创 解析使用golang的pool和arena
因此如果在arena分配的对象,即使没有被使用,但是arena有被引用到,也不会被gc回收掉,那么这块内存就成为了虽然么有被引用,但是依然无法在arena中使用到的内存数据。因此这也是arena分配的对象不能SetFinalizer的原因是,arena中设置了SetFinalizer方法,因此对象如果也设置了SetFinalizer方法,会有重复调用SetFinalizer的情况,有对象的风险,因此不能设置 arena生成的对象的SetFinalizer方法。arena可以分配不同的大小内容的对象。
2023-04-25 10:49:53 267
原创 golang 协程模型理解
可知,存在sysmon的一个协程,判断是否有一个gorouting占用M时间过多或者长时间占用M卡住的情况。那么这个sysmon是和M直接绑定,但是不和P绑定的。也就是说,sysmon可以简单理解为是一个操作系统的线程,因此一定会被调用到,而不是一个协程。因此sysmon可以做这个监控判断的功能。GMP中M可以简单的理解为操作系统的线程数。
2023-04-24 20:03:00 47
原创 golang文字书
GitHub - aceld/golang: 《Golang修养之路》本书针对Golang专题性热门技术深入理解,修养在Golang领域深入话题,脱胎换骨。
2023-04-23 21:04:50 46
原创 golang支持优雅关闭和core错误记录
经过测试,不能使用 ENTRYPOINT ["/modapi/modapi", "1>> /dev/null","2>> ./logs/stderr.log"],原因是虽然这种方案可以。#保证modapi命令为1号程序,能够接收到os的signal信号。但是如果程序core了,会直接导致1号进程core。则docker直接退出并且错误没有写入到。#stderr.log文件中。因此通过start.sh传递terminated信号,同时可以保证core时候堆栈信息可以写入到stderr.log中。
2023-04-21 14:50:46 280
原创 systemctl 相关功能
开启dns-server的时候一定要注意,默认的linux的systemd-resolved.service就是dns服务,会启动53端口。3. 在使用root用户后,使用 journalctl -u systemd-resolved.service可以得到有关启动这个dns服务更详细的启动日志。其中,loaded (/lib/systemd/system/systemd-resolved.service。就可以看出来是在这里配置的systemd-resolved.service启动参数,
2023-04-18 21:11:28 1222
原创 linux 参数优化
这个参数表示该队列的最大值。* net.ipv4.ip_local_port_range = 1024 65535 // 对外TCP和UDP连接port的范围。* net.ipv4.tcp_max_syn_backlog = 655360 // 能接受 SYN 同步包的最大客户端数量。* net.ipv4.tcp_keepalive_probes = 5 // tcp心跳对端无响应后继续发送的探测报文的数量。* net.ipv4.tcp_syn_retries = 2 // 重试发送syn包的次数。
2023-04-02 22:09:21 337
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人