[dpdk-users] DPDK hash table dynamic growth

Fu, Qiaobin qiaobinf at bu.edu
Mon Apr 17 19:44:55 CEST 2017


Thanks @Alex and @Stephen for pointing these valuable materials to me!

Maybe it’s better that I can clarify my scenarios more. Actually, we are using RSS (source + destination IP) to distribute packets, so we are maintaining one hash table per lcore (thread), and there is no need for synchronization issue in our case. If there are more solutions, please let me know. I will compare the solutions, and pick up the best suitable one.

Best,
Qiaobin

On Apr 17, 2017, at 1:30 PM, Alex Kiselev <kiselev99 at gmail.com<mailto:kiselev99 at gmail.com>> wrote:

I would take a look at:

1) http://preshing.com/20160201/new-concurrent-hash-maps-for-cpp/
2) https://github.com/efficient/libcuckoo
3)
http://high-scale-lib.cvs.sourceforge.net/viewvc/high-scale-lib/high-scale-lib/org/cliffc/high_scale_lib/NonBlockingHashMap.java?view=markup
https://www.youtube.com/watch?v=HJ-719EGIts
https://www.youtube.com/watch?v=WYXgtXWejRM

But there is a catch, none of them is written in C.

2017-04-17 19:54 GMT+03:00 Stephen Hemminger <stephen at networkplumber.org>:
On Mon, 17 Apr 2017 15:47:59 +0000
"Fu, Qiaobin" <qiaobinf at bu.edu> wrote:

Hello,

Currently, I am using the hash library to handle network flows defined as source and destination IP addresses. I need to find a way to alleviate memory pressure when the table is full. However, after some research, I didn’t find any hints on the dynamic growth in the hash library. Could anyone point me some hints on this? Thanks.

Best,
Qiaobin

If you need growing hash table, I recommend the lock-free hash table in the Linux userspace RCU library;
rather than the more limited DPDK one.



--
--
Kiselev Alexander



More information about the users mailing list