Title
Tech Explorer
Go Home
Category
Description
Address
Phone Number
+1 609-831-2326 (US) | Message me
Site Icon
Tech Explorer
Tags
Page Views
0
Share
Update Time
2022-05-05 14:08:50

"I love Tech Explorer"

www.helong.info VS www.gqak.com

2022-05-05 14:08:50

Tech Explorer Home Archives Categories Tech Explorer Home Archives Categories 开源库 parallel-hashmap 介绍:高性能 线程安全 内存友好的哈希表 和 btree 2020-11-10 hashmap btree 背景 后台开发很常见一大类需求是 线程安全 高性能 容器数据结构 开源的 https://github.com/greg7mdp/parallel-hashmap parallel-hashmap 是对 Google 的 abseil-cpp 库的改进,可供开发中直接使用。 参考官网的英文文档,简单翻译介绍如 阅读更多 倒排索引求交算法相关资料调研 2020-06-14 search algorithm 1. IR-book 经典教材中的思路 Faster postings list intersection via skip pointers 通过跳指针,实现更快的 posting list 求交 https://nlp.stanford.edu/IR-book/html/htmledition/faster-postings-list-intersection-via-skip-pointers-1.html 首先有个最 trival 的算法,两个 posting list,各一个指针,谁不匹配,就把谁右移一个, 阅读更多 用 process_vm_readv() 实现多进程内存队列 2020-06-04 linux server 一,问题背景多进程之间需要传输大量数据的时候,比如多进程 RPC 框架的进程之间通信,常用共享内存队列。但是共享内存队列难免会有 入队+出队 2次 memcpy 。而且要变长共享内存队列,如果支持多生产者进程+多消费者进程 ,就要处理线程安全方面的问题, 比较麻烦。process_vm_readv() , process_vm_writev() 是 Linux 3.2 新增的 syscall,用于在多个进程的地址空间之间,高效传输大块数据。https://www.man7.org/linux/man-pages/man2/process_vm_readv.2.htmlhttps://github.com/open-mpi/ompi/blob/master/opal/mca/btl/sm/btl_sm_get.c#L96在此, 我提个设想,可以用 process_vm_readv 实现一个多进程内存队列,相比之下,优势是:在处理 多线程/多进程 并发时,更简单省掉一次 memcpy。下面 demo 代码演示了这个思路。为了方便,直接用 posix mq 来传输 iovec 数组,也没有考虑多路复用。真实项目可能需要 eventfd 之内的机制来做 notify。实测了下,3个进程加起来有 5.5 GB/秒 的速度。 阅读更多 构造最短程序打印自身的 MD5 2020-04-20 cpp server linux 一,介绍比赛题目很简单:构造一个程序,在 stdout 上打印出自身的 MD5,程序越短越好。按最终程序文件大小字节数排名,文件越小,排名越靠前。只能使用 ld-linux-x86-64.so, libc.so, libdl.so, libgcc_s.so, libm.so, libstdc++.so 。禁止了 socket, shmget, fork, execvc 等 syscall 。汇编高手如云,本人只做到 752 字节,只拿到 27 名。但忙活好几天,学到不少东西,也有苦劳,还是值得记录一下。基本是纯 C 实现,没有动用汇编。 阅读更多 基于 ElasticSearch 开发垂直搜索系统 2020-03-29 linux search server 一,背景介绍ElasticSearch 是由 Lucene 包装上分布式复制一致性算法等附加功能,构成的开源搜索引擎系统。近两年在业界热度大增,主要有 3 种应用场景:全文搜索引擎NOSQL 数据库日志分析数据库 ELK很多垂直领域搜索需求,都可以基于 ElasticSearch 来设计架构。ElasticSearch 能大幅度提升相关业务的迭代开发速度,实现类似 sql 数据库增删改查一样的快速开发。并在相对高 qps 的在线业务中,保证毫秒级的延迟,提供极高的可用性和稳定性。经过持续的研读官方文档,调研业界经验,并在实践中应用反思后,总结出一套架构方案。供参考,欢迎意见建议。 阅读更多 下一页 由 Hugo 强力驱动 | 主题 - Even © 2010 - 2022byronhe