BIND 10 #2202: introduce a lock for the data source client in auth

BIND 10 Development do-not-reply at isc.org
Wed Aug 22 05:40:39 UTC 2012


#2202: introduce a lock for the data source client in auth
-------------------------------------+-------------------------------------
                   Reporter:         |                 Owner:
  jinmei                             |                Status:  new
                       Type:  task   |             Milestone:  Next-Sprint-
                   Priority:         |  Proposed
  medium                             |            Resolution:
                  Component:         |             Sensitive:  0
  b10-auth                           |           Sub-Project:  DNS
                   Keywords:         |  Estimated Difficulty:  0
            Defect Severity:  N/A    |           Total Hours:  0
Feature Depending on Ticket:         |
  background zone loading            |
        Add Hours to Ticket:  0      |
                  Internal?:  0      |
-------------------------------------+-------------------------------------
Description changed by jinmei:

Old description:

> A subtask of #2201.
>
> Basically, anyone (within auth) who calls getClientList() or
> setClientList() needs to acquire the lock.  But until we actually
> needs it in multiple thread, I suggest we only acquire/release the
> lock in processNormalQuery().  Note that the lock must be held until
> the rendering is completed.  Also care for exception safety.
>
> Also, check its performance impact using query_bench on a couple of
> different platforms.
>
> Open question: I'm not sure whether to use boost's thread support or
> pthread (or some lower level C API) directly.  Boost provides nice
> features such as exception safety, but once we enable Boost thread
> it enables other thread-related overhead throughout the library.
> Right now I'm inclined to choose not to use Boost features (and
> explicitly disable threads by defining BOOST_DISABLE_THREADS at the
> top level), but this is a subject of project-wide discussion.

New description:

 A subtask of #2201.

 Basically, anyone (within auth) who calls getClientList() or
 setClientList() needs to acquire the lock.  But until we actually
 needs it in multiple thread, I suggest we only acquire/release the
 lock in processNormalQuery().  Note that the lock must be held until
 the rendering is completed.  Also care for exception safety.

 Also, check its performance impact using query_bench on a couple of
 different platforms. (note: we'll need #2216 for this)

 Open question: I'm not sure whether to use boost's thread support or
 pthread (or some lower level C API) directly.  Boost provides nice
 features such as exception safety, but once we enable Boost thread
 it enables other thread-related overhead throughout the library.
 Right now I'm inclined to choose not to use Boost features (and
 explicitly disable threads by defining BOOST_DISABLE_THREADS at the
 top level), but this is a subject of project-wide discussion.

--

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


More information about the bind10-tickets mailing list