~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/slave.cc

  • Committer: Brian Aker
  • Date: 2008-10-08 07:48:37 UTC
  • Revision ID: brian@tangent.org-20081008074837-fl4pbrupvvtolezn
Wrote out master.info (more of it). Add to this more private'izing of
Master_Info object.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1083
1083
                     " to the relay log, SHOW SLAVE STATUS may be"
1084
1084
                     " inaccurate"));
1085
1085
      rli->relay_log.harvest_bytes_written(&rli->log_space_total);
1086
 
      if (mi->flush_master_info(1))
 
1086
      if (mi->flush())
1087
1087
        sql_print_error(_("Failed to flush master info file"));
1088
1088
      delete ev;
1089
1089
    }
1225
1225
    protocol->store((uint32_t) mi->getPort());
1226
1226
    protocol->store(mi->getConnectionRetry());
1227
1227
    protocol->store(mi->getLogName(), &my_charset_bin);
1228
 
    protocol->store((uint64_t) mi->master_log_pos);
 
1228
    protocol->store((uint64_t) mi->getLogPosition());
1229
1229
    protocol->store(mi->rli.group_relay_log_name.c_str() +
1230
1230
                    dirname_length(mi->rli.group_relay_log_name.c_str()),
1231
1231
                    &my_charset_bin);
1425
1425
  *suppress_warnings= false;
1426
1426
 
1427
1427
  // TODO if big log files: Change next to int8store()
1428
 
  int4store(buf, (uint32_t) mi->master_log_pos);
 
1428
  int4store(buf, (uint32_t) mi->getLogPosition());
1429
1429
  int2store(buf + 4, binlog_flags);
1430
1430
  int4store(buf + 6, server_id);
1431
1431
  len = (uint32_t) strlen(logname);
1889
1889
  {
1890
1890
    char buf[256], llbuff[22];
1891
1891
    snprintf(buf, sizeof(buf), _(messages[SLAVE_RECON_MSG_FAILED]),
1892
 
             IO_RPL_LOG_NAME, llstr(mi->master_log_pos, llbuff));
 
1892
             IO_RPL_LOG_NAME, llstr(mi->getLogPosition(), llbuff));
1893
1893
    /*
1894
1894
      Raise a warining during registering on master/requesting dump.
1895
1895
      Log a message reading event.
1973
1973
  {
1974
1974
    sql_print_information(_("Slave I/O thread: connected to master '%s@%s:%d',"
1975
1975
                            "replication started in log '%s' at position %s"),
1976
 
                          mi->getUsername(), mi->getHostname(), mi->port,
 
1976
                          mi->getUsername(), mi->getHostname(), mi->getPort(),
1977
1977
                          IO_RPL_LOG_NAME,
1978
 
                          llstr(mi->master_log_pos,llbuff));
 
1978
                          llstr(mi->getLogPosition(), llbuff));
1979
1979
  /*
1980
1980
    Adding MAX_LOG_EVENT_HEADER_LEN to the max_packet_size on the I/O
1981
1981
    thread, since a replication event can become this much larger than
2110
2110
      {
2111
2111
        goto err;
2112
2112
      }
2113
 
      if (mi->flush_master_info(1))
 
2113
      if (mi->flush())
2114
2114
      {
2115
2115
        sql_print_error(_("Failed to flush master info file"));
2116
2116
        goto err;
2144
2144
// print the current replication position
2145
2145
  sql_print_information(_("Slave I/O thread exiting, read up to log '%s', "
2146
2146
                          "position %s"),
2147
 
                        IO_RPL_LOG_NAME, llstr(mi->master_log_pos,llbuff));
 
2147
                        IO_RPL_LOG_NAME, llstr(mi->getLogPosition(), llbuff));
2148
2148
  pthread_mutex_lock(&LOCK_thread_count);
2149
2149
  thd->query = thd->db = 0; // extra safety
2150
2150
  thd->query_length= thd->db_length= 0;
2690
2690
  }
2691
2691
 
2692
2692
  pthread_mutex_lock(&mi->data_lock);
2693
 
  ev->log_pos= mi->master_log_pos; /* 3.23 events don't contain log_pos */
 
2693
  ev->log_pos= mi->getLogPosition(); /* 3.23 events don't contain log_pos */
2694
2694
  switch (ev->get_type_code()) {
2695
2695
  case STOP_EVENT:
2696
2696
    ignore_event= 1;
2719
2719
    ev->log_pos+= inc_pos;
2720
2720
    int32_t error = process_io_create_file(mi,(Create_file_log_event*)ev);
2721
2721
    delete ev;
2722
 
    mi->master_log_pos += inc_pos;
 
2722
    mi->incrementLogPosition(inc_pos);
2723
2723
    pthread_mutex_unlock(&mi->data_lock);
2724
2724
    free((char*)tmp_buf);
2725
2725
    return(error);
2745
2745
    rli->relay_log.harvest_bytes_written(&rli->log_space_total);
2746
2746
  }
2747
2747
  delete ev;
2748
 
  mi->master_log_pos+= inc_pos;
 
2748
  mi->incrementLogPosition(inc_pos);
2749
2749
  pthread_mutex_unlock(&mi->data_lock);
2750
2750
  return(0);
2751
2751
}
2799
2799
  }
2800
2800
  rli->relay_log.harvest_bytes_written(&rli->log_space_total);
2801
2801
  delete ev;
2802
 
  mi->master_log_pos+= inc_pos;
 
2802
  mi->incrementLogPosition(inc_pos);
2803
2803
err:
2804
2804
  pthread_mutex_unlock(&mi->data_lock);
2805
2805
  return(0);
2952
2952
       TODO: handling `when' for SHOW SLAVE STATUS' snds behind
2953
2953
    */
2954
2954
    if ((mi->setLogName(hb.get_log_ident()) && mi->getLogName() != NULL)
2955
 
        || mi->master_log_pos != hb.log_pos)
 
2955
        || mi->getLogPosition() != hb.log_pos)
2956
2956
    {
2957
2957
      /* missed events of heartbeat from the past */
2958
2958
      error= ER_SLAVE_HEARTBEAT_FAILURE;
3009
3009
        buf[EVENT_TYPE_OFFSET]!=ROTATE_EVENT &&
3010
3010
        buf[EVENT_TYPE_OFFSET]!=STOP_EVENT)
3011
3011
    {
3012
 
      mi->master_log_pos+= inc_pos;
 
3012
      mi->incrementLogPosition(inc_pos);
3013
3013
      memcpy(rli->ign_master_log_name_end, mi->getLogName(), FN_REFLEN);
3014
3014
      assert(rli->ign_master_log_name_end[0]);
3015
3015
      rli->ign_master_log_pos_end= mi->getLogPosition();
3021
3021
    /* write the event to the relay log */
3022
3022
    if (likely(!(rli->relay_log.appendv(buf,event_len,0))))
3023
3023
    {
3024
 
      mi->master_log_pos+= inc_pos;
 
3024
      mi->incrementLogPosition(inc_pos);
3025
3025
      rli->relay_log.harvest_bytes_written(&rli->log_space_total);
3026
3026
    }
3027
3027
    else