@@ -0,0 +1,1783 @@
+package water;%0A%0Aimport static org.junit.Assert.*;%0Aimport org.junit.*;%0A%0Aimport java.io.File;%0Aimport water.fvec.Chunk;%0Aimport water.fvec.Frame;%0Aimport water.fvec.NFSFileVec;%0Aimport water.util.UnsafeUtils;%0A%0Apublic class KVSpeedTest extends TestUtil %7B%0A  static final int NCLOUD=5;%0A  static final int NKEYS=10;%0A  @BeforeClass static public void setup() %7B stall_till_cloudsize(NCLOUD); %7D%0A%0A  // Make a million keys-per-node.  Make sure they are all cached/shared on at%0A  // least one other node.  Time removing them all.  Can be network bound as%0A  // the million read/write/put/invalidates hit the wires.%0A  @Test @Ignore%0A  public void testMillionRemoveKeys() %7B%0A    long start;%0A%0A    // Populate NKEYS locally%0A    start = System.currentTimeMillis();%0A    new MRTask() %7B%0A      @Override protected void setupLocal() %7B%0A        long start = System.currentTimeMillis();%0A        for( int i=0; i%3CNKEYS; i++ ) %7B%0A          String s = %22Q%22+i;%0A          Key k = Key.make(s);%0A          if( k.home() ) DKV.put(k,new Value(k,s),_fs);%0A          else i--;%0A        %7D%0A        System.out.println(%22PUT1 %22+H2O.SELF+%22 %22+NKEYS/(System.currentTimeMillis()-start));%0A      %7D%0A    %7D.doAllNodes();%0A    System.out.println(%22PUTALL %22+NCLOUD*NKEYS/(System.currentTimeMillis()-start));%0A%0A    // Force sharing at least once%0A    start = System.currentTimeMillis();%0A    new MRTask() %7B%0A      @Override protected void setupLocal() %7B%0A        long start = System.currentTimeMillis();%0A        for( int i=0; i%3CNKEYS; i++ )  DKV.prefetch(Key.make(%22Q%22+i+1));%0A        for( int i=0; i%3CNKEYS; i++ )  DKV.get     (Key.make(%22Q%22+i+1));%0A        System.out.println(%22GET1 %22+H2O.SELF+%22 %22+NKEYS/(System.currentTimeMillis()-start));%0A      %7D%0A    %7D.doAllNodes();%0A    System.out.println(%22GETALL %22+NCLOUD*NKEYS/(System.currentTimeMillis()-start));%0A%0A  %7D%0A%0A%7D%0A

add a kv speed test