package com.ctriposs.tsdb; import java.io.IOException; import java.util.LinkedHashMap; import java.util.Map; import java.util.Random; public class DBEngineSeekTest { private static final String TEST_DIR = "d:\\tsdb_test\\seek_test"; private static final int INIT_COUNT = 10*1000*1000; private static DBEngine engine; public static void main(String[] args) throws IOException { DBConfig config = new DBConfig(TEST_DIR); engine = new DBEngine(config); String[] str = new String[]{"a","b","c","d","e","f","g"}; Random random = new Random(); long start = System.nanoTime(); String data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; Map<Long,String> map = new LinkedHashMap<Long,String>(); long s = 0; String table = null; String last = null; long lt = 0; for (int i = 0; i < 2 * INIT_COUNT; i++) { int n = random.nextInt(7); long l = System.currentTimeMillis(); if(i==0){ s = l; table = str[n]; } String d = data+i; engine.put(str[n], str[n], l, d.getBytes()); map.put(l,str[n] + "-" + d); if(table.equals(str[n])){ last = d; lt = l; } } System.out.println(new String(engine.get(table, table, s))); ISeekIterator<InternalKey, byte[]> iterator = engine.iterator(); iterator.seek(table, table, s); while(iterator.hasNext()){ iterator.next(); System.out.println(iterator.time()+":"+iterator.table()+":"+new String(iterator.value())); } System.out.println(lt+":"+table+":last:"+last); long duration = System.nanoTime() - start; System.out.printf("Put/get %,d K operations per second single thread%n", (int) (INIT_COUNT * 2 * 1e6 / duration)); } }