首页
学习
活动
专区
工具
TVP
发布

数据库开发优化

专栏成员
6
文章
2500
阅读量
8
订阅数
Milvus存算分离系列-4: Delete之痛
保持vector index的immutable属性,通过bitset掩码的方式来使得被删除的vector不可见。如下图,在vector index中node=2被delete mask标记为1, 即deleted。那么在vector index traverse的过程中,node2会被跳过,但该节点与其他节点的link仍然被作为检索的edge进行使用。
MrPresent-Han
2023-09-17
3350
Milvus存算分离系列-3: 存算双写
书接上文,还是回到数据实时可见这个问题上。milvus的target机制实际上只解决了一部分问题,即那些已经“落盘”的数据,可以通过target推进机制来可见。这种机制类似于lucene的“flush”功能,即只有刷新过的数据可查,而没刷新的数据不能查询。这个做法在share nothing的架构下问题不大,比如es就是完全接受lucene的flush机制,提供了“近实时”查询,即一般把flushInterval设置为1s,新写入的数据在1s之后就是可见的。但是对于milvus这种存算分离+云原生的架构,如果新写入的数据要经过write-object storage再download的过程才能可查,那么且不说由于flushInterval太短造成的小文件问题,仅仅是这个upload+download的过程的延时肯定都已经做不到“近实时”了。本文从此出发,介绍milvus是怎么解决“最新数据实时可见”这个问题的。
MrPresent-Han
2023-09-17
3320
Milvus存算分离系列-2: target机制
无论是存算分离还是存算一体,client对于查询的正确性要求都是一致的,没有哪个客户会因为所谓的“架构优势”牺牲正确性,即使是ANN这样的‘近似查询’。而对于存算分离的架构,由于“存”和“算”发生的进程是不同的,那么如何保证数据的完整性&&一致性就是一个相比于存算一体更复杂的问题。本文从这个问题出发,介绍milvus是怎么在存算分离架构下保证查询数据的完整性,一致性和实时性的。本文涉及到一些前置知识,如果对读者造成困惑,可以参考MrPresent-Han:Milvus 存算分离系列-1:milvus架构简介
MrPresent-Han
2023-09-17
3210
Milvus 存算分离系列-1:milvus架构简介
存算分离是一个很火的话题,基本上各个数据库都说自己已经实现,或者即将上线存算分离的架构。但事实上对于不同类型的数据系统,如何定义“存”和“算”是不同的。本系列会简介milvus的存算分离架构,结合具体问题场景聊一些作者对这个概念的看法。
MrPresent-Han
2023-09-17
7040
Elasticsearch查询技术剖析和优化
本文主要从集群/客户端视角,解释和Elasticsearch查询相关的原理。并相应介绍了Skper(化名)引擎的查询优化技术。
MrPresent-Han
2022-09-07
4380
JVM内存优化分享
JVM进程运行期间,可能会出现因为YGC或OGC周期过长导致的明显停顿,从而极大影响用户使用体验。本文总结了作者在一次针对JVM进程的整体调优过程中所使用的工具和方法,用于备忘。文中所述的系统为国内某知名2B公司自研的搜索引擎(类Elasticsearch),出于商业道德,作者未暴露任何代码,并对关键信息均予以更改和遮掩。
MrPresent-Han
2022-09-07
3700
没有更多了
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档