Uploaded image for project: 'Java Driver'
  1. Java Driver
  2. JAVA-1015

Allow configuration of heartbeat background threads to be set via API

      The Java driver, as of version 2.9.0, supports automatic failover of mongos instances (JAVA-381). The parameters that determine the wait time when the active mongos becomes unavailable, until choosing a new mongos, are only available as system properties. They cannot be set directly via the driver API. This ticket is to add API support for directly specifying the failover timeout value.

      For the record, the relevant system properties, and their default values, are:

      updaterIntervalMS = Integer.parseInt(System.getProperty("com.mongodb.updaterIntervalMS", "5000"));
      updaterIntervalNoMasterMS = Integer.parseInt(System.getProperty("com.mongodb.updaterIntervalNoMasterMS", "10"));
      mongoOptionsDefaults.connectTimeout = Integer.parseInt(System.getProperty("com.mongodb.updaterConnectTimeoutMS", "20000"));
      mongoOptionsDefaults.socketTimeout = Integer.parseInt(System.getProperty("com.mongodb.updaterSocketTimeoutMS", "20000"));
      

      The maximum time to failover to a new mongos is:

      Sum of: <com.mongodb.updaterIntervalMS> + max(com.mongodb.updaterSocketTimeoutMS, com.mongodb.updaterConnectTimeoutMS, ping time) for each mongos

      The new options are:

      • MongoClientOptions#getHeartbeatFrequency
      • MongoClientOptions#getHeartbeatConnectRetryFrequency
      • MongoClientOptions#getHeartbeatConnectTimeout
      • MongoClientOptions#getHeartbeatSocketTimeout
      • MongoClientOptions#getHeartbeatThreadCount

            Assignee:
            jeff.yemin@mongodb.com Jeffrey Yemin
            Reporter:
            jeff.yemin@mongodb.com Jeffrey Yemin
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: