docs: def __update_throughput(table_name, key_name, read_units, write_units):
      """ Update throughput on the DynamoDB table
  
      :type table_name: str
      :param table_name: Name of the DynamoDB table
      :type key_name: str
      :param key_name: Configuration option key name
      :type read_units: int
      :param read_units: New read unit provisioning
      :type write_units: int
      :param write_units: New write unit provisioning
      """
      try:
          current_ru = dynamodb.get_provisioned_table_read_units(table_name)
          current_wu = dynamodb.get_provisioned_table_write_units(table_name)
      except JSONResponseError:
          raise
  
      # Check table status
      try:
          table_status = dynamodb.get_table_status(table_name)
      except JSONResponseError:
          raise
      logger.debug('{0} - Table status is {1}'.format(table_name, table_status))
      if table_status != 'ACTIVE':
          logger.warning(
              '{0} - Not performing throughput changes when table '
              'is {1}'.format(table_name, table_status))
          return
  
      # If this setting is True, we will only scale down when
      # BOTH reads AND writes are low
      if get_table_option(key_name, 'always_decrease_rw_together'):
          read_units, write_units = __calculate_always_decrease_rw_values(
              table_name,
              read_units,
              current_ru,
              write_units,
              current_wu)
  
          if read_units == current_ru and write_units == current_wu:
              logger.info('{0} - No changes to perform'.format(table_name))
              return
  
      dynamodb.update_table_provisioning(
          table_name,
          key_name,
          int(read_units),
          int(write_units))