当前位置:网站首页>bihash总结
bihash总结
2022-08-03 09:00:00 【懒少】
官方https://s3-docs.fd.io/vpp/22.10/developer/corearchitecture/bihash.html
Vpp uses bounded-index extensible hashing to solve a variety of exact-match (key, value) lookup problems. Benefits of the current implementation:
Very high record count scaling, tested to 100,000,000 records.
Lookup performance degrades gracefully as the number of records increases
No reader locking required
Template implementation, it’s easy to support arbitrary (key,value) types
以上介绍了bihash的优点
Initializing a bihash table
Call the init function as shown. As a rough guide, pick a number of buckets which is approximately number_of_expected_records/BIHASH_KVP_PER_PAGE from the relevant template instance header-file. See previous discussion.
The amount of memory selected should easily contain all of the records, with a generous allowance for hash collisions. Bihash memory is allocated separately from the main heap, and won’t cost anything except kernel PTE’s until touched, so it’s OK to be reasonably generous.
For example:
my_main_t *mm = &my_main; clib_bihash_8_8_t *h; h = &mm->hash_table; clib_bihash_init_8_8 (h, "test", (u32) number_of_buckets, (uword) memory_size);
bihash初始化时需要传入buckets大小和memory_size
buckets最优值:你预期存储的记录数除以BIHASH_KVP_PER_PAGE ,BIHASH_KVP_PER_PAGE 是bihash中一个page存储记录的个数,默认是4.假如存储50万记录
500000/4=125000
memory_size:最好就是能存储50万记录,存储解决hash冲突的数据结构,存储buckets,意思是给充足点。bihash 一个记录大小 kv 包含key值和value值。
边栏推荐
猜你喜欢
随机推荐
Eject stubborn hard drives with diskpart's offline command
LINGO 18.0软件安装包下载及安装教程
dflow部署简记
线性表
MySQL-DDL数据定义语言-约束
多媒体数据处理实验4:LSH索引
系统io统计
110 MySQL interview questions and answers (continuous updates)
STP生成树选举结果查看及验证
线程介绍与使用
qt使用mysql数据库(自学笔记)
IDEA2021.2安装与配置(持续更新)
swiper分类菜单双层效果demo(整理)
内存模型之有序性
JMeter接口自动化发包与示例
【LeetCode】101. Symmetric Binary Tree
dflow入门3——dpdispatcher插件
Gauva的ListenableFuture
uniapp swiper 卡片轮播 修改指示点样式效果demo(整理)
【LeetCode】622.设计循环队列