BIND 10 #2049: "exclusive" mode of DataSourceClient

BIND 10 Development do-not-reply at isc.org
Sat Jun 16 06:28:25 UTC 2012


#2049: "exclusive" mode of DataSourceClient
-------------------------------------+-------------------------------------
            Reporter:  jinmei        |                        Owner:
                Type:  task          |                       Status:  new
            Priority:  medium        |                    Milestone:  Next-
           Component:  data source   |  Sprint-Proposed
           Sensitive:  0             |                     Keywords:
         Sub-Project:  DNS           |              Defect Severity:  N/A
Estimated Difficulty:  0             |  Feature Depending on Ticket:
         Total Hours:  0             |          Add Hours to Ticket:  0
                                     |                    Internal?:  0
-------------------------------------+-------------------------------------
 In the current implementation of database-based data source clients,
 the zone iterator and updater use a separate database accessor
 (by "cloning") so that it can be used separate from the factory
 client.

 In general cases it's probably okay, but it doesn't have to be so
 if the client is used by a single thread and iterator or updater
 isn't used in parallel with other client features such as zone
 finders.  "cloning" would normally mean opening a separate connection
 to the database server and can be expensive, so it probably makes
 sense if we allow an application to skip it based on application's
 choice.

 For xfrin or xfrout this may not be that a big deal, but for ddns I
 guess it can be substantial for performance.

 My suggestion is to introduce a notion of "exclusive" mode for the
 `DataSourceClient` object, and allows an app to specify it by, e.g.,
 calling `setExclusive(bool)` method.  When enabled, getIterator()
 and getUpdater() don't clone the accessor, and it's app's
 responsibility to use it safely.

-- 
Ticket URL: <http://bind10.isc.org/ticket/2049>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list