- 博客(70)
- 资源 (3)
- 收藏
- 关注
原创 RocketMq延迟队列与半消息
MessageTagHashCode被时间截止时间所填充。从下面的代码中可以看到,从ConsumerQueue中读取了offsetPy,sizePy,tagsCode,其中tagsCode就为生效的截止时间。在延迟队列中commitLogOffset/size/messagetaHashCode中。
2022-07-19 17:06:15 556
原创 Raft介绍
浅谈Raft配置变更(成员变更)策略 - 知乎前言本文参考的文献为: CONSENSUS-BRIDGING THEORY AND PRACTICE。这里所说的配置,是一个raft集群的拓扑。配置变更指的是从当前集群中增加一部分节点或者删除一部分节点。在真实的生产环境中,因为各种原因,节点…https://zhuanlan.zhihu.com/p/375059508https://github.com/dappFinance/raft-zh_cn/blob/master/raft-zh_cn.mdhttps:
2022-06-29 22:02:12 108
原创 IndexSearch
org.elasticsearch.index.engine.InternalEngine#createSearcherManager
2022-06-25 15:15:12 230
原创 树莓派内核编译
make:arm-linux-gnueabihf-gcc:command not found 问题解决_stupid_h的博客-CSDN博客一、背景在ubuntu环境下,进行Zynq的boot文件编译执行以下命令make distcleanmake zynq_zc706_defconfigmake出现错误:make:arm-linux-gnueabihf-gcc:command not found二、编译器安装问题 网上比较多的思路有2个: 一个是root权限问题,即使用roo...https://blog
2022-03-21 22:31:44 617
原创 linux内核如何从页中的位置转换为块设备中扇区的位置
do_mpage_readpage(struct bio *bio, struct page *page, unsigned nr_pages, sector_t *last_block_in_bio, get_block_t get_block){ struct inode *inode = page->mapping->host; const unsigned blkbits = inode->i_blkbits; const unsigned blocks_per_p.
2022-03-11 23:01:57 260
原创 ThreadLocal内存泄漏
ThreadLocal以及内存泄漏 - twoheads - 博客园ThreadLocal是什么 ThreadLocal的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。但是如果https://www.cnblogs.com/twoheads/p/9646415.html20 技巧篇:Netty 的 FastThreadLocal 究竟比 ThreadLocal 快在哪儿?.mdhttps://learn.liangliangl.
2022-02-15 13:44:15 168
原创 Netty中套接字选项的影响
TCP_NODELAY开启本选项会禁用TCP的Nagle算法Nagle算法指出:如果某个给定的连接上有待确认的数据,那么原本应该作为用户写操作之响应的在该连接上立即发送相应小分组的行为就不会发生,直到现有数据被确认为止。SO_REUSEADDRSocket中SO_REUSEADDR详解_明潮的BLOG-CSDN博客_reuseaddr1、一般来说,一个端口释放后会等待两分钟之后才能再被使用,SO_REUSEADDR是让端口释放后立即就可以被再次使用。SO_REUSEADDR用于对TCP
2022-02-13 20:47:41 1169
原创 Epoll相关参考
深入理解NIO(四)—— epoll的实现原理 - 肥宅快乐码 - 博客园深入理解NIO(四)—— epoll的实现原理 本文链接:https://www.cnblogs.com/fatmanhappycode/p/12362423.html 终于来到最后了,万里长征只差最https://www.cnblogs.com/fatmanhappycode/p/12362423.htmlEpoll 的time_out参数引发的cpu占用问题 - 程序员大本营https://www.pianshen.com/a
2022-02-09 22:37:09 177
原创 Lucene引入NFA
参考文档:[LUCENE-10010] Should we have a NFA Query? - ASF JIRAhttps://issues.apache.org/jira/browse/LUCENE-10010什么是NFA(不确定的有穷自动机)和DFA(确定的有穷自动机) - Bubgit - 博客园本节知识点是《编译原理》第三章-词法分析,学习参考教材为清华大学出版社《编译原理》第三版: 前情提要: 字母表∑1和∑2的乘积( product): ∑1∑2 ={ab|a ∈∑1, b ...
2022-01-24 21:01:20 230
原创 Lucene中的遍历
关键类:org.apache.lucene.search.DocIdSetIterator/** * This abstract class defines methods to iterate over a set of non-decreasing doc ids. Note that * this class assumes it iterates on doc Ids, and therefore {@link #NO_MORE_DOCS} is set to {@value * #
2022-01-24 14:20:26 294
原创 lucene hnsw merge 优化
优化前hnsw在merge的时候会生成merged ordinals -> segments 和 segment ordinals. 的映射。 这种映射增加了开销org.apache.lucene.codecs.KnnVectorsWriter.VectorValuesMerger#nextDoc public int nextDoc() throws IOException { current = docIdMerger.next(); if (curre
2022-01-20 17:01:51 384
原创 Lucene合并文档的顺序
org.apache.lucene.index.MergeState#buildDocMaps private DocMap[] buildDocMaps(List<CodecReader> readers, Sort indexSort) throws IOException { if (indexSort == null) { // no index sort ... we only must map around deletions, and rebase .
2022-01-20 14:46:25 185
原创 Lucene9中的HNSW介绍及一些参考文章
一文看懂HNSW算法理论的来龙去脉_u011233351的博客-CSDN博客_hnsw算法HNSW算法----Hierarchcal Navigable Small World graphs,第一贡献者:Y.Malkov(俄)一.背景介绍 在浩渺的数据长河中做高效率相似性查找一直以来都是让人头疼的问题。比如,我在搜狗app上阅读了一篇文章,推荐系统就应当为我推送与这篇文章最相近的文章,数据库中所有文章是用向量表示的,所以我们要解决的问题就是“找到与这篇文章的向量...https://blog...
2022-01-07 16:14:04 773
原创 spring事物管理
Spring进阶篇(7)-TransactionSynchronizationManager(事务监听) - 简书JAVA && Spring && SpringBoot2.x — 学习目录 TransactionSynchronizationManager是事务同步管理器。我们可以自定...https://www.jianshu.com/p/4b5eb29cc6d9............
2021-12-24 11:26:07 442
原创 DFS 阶段做了啥
/** * Dfs phase of a search request, used to make scoring 100% accurate by collecting additional info from each shard before the query phase. * The additional information is used to better compare the scores coming from all the shards, which depend on l.
2021-12-21 11:13:30 887
原创 ES中写分片流程
org.elasticsearch.action.support.replication.TransportReplicationActionTransportReplicationAction是一个抽象类TransportReplicationAction和HandledTransportAction类似继承它的子类都会去transportService注册。 this.transportPrimaryAction = actionName + "[p]"; t
2021-12-19 19:22:06 1514
原创 ES中聚合中广度优先的实现
{ "size": 0, "aggs": { "all_speaker": { "terms": { "field": "speaker", "size": 5 }, "aggs": { "avg_speech": { "avg": { "field": "speech_number" } } } } }.
2021-12-16 23:51:39 1139
原创 ES中的收集器(百分位/基数)
org.elasticsearch.search.query.QueryPhase#executeInternal final LinkedList<QueryCollectorContext> collectors = new LinkedList<>(); // whether the chain contains a collector that filters documents boolean h.
2021-12-14 15:29:46 958
原创 鸽巢原理在lucene中的应用 MinShouldMatchSumScorer
@Overridepublic int nextDoc() throws IOException { // We are moving to the next doc ID, so scorers in 'lead' need to go in // 'tail'. If there is not enough space in 'tail', then we take the least // costly scorers and advance them. for (...
2021-12-09 19:27:47 162
原创 lucene scorer
以ReqExclScorer 为例如下: public ReqExclScorer(Scorer reqScorer, Scorer exclScorer) { super(reqScorer.weight); this.reqScorer = reqScorer; reqTwoPhaseIterator = reqScorer.twoPhaseIterator(); if (reqTwoPhaseIterator == null) { reqApprox
2021-12-07 14:13:49 294
原创 IndexSort
是否可以快速结束。 判断searchSort和indexSort是否是一致的。org.apache.lucene.search.TopFieldCollectorcanEarlyTerminate static boolean canEarlyTerminate(Sort searchSort, Sort indexSort) { final SortField[] fields1 = searchSort.getSort(); final SortField[] fields.
2021-12-01 20:18:30 142
原创 Segment读取
private IndexReaderContext build(CompositeReaderContext parent, IndexReader reader, int ord, int docBase) { if (reader instanceof LeafReader) { final LeafReader ar = (LeafReader) reader; final LeafReaderContext atomic = new LeafR...
2021-11-22 11:55:08 274
原创 Lucene中的倒排链磁盘存储 (PForDelta)
参考文档http://paperhub.s3.amazonaws.com/7558905a56f370848a04fa349dd8bb9d.pdfhttp://paperhub.s3.amazonaws.com/7558905a56f370848a04fa349dd8bb9d.pdf倒排索引PForDelta压缩算法——基本假设和霍夫曼压缩同 - bonelee - 博客园https://www.cnblogs.com/bonelee/p/6882088.html倒排索引压缩:改............
2021-11-21 15:26:26 627
原创 Java中的自动向量化(SIMD)
摘要这篇文章简单解释了向量化的目的,它是如何在Java中生效的,如何去检测它是否被应用于Java程序中。这些知识对数学计算大有帮助。 这些方式比较底层,且只适用于特殊的场景。如果你想优化你的Java程序性能。你的首选应是其他可用的优化方法。只有当您已经使用其他技术优化了Java代码,并在之后对其进行了分析,并且得出结论,专注于算术计算的部分可能会通过并行化运行得更快,那么本文可能对您有用。1.简介1.1 SIMD通常程序代码是被串行执行的。计...
2021-11-21 12:18:50 4566
原创 Lucene跳表
org.apache.lucene.codecs.MultiLevelSkipListReaderskipTo /** Skips entries to the first beyond the current whose document number is * greater than or equal to <i>target</i>. Returns the current doc count. */ public int skipTo(i.
2021-11-16 22:39:47 300
原创 TermQuery打分过程
org.apache.lucene.search.IndexSearcher protected void search(List<LeafReaderContext> leaves, Weight weight, Collector collector) throws IOException { // TODO: should we make this // threaded...? the Collector could be sync'd?
2021-11-16 14:24:48 240
原创 Aggs创建
org.elasticsearch.search.aggregations.AggregatorFactories /** * Create all aggregators so that they can be consumed with multiple * buckets. */ // 创建下层aggs public Aggregator[] createSubAggregators(SearchContext searchContext, Agg
2021-11-14 18:30:12 1990
原创 ES全局序号
TermsAggregatorFactory.doCreateInternal。//获取globalValueCount决定是否global_ordinals_low_cardinality, global_ordinals_low_cardinality中又因不是ValuesSource.Bytes.FieldData,创建global_ordinals。ValuesSource$WithOrdinals.globalMaxOrd。//通过获取一个segment的globalOrdinals,触..
2021-11-09 20:16:19 1689
原创 nested检索, 父子查询
过滤nested文档6.1前 _type 不是以"__"开头的。6.1之后根据是否存在_primary_term属性 /** * Creates a new non-nested docs query * @param indexVersionCreated the index version created since newer indices can identify a parent field more efficiently */ p.
2021-11-07 19:52:02 1034
原创 TermHash 与 Perfield关系
public PerField(int indexCreatedVersionMajor, FieldInfo fieldInfo, boolean invert) { this.indexCreatedVersionMajor = indexCreatedVersionMajor; this.fieldInfo = fieldInfo; similarity = docState.similarity; if (invert) { ...
2021-11-02 16:14:21 193
原创 nvm,nvd生成和分数计算
public void finish() throws IOException { if (fieldInfo.omitsNorms() == false) { long normValue; if (invertState.length == 0) { // the field exists in this document, but it did not have // any indexed tokens, ...
2021-11-02 13:29:20 171
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人