BIND 10 #1847: CC timeouts in auth

BIND 10 Development do-not-reply at isc.org
Wed Apr 4 04:26:17 UTC 2012


#1847: CC timeouts in auth
-------------------------------------+-------------------------------------
                   Reporter:  jreed  |                 Owner:
                       Type:         |                Status:  closed
  defect                             |             Milestone:  New Tasks
                   Priority:         |            Resolution:  invalid
  medium                             |             Sensitive:  0
                  Component:         |           Sub-Project:  DNS
  Unclassified                       |  Estimated Difficulty:  2
                   Keywords:         |           Total Hours:  0
            Defect Severity:  N/A    |
Feature Depending on Ticket:         |
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------

Comment (by jinmei):

 Replying to [comment:13 naokikambe]:

 > > One possibility I had in my mind is that b10-auth stores
 > > statistics in a separate storage such as an SQLite3 DB file, maybe in
 > > a periodic batch task.  b10-stats or any other statistics clients
 > > would then retrieve the stored statistics values from that storage
 > > separately.
 >
 > IMO stats might periodically pull out statistics from each module via a
 CC session, and store them into an SQLite3 DB together with a timestamp.
 Because maybe auth is very busy to answering DNS queries, and its
 asynchronous writing to the SQLite3 DB is likely to be very difficult. I'm
 afraid it might be possible to affect its response performance. That
 situations of auth are definitely in my image. If we complete replacing
 the current msgq with another better implement, couldn't that issue be
 problem, which is transmitting large bytes in the CC channel?

 I wouldn't expect too much from an unrealized magic technology:-)

 I believe we all share the same goal: exchanging statistic information
 from a (possibly very busy) server module and a statistics collector
 without disrupting the main service of the server.  It just seems to
 me that opinions/views vary about where the major bottleneck that may
 cause the disruption is.

 To me, explicit inter-process communication, especially for a large
 amount of data, is much riskier in that sense.  The other end might
 also be busy and the send() operation could block, but asynchronous
 communication makes the code more complicated.  Also, I'm not so sure
 how and where b10-auth can store the statistics data until it's asked
 to provide it by the collector (which is an unpredictable event in the
 pull model).  The number of zones may be millions, and the zone data
 may be in a separate DB file or DB server, and b10-auth may not even
 be able to have a handy way to get a list of all zones stored in the
 DB.

 Alternatively, b10-auth could simply build and maintain the statistics
 as it responds to queries on the fly (and in memory), and periodically
 (e.g. every 30 sec) dump it to somewhere, either to the collector via
 asynchronous communication, or to an SQLite3 DB file.  I guess
 synchronous write is okay for the latter case if the period is
 reasonably short, and the implementation can be much simpler.  This is
 what I imagined at the cited part above.

 But, again, I'm not insisting on any particular approach as long as
 the goal is achieved.  So far, however, it seems to me that direct
 communication approach has more difficult issues to solve for
 stability and scalability.

-- 
Ticket URL: <http://bind10.isc.org/ticket/1847#comment:14>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list