CN111324767A - 一种分布式音频指纹引擎系统 - Google Patents
一种分布式音频指纹引擎系统 Download PDFInfo
- Publication number
- CN111324767A CN111324767A CN202010097455.5A CN202010097455A CN111324767A CN 111324767 A CN111324767 A CN 111324767A CN 202010097455 A CN202010097455 A CN 202010097455A CN 111324767 A CN111324767 A CN 111324767A
- Authority
- CN
- China
- Prior art keywords
- audio fingerprint
- node
- master
- nodes
- master node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
- G06F16/61—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
- G06F16/63—Querying
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式音频指纹引擎系统,所述的系统包括数据节点模块和计算节点模块;所述计算节点模块包括master节点,所述计算节点模块用于将搜索请求进行计算,并分摊到多个master节点并发执行音频指纹搜索,再将每个master节点返回的结果输出;所述数据节点模块用于添加音频指纹模板至系统中。
Description
技术领域
本发明涉及音频指纹技术领域,尤其涉及一种分布式音频指纹引擎系统。
背景技术
音频指纹在众多移动端音乐播放器中使用,是哼歌、哼曲识别的主要算法。为了能在服务中搜索到相关的音频数据,需要提前录入大量音频,对音频提取音频指纹特征,存入数据库,作为模板数据。在之后音频搜索中,则需要跟库所有的音频指纹模板一一比对,计算出相似度最高的模板。为了提高搜索速度,会将指纹模板数据缓存在内存数据库redis中。但是如果服务器配置有限,将限制整个音频指纹模板库的规模,必须扩展现有redis缓存机器的内存。该方案的不足是单机内存是有上限。此外音频指纹引擎使用多实例部署,以分摊请求压力和满足高可用。另一不足点是当引擎实例A中添加了一个新的音频指纹模板,会将其发送到内存或redis,并广播其他引擎实例到redis中读取,多个实例之间数据的一致性无法得到保证。而且每台引擎实例每次进行音频指纹搜索,都是在单引擎实例上对全量模板库进行搜索,效率低。
发明内容
本发明所要解决的技术问题是针对上述现有技术的不足提供一种分布式音频指纹引擎系统,所述系统包括数据节点模块和计算节点模块;
所述计算节点模块包括master节点,所述计算节点模块用于将搜索请求进行计算,并分摊到多个master节点并发执行音频指纹搜索,再将每个master节点返回的结果输出;
所述数据节点模块用于添加音频指纹模板至系统中。
优选的,所述添加音频指纹模板至系统中进一步为:通过一致性哈希算法计算所要添加的音频指纹模板映射到对应槽位的master节点上,录入到系统中。
优选的,所述计算节点模块还包括挂载在master节点上的slave节点,所述slave节点用于与对应的maser节点实时同步;所述master节点至少挂载一个slave节点。
优选的,所述数据节点模块包括多个槽位,所述槽位均匀分布每个master节点上。
优选的,所述master节点被检测到宕机不工作时,通过raft选举算法对多个slave节点进行选举,并选举一个slave节点设置为新的master节点继续执行工作。
本发明的优点:
1、高可用、可横向扩展;
2、音频指纹引擎集群可以提供海量音频模板数据的多副本存储功能,数据安全并且通过raft保证一致性。
附图说明
图1为本发明一实施例提供的分布式音频指纹引擎系统结构示意图;
图2为本发明一实施例提供的分布式音频指纹引擎系统分布结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1所示为本发明一实施例提供的分布式音频指纹引擎系统结构示意图,所述系统包括数据节点模块和计算节点模块;
所述计算节点模块包括master节点,所述计算节点模块用于将搜索请求进行计算,并分摊到多个master节点并发执行音频指纹搜索,再将每个master节点返回的结果输出;
所述数据节点模块用于添加音频指纹模板至系统中。
优选的,所述添加音频指纹模板至系统中进一步为:通过一致性哈希算法计算所要添加的音频指纹模板映射到对应槽位的master节点上,录入到系统中。
优选的,所述计算节点模块还包括挂载在master节点上的slave节点,所述slave节点用于与对应的maser节点实时同步;所述master节点至少挂载一个slave节点。
优选的,所述数据节点模块包括多个槽位,所述槽位均匀分布每个master节点上。
优选的,所述master节点被检测到宕机不工作时,通过raft选举算法对多个slave节点进行选举,并选举一个slave节点设置为新的master节点继续执行工作。
本方案使用分片技术,将整个引擎系统集群分为16384个分片槽位,集群中可有多个master节点,参照图2所示为一实施例提供的系统分布结构示意图,有三个master节点,并且每个master至少挂载1个slave从节点与对应master节点进行实时同步,如图2中所示,每个master均挂载2个与之相对应的slave从节点;假设把16384个槽位均分到三个master节点上。当添加音频指纹模板时,通过一致性哈希算法,将数据落到对应槽位的master机器上进行音频指纹入库,同时master节点对应的slave节点进行实时同步。在本方案中,音频指纹引擎可以看成是数据节点与计算节点的合并。
当有音频指纹搜索任务则通过分片,需要在整个集群所有音频模板中搜索相似度最接近的一个模板进行匹配;而音频模板散落在三个计算节点的16384个槽位上。这样一次音频指纹索引计算中,将一次请求的索引计算量平均分摊到3个实例中并发执行,即分别在三个master节点中的16384个槽位各自并发进行相似度计算,加快计算速度,最终将再将多个节点的计算结果进行汇总,返回给调用方。
当有新的计算节点加入到集群中,这时候可以自动进行槽位重分配,例如再加入2个master节点master D,master E与对应的slave节点,集群将将16384个节点重新均匀分配A,B,C,D,E五个节点上,并做数据迁移操作。
master和slave节点之间,发心跳包,当检测到master节点宕机不工作时,如果有多个slave节点通过raft选举算法,选举出新的master节点,切换节点的身份。如果后续,之前master节点又恢复,发现该工作节点已经有master节点存在,则将自己设为slave节点,加入到该工作节点去同步新的master节点。
上述结构很容易添加或者删除节点,并且无论是添加删除或者修改某一个节点,都不会造成集群不可用的状态。使用哈希槽的好处就在于可以方便的添加或移除节点。
另外,本发明系统可以提供海量音频模板数据的多副本存储功能。使用RAFT提高了系统的可靠性,并且保证多副本之间的一致性问题,在系统中若有一台或多台机器故障,不会使新系统不可用,或者丢失数据。
上述实施例中的实施方案可以进一步组合或者替换,且实施例仅仅是对本发明的优选实施例进行描述,并非对本发明的构思和范围进行限定,在不脱离本发明设计思想的前提下,本领域中专业技术人员对本发明的技术方案作出的各种变化和改进,均属于本发明的保护范围。
Claims (5)
1.一种分布式音频指纹引擎系统,其特征在于,所述的系统包括数据节点模块和计算节点模块;
所述计算节点模块包括master节点,所述计算节点模块用于将搜索请求进行计算,并分摊到多个master节点并发执行音频指纹搜索,再将每个master节点返回的结果输出;
所述数据节点模块用于添加音频指纹模板至系统中。
2.根据权利要求1所述的一种分布式音频指纹引擎系统,其特征在于,所述添加音频指纹模板至系统中进一步为:通过一致性哈希算法计算所要添加的音频指纹模板映射到对应槽位的master节点上,录入到系统中。
3.根据权利要求1所述的一种分布式音频指纹引擎系统,其特征在于,所述计算节点模块还包括挂载在master节点上的slave节点,所述slave节点用于与对应的maser节点实时同步;所述master节点至少挂载一个slave节点。
4.根据权利要求1所述的一种分布式音频指纹引擎系统,其特征在于,所述数据节点模块包括多个槽位,所述槽位均匀分布每个master节点上。
5.根据权利要求3所述的一种分布式音频指纹引擎系统,其特征在于,所述master节点被检测到宕机不工作时,通过raft选举算法对多个slave节点进行选举,并选举一个slave节点设置为新的master节点继续执行工作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010097455.5A CN111324767A (zh) | 2020-02-17 | 2020-02-17 | 一种分布式音频指纹引擎系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010097455.5A CN111324767A (zh) | 2020-02-17 | 2020-02-17 | 一种分布式音频指纹引擎系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111324767A true CN111324767A (zh) | 2020-06-23 |
Family
ID=71168880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010097455.5A Pending CN111324767A (zh) | 2020-02-17 | 2020-02-17 | 一种分布式音频指纹引擎系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111324767A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102169507A (zh) * | 2011-05-26 | 2011-08-31 | 厦门雅迅网络股份有限公司 | 一种分布式实时搜索引擎 |
CN102629903A (zh) * | 2011-12-21 | 2012-08-08 | 奇智软件(北京)有限公司 | 一种互联网应用中的容灾备份系统及方法 |
CN104112005A (zh) * | 2014-07-15 | 2014-10-22 | 电子科技大学 | 分布式海量指纹识别方法 |
-
2020
- 2020-02-17 CN CN202010097455.5A patent/CN111324767A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102169507A (zh) * | 2011-05-26 | 2011-08-31 | 厦门雅迅网络股份有限公司 | 一种分布式实时搜索引擎 |
CN102629903A (zh) * | 2011-12-21 | 2012-08-08 | 奇智软件(北京)有限公司 | 一种互联网应用中的容灾备份系统及方法 |
CN104112005A (zh) * | 2014-07-15 | 2014-10-22 | 电子科技大学 | 分布式海量指纹识别方法 |
Non-Patent Citations (2)
Title |
---|
张剑等: ""面向信息网模型的高可扩展性分布式事务处理机制"", 《计算机工程》 * |
曾劲: ""海量音频数据管理系统"", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106776967B (zh) | 基于时序聚合算法的海量小文件实时存储方法及装置 | |
CN100399327C (zh) | 管理文件系统的逻辑版本的方法和数据存储系统 | |
US9864527B1 (en) | Distributed data storage management | |
US20200057752A1 (en) | Deduplication index enabling scalability | |
US11157445B2 (en) | Indexing implementing method and system in file storage | |
US20160350302A1 (en) | Dynamically splitting a range of a node in a distributed hash table | |
CN103458023A (zh) | 分布式闪存存储系统 | |
KR20100070968A (ko) | 클러스터 데이터 관리 시스템 및 클러스터 데이터 관리 시스템에서 병렬 처리를 이용한 데이터 복구 방법 | |
CN112015674A (zh) | 基于多层级的缓存资源访问方法、装置和计算机设备 | |
CN105814544A (zh) | 用于支持分布式数据网格中的持久化分区发现的系统和方法 | |
CN102024016A (zh) | 一种分布式文件系统快速数据恢复的方法 | |
WO2017028394A1 (zh) | 一种基于实例的分布式数据恢复方法和装置 | |
Malkhi et al. | From paxos to corfu: a flash-speed shared log | |
JP2015528957A (ja) | 分散ファイルシステム、ファイルアクセス方法及びクライアントデバイス | |
CN110245129B (zh) | 一种分布式全局数据去重方法和装置 | |
CN111552701A (zh) | 确定分布式集群中数据一致性的方法及分布式数据系统 | |
CN114721594A (zh) | 一种分布式存储方法、装置、设备及机器可读存储介质 | |
CN111324767A (zh) | 一种分布式音频指纹引擎系统 | |
CN113282618A (zh) | 一种Elasticsearch活跃集群检索优化方案及系统 | |
CN112995257B (zh) | 基于云存储架构的缓存扩容方法、装置以及存储介质 | |
CN109522311B (zh) | 数据存储方法、装置、服务器和存储介质 | |
WO2022083287A1 (zh) | 存储空间管理方法、装置、设备及存储介质 | |
CN113590380A (zh) | 一种数据库恢复方法及系统 | |
CN114168588A (zh) | 一种向量数据库存储与检索方法 | |
CN107066206B (zh) | 一种分布式物理磁盘的存储控制方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200623 |