6363public class VectorBench extends PolyphenyScenario {
6464
6565 private final VectorBenchConfig config ;
66+ private String featureStore ;
67+ private String metadataStore ;
6668
6769 public VectorBench (Executor .ExecutorFactory executorFactory , VectorBenchConfig config , boolean commitAfterEveryQuery , boolean dumpQueryList ) {
6870 super ( executorFactory , commitAfterEveryQuery , dumpQueryList , QueryMode .TABLE );
@@ -86,14 +88,16 @@ public void createSchema( DatabaseInstance databaseInstance, boolean includingKe
8688 }
8789 }
8890
91+ resolveStores ( databaseInstance );
92+
8993 log .info ( "Creating schema..." );
9094 Executor executor = null ;
9195 try {
9296 executor = executorFactory .createExecutorInstance ();
93- executor .executeQuery ( (new CreateMetadata ( config . dataStoreMetadata )).getNewQuery () );
94- executor .executeQuery ( (new CreateIntFeature ( config . dataStoreFeature , config .dimensionFeatureVectors )).getNewQuery () );
95- executor .executeQuery ( (new CreateRealFeature ( config . dataStoreFeature , config .dimensionFeatureVectors )).getNewQuery () );
96- executor .executeQuery ( (new CreateBooleanFeature ( config . dataStoreFeature , config .dimensionFeatureVectors )).getNewQuery () );
97+ executor .executeQuery ( (new CreateMetadata ( metadataStore )).getNewQuery () );
98+ executor .executeQuery ( (new CreateIntFeature ( featureStore , config .dimensionFeatureVectors )).getNewQuery () );
99+ executor .executeQuery ( (new CreateRealFeature ( featureStore , config .dimensionFeatureVectors )).getNewQuery () );
100+ executor .executeQuery ( (new CreateBooleanFeature ( featureStore , config .dimensionFeatureVectors )).getNewQuery () );
97101 } catch (ExecutorException e ) {
98102 throw new RuntimeException ( "Exception while creating schema" , e );
99103 } finally {
@@ -110,7 +114,7 @@ public void createIndex() {
110114 try {
111115 executor = executorFactory .createExecutorInstance ();
112116 long start = System .nanoTime ();
113- executor .executeQuery ( new CreateRealFeatureIndex ( config . dataStoreFeature , config .indexMethod , config .distanceNorm , config .indexM , config .indexEfConstruction , config .indexLists ).getNewQuery () );
117+ executor .executeQuery ( new CreateRealFeatureIndex ( featureStore , config .indexMethod , config .distanceNorm , config .indexM , config .indexEfConstruction , config .indexLists ).getNewQuery () );
114118 executor .executeCommit ();
115119 long durationMillis = ( System .nanoTime () - start ) / 1_000_000L ;
116120 log .info ( "Vector index built in {} ms" , durationMillis );
@@ -125,6 +129,7 @@ public void createIndex() {
125129 @ Override
126130 public void generateData ( DatabaseInstance databaseInstance , ProgressReporter progressReporter ) {
127131 log .info ( "Generating data..." );
132+ resolveStores ( databaseInstance );
128133 Executor executor1 = executorFactory .createExecutorInstance ();
129134 DataGenerator dataGenerator = new DataGenerator ( executor1 , config , progressReporter );
130135
@@ -153,7 +158,6 @@ public long execute( ProgressReporter progressReporter, CsvWriter csvWriter, Fil
153158 addNumberOfTimes ( queryList , new SimpleKnnIntFeature ( config .randomSeedQuery , config .dimensionFeatureVectors , config .limitKnnQueries , config .distanceNorm ), config .numberOfSimpleKnnIntFeatureQueries );
154159 addNumberOfTimes ( queryList , new SimpleKnnRealFeature ( config .randomSeedQuery , config .dimensionFeatureVectors , config .limitKnnQueries , config .distanceNorm ), config .numberOfSimpleKnnRealFeatureQueries );
155160 addNumberOfTimes ( queryList , new SimpleMetadata ( config .randomSeedQuery , config .numberOfEntries ), config .numberOfSimpleMetadataQueries );
156- // addNumberOfTimes( queryList, new SimpleKnnIdIntFeature( config.randomSeedQuery, config.dimensionFeatureVectors, config.limitKnnQueries, config.distanceNorm ), config.numberOfSimpleKnnIdIntFeatureQueries );
157161 addNumberOfTimes ( queryList , new SimpleKnnIdRealFeature ( config .randomSeedQuery , config .dimensionFeatureVectors , config .limitKnnQueries , config .distanceNorm ), config .numberOfSimpleKnnIdRealFeatureQueries );
158162 addNumberOfTimes ( queryList , new MetadataKnnIntFeature ( config .randomSeedQuery , config .dimensionFeatureVectors , config .limitKnnQueries , config .distanceNorm ), config .numberOfMetadataKnnIntFeatureQueries );
159163 addNumberOfTimes ( queryList , new MetadataKnnRealFeature ( config .randomSeedQuery , config .dimensionFeatureVectors , config .limitKnnQueries , config .distanceNorm ), config .numberOfMetadataKnnRealFeatureQueries );
@@ -175,7 +179,6 @@ public void warmUp( ProgressReporter progressReporter ) {
175179 SimpleKnnIntFeature simpleKnnIntFeatureBuilder = new SimpleKnnIntFeature ( config .randomSeedQuery , config .dimensionFeatureVectors , config .limitKnnQueries , config .distanceNorm );
176180 SimpleKnnRealFeature simpleKnnRealFeatureBuilder = new SimpleKnnRealFeature ( config .randomSeedQuery , config .dimensionFeatureVectors , config .limitKnnQueries , config .distanceNorm );
177181 SimpleMetadata simpleMetadataBuilder = new SimpleMetadata ( config .randomSeedQuery , config .numberOfEntries );
178- // SimpleKnnIdIntFeature simpleKnnIdIntFeatureBuilder = new SimpleKnnIdIntFeature( config.randomSeedQuery, config.dimensionFeatureVectors, config.limitKnnQueries, config.distanceNorm );
179182 SimpleKnnIdRealFeature simpleKnnIdRealFeatureBuilder = new SimpleKnnIdRealFeature ( config .randomSeedQuery , config .dimensionFeatureVectors , config .limitKnnQueries , config .distanceNorm );
180183 MetadataKnnIntFeature metadataKnnIntFeature = new MetadataKnnIntFeature ( config .randomSeedQuery , config .dimensionFeatureVectors , config .limitKnnQueries , config .distanceNorm );
181184 MetadataKnnRealFeature metadataKnnRealFeature = new MetadataKnnRealFeature ( config .randomSeedQuery , config .dimensionFeatureVectors , config .limitKnnQueries , config .distanceNorm );
@@ -195,14 +198,9 @@ public void warmUp( ProgressReporter progressReporter ) {
195198 if ( config .numberOfSimpleKnnRealFeatureQueries > 0 ) {
196199 executor .executeQuery ( simpleKnnRealFeatureBuilder .getNewQuery () );
197200 }
198-
199201 if ( config .numberOfSimpleMetadataQueries > 0 ) {
200202 executor .executeQuery ( simpleMetadataBuilder .getNewQuery () );
201203 }
202-
203- // if ( config.numberOfSimpleKnnIdIntFeatureQueries > 0 ) {
204- // executor.executeQuery( simpleKnnIdIntFeatureBuilder.getNewQuery() );
205- // }
206204 if ( config .numberOfSimpleKnnIdRealFeatureQueries > 0 ) {
207205 executor .executeQuery ( simpleKnnIdRealFeatureBuilder .getNewQuery () );
208206 }
@@ -256,4 +254,13 @@ private void addNumberOfTimes( List<QueryListEntry> list, QueryBuilder queryBuil
256254 }
257255 }
258256
257+
258+ private void resolveStores ( DatabaseInstance databaseInstance ) {
259+ if ( databaseInstance != null ) {
260+ featureStore = findMatchingDataStoreName ( config .dataStoreFeature );
261+ metadataStore = findMatchingDataStoreName ( config .dataStoreMetadata );
262+ }
263+ }
264+
265+
259266}
0 commit comments