diff -r 1f0034e370aa -r 71ad690e91f5 javaextensions/midprms_db/tsrc/rmsbenchmark/javasrc/Storage.java --- a/javaextensions/midprms_db/tsrc/rmsbenchmark/javasrc/Storage.java Fri Sep 17 16:44:34 2010 +0300 +++ b/javaextensions/midprms_db/tsrc/rmsbenchmark/javasrc/Storage.java Mon Oct 04 11:29:25 2010 +0300 @@ -25,6 +25,8 @@ private int LENGTH; private RecordStore recordStore; + private String[] STORE_NAMES; + public Storage(int aLength) { @@ -32,6 +34,7 @@ try { recordStore = RecordStore.openRecordStore(STORAGE_NAME, true); + createMultiStores(); } catch (RecordStoreException _ex) { @@ -40,12 +43,33 @@ Utils.initRandom(); } + private void createMultiStores() throws RecordStoreException + { + STORE_NAMES = new String[REPEAT]; + // create stores + for(int i = 0; i < STORE_NAMES.length; i++) + { + STORE_NAMES[i] = "multistore" + i; + RecordStore r = RecordStore.openRecordStore(STORE_NAMES[i], true); + r.closeRecordStore(); + } + } + + private void deleteMultiStores() throws RecordStoreException + { + for(int i = 0; i < STORE_NAMES.length; i++) + { + RecordStore.deleteRecordStore(STORE_NAMES[i]); + } + } + public void clean() { try { recordStore.closeRecordStore(); RecordStore.deleteRecordStore(STORAGE_NAME); + deleteMultiStores(); } catch (RecordStoreException _ex) { @@ -330,4 +354,85 @@ return score; } + public String openMultipleStores() + { + String score = ""; + try + { + RecordStore[] stores = new RecordStore[STORE_NAMES.length]; + // open stores + Utils.startTiming(); + for (int i = 0; i < STORE_NAMES.length; i++) + { + stores[i] = RecordStore.openRecordStore(STORE_NAMES[i], false); + } + Utils.stopTiming(); + score = Utils.getTime(Utils.getDiff()); + + // close stores + for (int i = 0; i < STORE_NAMES.length; i++) + { + stores[i].closeRecordStore(); + } + + } + catch (RecordStoreException _ex) + { + System.out.println("RecordStoreException: " + _ex.toString()); + } + return score; + } + + public String closeMultipleStores() + { + String score = ""; + try + { + RecordStore[] stores = new RecordStore[STORE_NAMES.length]; + // open stores + for (int i = 0; i < STORE_NAMES.length; i++) + { + stores[i] = RecordStore.openRecordStore(STORE_NAMES[i], false); + } + + // close stores + Utils.startTiming(); + for (int i = 0; i < STORE_NAMES.length; i++) + { + stores[i].closeRecordStore(); + } + Utils.stopTiming(); + score = Utils.getTime(Utils.getDiff()); + + } + catch (RecordStoreException _ex) + { + System.out.println("RecordStoreException: " + _ex.toString()); + } + return score; + } + + public String openCloseMultipleStores() + { + String score = ""; + try + { + // open /close one store at a time + Utils.startTiming(); + for (int i = 0; i < STORE_NAMES.length; i++) + { + RecordStore r = RecordStore.openRecordStore(STORE_NAMES[i], false); + r.closeRecordStore(); + } + Utils.stopTiming(); + score = Utils.getTime(Utils.getDiff()); + + } + catch (RecordStoreException _ex) + { + System.out.println("RecordStoreException: " + _ex.toString()); + } + return score; + } + }