当前位置:网站首页>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值。
边栏推荐
猜你喜欢
随机推荐
命令行加载特效 【cli-spinner.js】 实用教程
Scala parallel collections, parallel concurrency, thread safety issues, ThreadLocal
scala reduce、reduceLeft 、reduceRight 、fold、foldLeft 、foldRight
Qt 下拉复选框(MultiSelectComboBox)(一) 实现下拉框多选,搜索下拉框内容
IDEA2021.2安装与配置(持续更新)
LINGO 18.0 software installation package download and installation tutorial
Add Modulo 10 (规律循环节,代码实现细节)
分析型数据库性能测试总结
机器学习(公式推导与代码实现)--sklearn机器学习库
10 minutes to get you started chrome (Google) browser plug-in development
flutter 应用 抓包
线性表
PostgreSQL的架构
【LeetCode】622.设计循环队列
【字节面试】word2vector输出多少个类别
0day_Topsec上网行为管理RCE
C# 一周入门高级编程之《C#-接口》Day Two
获取JDcookie的方法
【LeetCode】226.翻转二叉树
gpnmb+ gpnmb-AT2 cell idling mapping Epithelial cell idling mapping









