听同事在讨论这个牛逼的数据库哪家强的问题。我稍稍搜了下放在内存上的实现。不过感觉受限于内存在46bit的机器VM上最多1T的内存。群里有人说PM是内核4以后的最多内存计算方式。甚至intel发了ddr4接口的 nvdimm 。我上次知道这个东西还是在王春东的课上。所以王老师是个好老师。
这是一个用 nvram 做储存设备的数据库,0202年 Amp lab 年度项目 Redis over nvram. 还有pmdk 这种开箱即用的 API。总之 intel 是下了大功夫的。

相当于重写一遍pmem的底层库,让上层建筑能很好的看不到底下的婆罗门。 pmemkv 有直接 key value 操作的 remove()/get()/remove()

话说我是怎么知道这些东西的。因为王老师讲过,殷老师在做。大概在CA问问题的时候问到了,然后我的boss也同时对这个有需求,我就拿过来用了。
libpmem2写的是真的好, memmove 重写了,甚至用到了avx512的寄存器(其实挺多的,有xmm ymm zmm 16*512*3,其实就是non temperal store,intel在fpu和单核的最大带宽上还是下了很大的功夫。)。加之现在tiiger lake据说在这个带宽下并不降频,这可以说很优秀了。
顺便之前在睡觉前当助眠曲的东西,一个b站牛逼的c++ up🐖, 我加了他的群以后,很快就有会cpp的人回答我相关问题,比stackoverflow好很多。
感觉中文搜很多东西,会有一个人讲的很优秀。相比来说,英文内容更实际一点,但测试案例这种东西还是比较需要思考的,至少需要看会源码,会动静结合调试代码。如果能从github上搜到就不要自己调,如果搜不到就赶紧自己写一个然后开源。(虽然如果work for companies 还是不要,但还是能以博客的形式发出来,或者以论坛的模式。)
若未来去美国读 nvram 相关的 PhD 也未尝不可。