From: Patrick McHardy <kaber@trash.net>
To: Harald Welte <laforge@netfilter.org>
Cc: Henrik Nordstrom <hno@marasystems.com>,
Netfilter Development Mailinglist
<netfilter-devel@lists.netfilter.org>
Subject: Re: ctnetlink questions
Date: Tue, 21 Oct 2003 18:47:06 +0200 [thread overview]
Message-ID: <3F95630A.3090507@trash.net> (raw)
In-Reply-To: <20031020183954.GC20288@sunbeam.de.gnumonks.org>
Harald Welte wrote:
>Mh, well let's go for the 64bit, as there seems to be no other choice.
>But we should start working on the variable-sized conntracks within
>short time afterwards.
>
Ok there's another problem, for fast lookups by id (we don't want to
search the entire hash) we need to encode the hash chain of a tuple
in the id. We basically have two choices now for the remaining bits:
a) keep using a global counter which reduces namespace to
2^(64-lg(hashsize))
b) use a per-bucket counter which keeps 64 bit namespace and eliminates
potential contention on the counter but requires as much memory as the
hash buckets themselves.
The problem is guessing how big the hash might get. With a hash of 2^20
buckets and 1 million connections/s the ids wrap after 0.5 years with
possibility a. Even if the connection rate may be unrealistic high I
assume a hash size of 2^20 and bigger is realistic now or might be soon,
so the chance of seeing reused ids is real. Possibility b is of course
not acceptable due to memory usage.
My proposed solution is to reserve 16bit for the chain id and to
compensate for the remaining used bits by keeping
2^max(number_of_bits-16, 0) counters. This always gives us 48bit for
the id (if hash distribution is good), with the numbers above that is
~9 years without a wraparound while keeping 16 counters. For a hash
size <= 2^16 we still only have one counter, but if we really
experience contention we now can easily increase it.
Does that sound ok ? Feel free to shut me up by giving some more
realistic numbers ;)
Best regards,
Patrick
next prev parent reply other threads:[~2003-10-21 16:47 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20031019171851.GR21521@sunbeam.de.gnumonks.org>
2003-10-19 19:36 ` ctnetlink questions Patrick McHardy
2003-10-19 20:28 ` Harald Welte
2003-10-19 22:55 ` Patrick McHardy
2003-10-20 1:05 ` Henrik Nordstrom
2003-10-20 3:01 ` Patrick McHardy
2003-10-20 3:09 ` Patrick McHardy
2003-10-20 6:34 ` Henrik Nordstrom
2003-10-20 17:53 ` Patrick McHardy
2003-10-20 7:15 ` Harald Welte
2003-10-20 9:37 ` Henrik Nordstrom
2003-10-20 18:43 ` Patrick McHardy
2003-10-20 18:37 ` Harald Welte
2003-10-20 19:17 ` Patrick McHardy
2003-10-20 19:41 ` Balazs Scheidler
2003-10-20 20:20 ` Patrick McHardy
2003-10-20 22:59 ` Harald Welte
2003-10-20 18:17 ` Patrick McHardy
2003-10-20 18:39 ` Harald Welte
2003-10-20 19:21 ` Patrick McHardy
2003-10-21 16:47 ` Patrick McHardy [this message]
2003-10-21 19:54 ` Henrik Nordstrom
2003-10-21 20:00 ` Patrick McHardy
2003-10-20 18:52 ` Harald Welte
2003-10-20 19:52 ` Patrick McHardy
2003-10-20 23:09 ` Harald Welte
2003-10-20 7:04 ` Harald Welte
2003-10-20 7:17 ` Jozsef Kadlecsik
2003-10-20 9:29 ` Henrik Nordstrom
2004-02-06 18:52 ` Harald Welte
2004-02-09 10:33 ` Pablo Neira
2004-02-10 12:39 ` Patrick McHardy
2004-02-14 20:03 ` Harald Welte
2004-02-15 10:01 ` Patrick McHardy
2004-02-17 21:37 ` Harald Welte
2003-10-20 14:48 ` Harald Welte
2003-10-20 18:53 ` Patrick McHardy
2003-10-20 22:57 ` Harald Welte
2003-10-20 11:11 ` Jozsef Kadlecsik
2003-10-20 6:58 ` Harald Welte
2003-10-19 14:54 Harald Welte
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3F95630A.3090507@trash.net \
--to=kaber@trash.net \
--cc=hno@marasystems.com \
--cc=laforge@netfilter.org \
--cc=netfilter-devel@lists.netfilter.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.