Package org.apache.accumulo.core.iterators

Examples of org.apache.accumulo.core.iterators.VersioningIterator


    DeletingIterator delIter = new DeletingIterator(multiIterator, false);
    SystemScanIterator ssi = new SystemScanIterator(delIter, Constants.NO_AUTHS, new byte[0], columns);
   
    ssi.seek(r, LocalityGroupUtil.EMPTY_CF_SET, false);
   
    VersioningIterator vi = new VersioningIterator();
    Map<String,String> opts = new HashMap<String,String>();
    opts.put("maxVersions", "1");
    vi.init(ssi, opts, null);
   
    return vi;
  }
View Full Code Here


    TreeMap<Key,Value> tm = new TreeMap<Key,Value>();
   
    createTestData(tm, colf, colq);
   
    try {
      VersioningIterator it = new VersioningIterator(new SortedMapIterator(tm), 3);
     
      // after doing this seek, should get zero keys for row 1
      Key seekKey = new Key(new Text(String.format("%03d", 1)), colf, colq, 15);
      it.seek(new Range(seekKey, null), EMPTY_COL_FAMS, false);
     
      TreeMap<Key,Value> tmOut = iteratorOverTestData(it);
     
      for (Entry<Key,Value> e : tmOut.entrySet()) {
        assertTrue(e.getValue().get().length == 8);
        assertTrue(16 < LongSummation.bytesToLong(e.getValue().get()));
      }
     
      assertTrue("size after seeking past versions was " + tmOut.size(), tmOut.size() == 0);
     
      // after doing this seek, should get zero keys for row 0 and 3 keys for row 1
      seekKey = new Key(new Text(String.format("%03d", 0)), colf, colq, 15);
      it.seek(new Range(seekKey, null), EMPTY_COL_FAMS, false);
     
      tmOut = iteratorOverTestData(it);
     
      for (Entry<Key,Value> e : tmOut.entrySet()) {
        assertTrue(e.getValue().get().length == 8);
View Full Code Here

   
    createTestData(tm, colf, colq);
   
    for (int i = 1; i <= 30; i++) {
      try {
        VersioningIterator it = new VersioningIterator(new SortedMapIterator(tm), i);
        TreeMap<Key,Value> tmOut = iteratorOverTestData(it);
       
        assertTrue("size after keeping " + i + " versions was " + tmOut.size(), tmOut.size() == Math.min(40, 2 * i));
      } catch (IOException e) {
        assertFalse(true);
View Full Code Here

   
    TreeMap<Key,Value> tm = new TreeMap<Key,Value>();
   
    createTestData(tm, colf, colq);
   
    VersioningIterator it = new VersioningIterator(new SortedMapIterator(tm), 3);
   
    Key seekKey = new Key(new Text(String.format("%03d", 1)), colf, colq, 19);
    it.seek(new Range(seekKey, false, null, true), EMPTY_COL_FAMS, false);
   
    assertTrue(it.hasTop());
    assertTrue(it.getTopKey().getTimestamp() == 18);
   
  }
View Full Code Here

    TreeMap<Key,Value> tm = new TreeMap<Key,Value>();
   
    createTestData(tm, colf, colq);
   
    try {
      VersioningIterator it = new VersioningIterator(new SortedMapIterator(tm), 3);
      TreeMap<Key,Value> tmOut = iteratorOverTestData(it);
     
      for (Entry<Key,Value> e : tmOut.entrySet()) {
        assertTrue(e.getValue().get().length == 8);
        assertTrue(16 < LongSummation.bytesToLong(e.getValue().get()));
View Full Code Here

    TreeMap<Key,Value> tm = new TreeMap<Key,Value>();
   
    createTestData(tm, colf, colq);
   
    try {
      VersioningIterator it = new VersioningIterator(new SortedMapIterator(tm), 3);
     
      // after doing this seek, should only get two keys for row 1
      // since we are seeking to the middle of the most recent
      // three keys
      Key seekKey = new Key(new Text(String.format("%03d", 1)), colf, colq, 18);
      it.seek(new Range(seekKey, null), EMPTY_COL_FAMS, false);
     
      TreeMap<Key,Value> tmOut = iteratorOverTestData(it);
     
      for (Entry<Key,Value> e : tmOut.entrySet()) {
        assertTrue(e.getValue().get().length == 8);
View Full Code Here

      tabletIters.add(in);
    }
   
    MultiIterator multiIter = new MultiIterator(tabletIters, ke);
    DeletingIterator delIter = new DeletingIterator(multiIter, false);
    VersioningIterator tabletIter = new VersioningIterator(delIter, 1);
    tabletIter.seek(new Range(), LocalityGroupUtil.EMPTY_CF_SET, false);
   
    TreeMap<Key,Value> tm = new TreeMap<Key,Value>();
   
    while (tabletIter.hasTop()) {
     
      Key key = tabletIter.getTopKey();
      Value val = tabletIter.getTopValue();
     
      // System.out.println("ORIG "+key+" "+val);
     
      try {
        if (key.getRow().getLength() > 0 && key.getRow().getBytes()[0] == '~') {
          flushRow(out, tm, maxTime);
          if (key.getRow().toString().startsWith("~del")) {
            if (!key.getRow().toString().startsWith("~del/!METADATA")) {
              String path = key.getRow().toString().substring(4);
             
              path = converFileName(path).toString();
              String[] tokens = path.split("/");
              tokens[1] = tableIds.get(tokens[1]);
              path = StringUtil.join(Arrays.asList(tokens), "/");
             
              Key newKey = new Key(new Text("~del" + path));
              newKey.setTimestamp(key.getTimestamp());
              out.append(newKey, val);
            }
          } else {
            out.append(key, val);
          }
        } else {
          Key newKey = translateKey(key, colQualMap, tableIds);
         
          if (newKey.getColumnFamily().equals(Constants.METADATA_DATAFILE_COLUMN_FAMILY) && !newKey.isDeleted()) {
            val = rencodeDatafileValue(val);
          } else if (Constants.METADATA_PREV_ROW_COLUMN.equals(newKey.getColumnFamily(), newKey.getColumnQualifier())) {
            Text per = KeyExtent.decodePrevEndRow(val);
            if (per == null)
              val = new Value(val.get(), true);
            else if (new KeyExtent(newKey.getRow(), (Text) null).getTableId().toString().equals(Constants.METADATA_TABLE_ID) && per.getBytes()[0] != '~')
              val = KeyExtent.encodePrevEndRow(translateRow(per, tableIds));
            else
              val = new Value(val.get(), true);
           
          } else {
            val = new Value(val.get(), true);
          }
         
          if (tm.size() > 0 && !tm.lastKey().getRow().equals(newKey.getRow())) {
            flushRow(out, tm, maxTime);
          }
         
          tm.put(newKey, val);
        }
      } catch (Exception e) {
        System.err.println("Failed to convert !METADATA entry " + key + " " + val);
        throw e;
      }
     
      tabletIter.next();
    }
   
    flushRow(out, tm, maxTime);
   
  }
View Full Code Here

      rootFileIters.add(in);
    }
   
    MultiIterator multiIter = new MultiIterator(rootFileIters, true);
    DeletingIterator delIter = new DeletingIterator(multiIter, false);
    VersioningIterator rootIter = new VersioningIterator(delIter, 1);
   
    TreeMap<Key,Value> files = new TreeMap<Key,Value>();
   
    fs.mkdirs(new Path(Constants.getMetadataTableDir() + "_new" + "/default_tablet"));
    FileSKVWriter defaultTabletFile = FileOperations.getInstance().openWriter(Constants.getMetadataTableDir() + "_new" + "/default_tablet/00000_00000.rf", fs,
        conf, AccumuloConfiguration.getDefaultConfiguration());
    defaultTabletFile.startDefaultLocalityGroup();
   
    while (rootIter.hasTop()) {
      Key key = rootIter.getTopKey();
      Value val = rootIter.getTopValue();
     
      // System.out.println("ROOT "+key+" "+val);
     
      if (key.getRow().toString().equals("!METADATA;!METADATA<")) {
        rootIter.next();
        continue;
      }
     
      if (files.size() > 0 && !files.lastKey().getRow().equals(key.getRow())) {
        processTabletFiles(conf, fs, maxTime, tableIds, files, defaultTabletFile);
        files.clear();
      }
     
      files.put(new Key(key), new Value(val));
      rootIter.next();
    }
   
    processTabletFiles(conf, fs, maxTime, tableIds, files, defaultTabletFile);
   
    defaultTabletFile.close();
View Full Code Here

TOP

Related Classes of org.apache.accumulo.core.iterators.VersioningIterator

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.