2023-9-21讨论班
Large Language Models are Edge-Case Fuzzers: Testing Deep Learning Libraries via FuzzGPT
Edge-Case/Conner-Case 不常见的样例
用的是codex,chatgpt在代码上训练的模型;以及codegen
- zero-shot:啥也不给,只让它生成Edge Case
- few-shot:开孔填空,在code上按照一定的pattern挖洞,然后让llm补充,循环进行
- fine-tune:喂数据,从pr里拉之前容易引发bug的代码,人先标注有限的case,然后作为prompt提供给大模型
Marlin: A Concurrent and Write-Optimized B+-tree Index on Disaggregated Memory (ICPP’23)
在DM上高性能B+树索引
- Insert/Delete/Update 并发控制开销大(锁的粒度不够小)
- 这篇文章将叶子上的的kv改成key+pointer以避免在index上阻塞地写数据=>只要先准备好数据,快速地改pointer就行了。而这就牺牲了范围查询地效率,因为每次根据pointer查具体的内存位置都要走一次index
- Structural Modification Operation和IDU的同步导致效率低
- FAA三状态锁区分SMO和IDU–每个叶子上有一个SMO独占+IDU共享锁
- FAA:Fetch and Add, return last value,CAS:Compare and Swap
- 锁值为0是S0,>=1是S1,<-T是S2
- SMO会将锁减去一个值X(X must > T),根据返回值确定目前是其他SMO(发现返回值为负的,rollback+X,不会改变S2状态)还是其他IDU(rollback+X,不会影响S1状态,重读直到返回值为0,即所有IDU在锁上加上的1都被还回去了)
- 每次IDU都要多次RDMA
- 压缩写操作的关键路径,读叶子的时候“投机地”用FAA上锁(猜对了少一个RTT,猜错了多一个RTT,由于概率原因还是有收益的)
- 由于投机了,所以可以batch发送