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.