RASCAL MILESTONE_01

Justin Forest <[email protected]> Thu, 01 Apr 2004 16:55:48 +0400
Newsgroups gmane.comp.misc.faerion.devel
Message-ID <[email protected]>
Hello.

The real first milestone which updates the previous report.  This time 
with a tag applied to the source, R2_0_M1.  The most changed parts are 
common/ and nt/.

The code has been quite rearranged, again, due to the latest changes in 
the infrastructure: every (somewhat) persistant object is now a 
descendant of class "object", which allowed creating a centralized stock 
of objects with automatic rid assignment, and a unified cancel() method. 
  There is now a different set of connection, reader and writer classes 
for datagram oriented connections, which use specific methods of data 
transmition (it was quite tricky to made reliable).

The test/03/ program is there for testing the DNS subsystem.  It is now 
capable of sending a (specified) number of queries to resolve a 
(specified) hostname, with (or without) a delay between requests.  It 
displays statistics about how much time was taken to both send all 
queries and receive all replies.  (The former is primarily useful to 
measure throughput in no-delay mode.)  Current tests show resolution of 
10000 (ten thousand) packets in ~8.9 seconds without a single packet 
lost; though, a local named is being used.

We now have a configuration script.  All makefiles, including Makedefs, 
have been adopted to use automatically detected data.  Though Makedefs 
is expected to work as a stand-alone included script, it will only work 
smooth on generic systems like MinGW and canonical BSD.

Comments.

The code for working with datagrams is fully accessible through the 
standard interface, I'm thinking about extending the API to allow 
applications to use datagram connections, too.

The test-03 application is currently running at my machine in low-load 
mode sending one million packets, to find possible memory leaks.  So far 
the size of the working memory set is 2387968 bytes, the initial value.

I'll add an option to add a random suffix to queried hostnames (to abuse 
DNS cache) and try it on an external DNS server later, to measure packet 
loss in real environment.

Plans on next milestone.

1. Create a DNS monitor thread that would resend requests that we 
haven't got a reply to in a configured amount of time.  Timeout, that is.

2. Add an option to specify multiple name servers, having every request 
sent to all of them simultaneously.  Possibly, there will be a way to 
change resolution failure policy: either with the first NXDOMAIN reply 
(means faster resolution), or with the last NXDOMAIN reply (allows mixed 
networks, e.g. ICANN + OpenNIC).  Although the idea of multinetworked 
resolution is yet to be proven worth, supporting multiple name servers 
is a must.

3. Have a working BSD version.

Comments.

While the tests are running, I'll be reworking the documentation to 
follow the new way of presenting the information and correct everything 
that has been changed.



-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
-------------------------------------------------------
Discussions in this list are held in two languages: English and Russian.
When replying, please use the language that the sender of the original
message is guaranteed to understand, or use English.