You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@accumulo.apache.org by "Sean Busbey (JIRA)" <ji...@apache.org> on 2014/06/10 16:32:01 UTC

[jira] [Created] (ACCUMULO-2882) Initialize double-sets the initial configuration for the metadata and root tables

Sean Busbey created ACCUMULO-2882:
-------------------------------------

             Summary: Initialize double-sets the initial configuration for the metadata and root tables
                 Key: ACCUMULO-2882
                 URL: https://issues.apache.org/jira/browse/ACCUMULO-2882
             Project: Accumulo
          Issue Type: Bug
          Components: start
    Affects Versions: 1.6.0
            Reporter: Sean Busbey
            Priority: Trivial
             Fix For: 1.6.1, 1.7.0


We handle initializing a new instance by calling a utility method on each of the metadata and root tables. That utility method ignores the passed table id and instead sets the initial table configs for each of the metadata and root tables.

That means we end up setting them twice. I believe the action is idempotent (since we're using the same values each time), so no failure should result.

{code}
  public static void initMetadataConfig(String tableId) throws IOException {
    try {
      Configuration conf = CachedConfiguration.getInstance();
      int max = conf.getInt("dfs.replication.max", 512);
      // Hadoop 0.23 switched the min value configuration name
      int min = Math.max(conf.getInt("dfs.replication.min", 1), conf.getInt("dfs.namenode.replication.min", 1));
      if (max < 5)
        setMetadataReplication(max, "max");
      if (min > 5)
        setMetadataReplication(min, "min");
      for (Entry<String,String> entry : initialMetadataConf.entrySet()) {
         /* XXX There should only be one of these, and the table id should 
                     be the one passed in.
           */
        if (!TablePropUtil.setTableProperty(RootTable.ID, entry.getKey(), entry.getValue()))
          throw new IOException("Cannot create per-table property " + entry.getKey());
        if (!TablePropUtil.setTableProperty(MetadataTable.ID, entry.getKey(), entry.getValue()))
          throw new IOException("Cannot create per-table property " + entry.getKey());
      }
    } catch (Exception e) {
      log.fatal("error talking to zookeeper", e);
      throw new IOException(e);
    }
  }
{code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)