Hello Alex,
1.5.0-rc1 does not have this limitation, updates are stored in a queue
there.
As for this code, we could change it to pthread_mutex_lock(), but that
way updates could block all the answering threads. This is somewhat okay
for hidden master scenario, but not okay in general. We could use queue
in the 1.4.x as well, but since it's already in 1.5.x, would you be
wiling to give that a try?
Oh, and just to clarify one thing, even with 1.5, DDNS will be *really,
really* slow with big zones, nowhere near BIND's performance (think 1
qps of actual processed updates with 100M zone :( - queuing itself will
be much faster, but I suppose it's the actual processing (i.e. when the
changes are visible) that's important to you). 5k qps were only
possible when we turned RCU and some other stuff off, but sadly, a
proper solution will come no sooner than in 1.6. If your BIND setup is
no longer suitable, we could try to hack some code that would speed up
the updates using our current code, but I'd rather focus on the proper
solution that does not have similar design problems to our current
solution.
Regards,
Jan
On Wed, 2014-06-18 at 09:33 +0000, Alex Massover wrote:
Hi Jan,
What does this code in update.c do? We're experiencing this error.
if (pthread_mutex_trylock(&zone->ddns_lock) != 0) {
qdata->rcode = KNOT_RCODE_SERVFAIL;
log_zone_error("Failed to process UPDATE for "
"zone %s: Another UPDATE in progress.\n",
zone->conf->name);
return NS_PROC_FAIL;
}
Is it a global lock on the whole zone, meaning that only one concurrent update can run
and the rest are rejected?
So should we force KNOT to a single thread?
What about using lock instead of trylock and increase a number of threads?
Thanks, Alex.
-----Original Message-----
From: knot-dns-users-bounces(a)lists.nic.cz [mailto:knot-dns-users-bounces@lists.nic.cz] On
Behalf Of Alex Massover
Sent: 05 June 2014 16:38
To: Jan Kadlec
Cc: knot-dns-users(a)lists.nic.cz
Subject: Re: [knot-dns-users] Parallel dynamic DNS updates
Thanks Jan,
5k of dynamic updates does the trick for us, at least for one year.
We'll do stress tests and will share the results to the forum as well.
Looking forward for the 1.6.0 release.
BR, Alex.
-----Original Message-----
From: Jan Kadlec [mailto:jan.kadlec@nic.cz]
Sent: Thursday, June 05, 2014 4:28 PM
To: Alex Massover
Cc: knot-dns-users(a)lists.nic.cz
Subject: Re: [knot-dns-users] Parallel dynamic DNS updates
Hello Alex,
unfortunately, in its current state, Knot DNS is not very fast when it comes to DDNS,
and it's partly because of RCU, since for every update, we have to do a partial copy
of the zone. We'll be doing a lot of improvements to Knot's internal structures
during summer, and we'll keep DDNS performance in mind, so hopefully things will get
better soon.
As of now, we do not plan to parallelize DDNS processing. We've done some
measurements, and we're confident we can easily achieve performance of ~5k QPS in
single thread only. We'll let you know once we have some working code and we can
discuss it further then. I'm sorry I don't have anything better for you, but
hopefully that will change with the 1.6.0 release.
Have a nice day,
Jan
On Wed, 2014-05-28 at 09:29 +0000, Alex Massover wrote:
Hi Ondřej,
We have a master server which receives only updates and a farm of slave servers (ifxr),
which handle reads.
The issue is scaling master server, 1 zone, which is 80M (text), currently we cannot get
more than 200 QPS updates from BIND on 4-way SMP Linux machine.
Each update request is usually 1-2 records. And usually we don't have parallel
updates which are working on the same record.
Our target is 10x from current - i.e. ~1G single zone, which does ~2-4k QPS of updates.
Actually as much as possible in terms of QPS, CPUs & memory is not an issue - we can
get stronger machine.
Thanks, Alex.
-----Original Message-----
From: Ondřej Surý [mailto:ondrej.sury@nic.cz]
Sent: 28 May 2014 11:23
To: Alex Massover
Cc: knot-dns-users(a)lists.nic.cz
Subject: Re: [knot-dns-users] Parallel dynamic DNS updates
Hi Alex,
could you describe your scenario in more detail?
How many zones are we talking about?
How big the zones are?
How many updates per second per zone?
O.
--
Ondřej Surý -- Chief Science Officer
-------------------------------------------
CZ.NIC, z.s.p.o. -- Laboratoře CZ.NIC
Americka 23, 120 00 Praha 2, Czech Republic
mailto:ondrej.sury@nic.cz
http://nic.cz/
-------------------------------------------
----- Original Message -----
From: "Alex Massover"
<alex(a)jajah.com>
To: knot-dns-users(a)lists.nic.cz
Sent: Wednesday, May 28, 2014 10:01:26 AM
Subject: [knot-dns-users] Parallel dynamic DNS updates
Hello,
I'm trying to understand if Knot can solve
our performance problem
with big scale dynamic DNS deployment. Currently we use BIND and the
performance of Dynamic Updates is insufficient for our requirements.
Doing some research I understood that BIND processes updates
sequentially and can't really benefit from SMP.
I understand how RCU allows parallel reads with
updates. But reads
is not an issue in our deployment. My question is, does Knot able to
process multiple updates in parallel (and not sequentially) and
provide a better scale for _ updates _?
As far as I understand it depends on data
structure hierarchy
implemented in Knot.
--
Alex Massover | Telefónica Digital
Architect
M +972-54-2279512
alex(a)jajah.com
_______________________________________________
knot-dns-users mailing list
knot-dns-users(a)lists.nic.cz
https://lists.nic.cz/cgi-bin/mailman/listinfo/knot-dns-users
_______________________________________________
knot-dns-users mailing list
knot-dns-users(a)lists.nic.cz
https://lists.nic.cz/cgi-bin/mailman/listinfo/knot-dns-users
_______________________________________________
knot-dns-users mailing list
knot-dns-users(a)lists.nic.cz
https://lists.nic.cz/cgi-bin/mailman/listinfo/knot-dns-users