|
From: Bryan T. <tho...@us...> - 2007-04-23 17:22:21
|
Update of /cvsroot/cweb/bigdata/src/test/com/bigdata/service In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv21228/src/test/com/bigdata/service Modified Files: TestMetadataServer0.java Log Message: Working on registration of scale-out index with the metadata service - commit prior to refactor to use versioning in the MetadataIndex class. Index: TestMetadataServer0.java =================================================================== RCS file: /cvsroot/cweb/bigdata/src/test/com/bigdata/service/TestMetadataServer0.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TestMetadataServer0.java 23 Apr 2007 13:09:30 -0000 1.1 --- TestMetadataServer0.java 23 Apr 2007 17:22:16 -0000 1.2 *************** *** 48,51 **** --- 48,57 ---- package com.bigdata.service; + import java.rmi.RemoteException; + import java.util.UUID; + import java.util.concurrent.ExecutionException; + + import com.bigdata.scaleup.PartitionMetadata; + import net.jini.core.lookup.ServiceID; *************** *** 71,76 **** --- 77,92 ---- } + /** + * Starts in {@link #setUp()}. + */ MetadataServer metadataServer0; + /** + * Starts in {@link #setUp()}. + */ DataServer dataServer1; + /** + * Must be started by the test. + */ + DataServer dataServer0; /** *************** *** 125,130 **** --- 141,189 ---- dataServer1.destroy(); + if(dataServer0!=null) { + + destroyDataServer0(); + + } + + } + + /** + * Start data service 0. + */ + protected void startDataServer0() { + + assert dataServer0 == null; + + dataServer0 = new DataServer( + new String[] { "src/resources/config/standalone/DataServer0.config" }); + + new Thread() { + + public void run() { + + dataServer0.run(); + + } + + }.start(); + } + + /** + * Destroy data server 0. + */ + protected void destroyDataServer0() { + assert dataServer0 != null; + + System.err.println("Destroying DataServer0"); + + dataServer0.destroy(); + + dataServer0 = null; + + } + /** * Test the ability to discover the {@link MetadataService} and the ability *************** *** 138,148 **** public void test_serverRunning() throws Exception { ServiceID dataService1ID = getServiceID(dataServer1); ServiceID metadataServiceID = getServiceID(metadataServer0); ! final IMetadataService proxy = (IMetadataService) lookupDataService(metadataServiceID); ! assertNotNull("service not discovered", proxy); /* --- 197,210 ---- public void test_serverRunning() throws Exception { + // wait for the service to be ready. ServiceID dataService1ID = getServiceID(dataServer1); + // wait for the service to be ready. ServiceID metadataServiceID = getServiceID(metadataServer0); ! // get proxy for this metadata service. ! final IMetadataService metadataServiceProxy = (IMetadataService) lookupDataService(metadataServiceID); ! assertNotNull("service not discovered", metadataServiceProxy); /* *************** *** 150,155 **** * discover it. */ - final DataServer dataServer0 = new DataServer( - new String[] { "src/resources/config/standalone/DataServer0.config" }); ServiceID dataService0ID = null; --- 212,215 ---- *************** *** 157,169 **** try { ! new Thread() { ! ! public void run() { ! ! dataServer0.run(); ! ! } ! ! }.start(); /* --- 217,221 ---- try { ! startDataServer0(); /* *************** *** 196,202 **** * server notices this event. */ ! System.err.println("Destroying DataServer0"); ! ! dataServer0.destroy(); if (dataService0ID != null) { --- 248,252 ---- * server notices this event. */ ! destroyDataServer0(); if (dataService0ID != null) { *************** *** 220,222 **** --- 270,346 ---- } + /** + * Registers a scale-out index and pre-partitions it to have data on each + * of two {@link DataService} instances. + */ + public void test_registerScaleOutIndex() throws Exception { + + // wait for the service to be ready. + ServiceID dataService1ID = getServiceID(dataServer1); + + // wait for the service to be ready. + ServiceID metadataServiceID = getServiceID(metadataServer0); + + // get proxy for this metadata service. + final IMetadataService metadataServiceProxy = (IMetadataService) lookupDataService(metadataServiceID); + + assertNotNull("service not discovered", metadataServiceProxy); + + /* + * wait until we get the serviceID as an indication that the data + * service is running. + */ + + startDataServer0(); + + // wait for the service to be ready. + ServiceID dataService0ID = getServiceID(dataServer0); + + // lookup proxy for dataService0 + final IDataService dataService0Proxy = lookupDataService(dataService0ID); + + try { + /* + * This should fail since the index was never registered. + */ + dataService0Proxy.rangeCount(IDataService.UNISOLATED, "xyz", null, + null); + + } catch (ExecutionException ex) { + + System.err.println("cause="+ex.getCause()); + + assertTrue(ex.getCause() instanceof IllegalStateException); + + log.info("Ignoring expected exception: " + ex); + + } + + // + assertNotNull(metadataServiceProxy.getUnderUtilizedDataService()); + + /* + * register a scale-out index. + */ + final String indexName = "testIndex"; + + UUID indexUUID = metadataServiceProxy.registerIndex(indexName); + + log.info("Registered scale-out index: indexUUID="+indexUUID); + + /* + * @todo request the partition for the scale-out index, figure out the + * data service for that partition, and make sure that an index was + * created on that data service for the partition. + */ + + // @todo encapsulate in method to generate metadata index name. + byte[] val = metadataServiceProxy.lookup(IDataService.UNISOLATED, + MetadataService.getMetadataName(indexName), new byte[] {}); + + dataService0Proxy.rangeCount(IDataService.UNISOLATED, indexName, null, + null); + + } + } |