From: <tho...@us...> - 2013-04-06 18:20:20
|
Revision: 7038 http://bigdata.svn.sourceforge.net/bigdata/?rev=7038&view=rev Author: thompsonbry Date: 2013-04-06 18:20:04 +0000 (Sat, 06 Apr 2013) Log Message: ----------- Merging changes from BIGDATA_RELEASE_1_2_2 into READ_CACHE. See https://sourceforge.net/apps/trac/bigdata/ticket/530 (HA Journal) for detailed status on this merge. update /Users/bryan/Documents/workspace/BIGDATA_READ_CACHE_HEAD -r HEAD --force At revision 7037. merge https://bigdata.svn.sourceforge.net/svnroot/bigdata/branches/BIGDATA_RELEASE_1_2_0 /Users/bryan/Documents/workspace/BIGDATA_READ_CACHE_HEAD --- Merging r6889 through r7037 into /Users/bryan/Documents/workspace/BIGDATA_READ_CACHE_HEAD C /Users/bryan/Documents/workspace/BIGDATA_READ_CACHE_HEAD/bigdata-jini/src/test/com/bigdata/journal/jini/ha/TestAll.java C /Users/bryan/Documents/workspace/BIGDATA_READ_CACHE_HEAD/bigdata/src/test/com/bigdata/ha/TestAll.java C /Users/bryan/Documents/workspace/BIGDATA_READ_CACHE_HEAD/bigdata/src/test/com/bigdata/io/writecache/TestWriteCache.java C /Users/bryan/Documents/workspace/BIGDATA_READ_CACHE_HEAD/bigdata/src/java/com/bigdata/io/writecache/WriteCacheService.java C /Users/bryan/Documents/workspace/BIGDATA_READ_CACHE_HEAD/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/StatusServlet.java Actually, the only conflict in StatusServlet was: {{{ new HAStatusServletUtil(getIndexManager()) .doGet(req, resp, current); }}} versus {{{ new HAStatusServletUtil(getIndexManager()).showQuorum(req, resp, current); }}} This is a simple method rename in HAStatusServlet. The READ_CACHE has the right version. Also, fixed a problem in HAStatusServlet where it was flushing out before closing the pre element. The correct order for those actions is shown below. {{{ // close section. out.print("\n</pre>"); // flush PrintWriter before resuming writes on Writer. out.flush(); }}} HA CI test outcomes are unchanged by this merge. Revision Links: -------------- http://bigdata.svn.sourceforge.net/bigdata/?rev=7037&view=rev http://bigdata.svn.sourceforge.net/bigdata/?rev=6889&view=rev http://bigdata.svn.sourceforge.net/bigdata/?rev=7037&view=rev Modified Paths: -------------- branches/READ_CACHE/bigdata/src/java/com/bigdata/btree/DumpIndexSegment.java branches/READ_CACHE/bigdata/src/java/com/bigdata/btree/IndexSegmentBuilder.java branches/READ_CACHE/bigdata/src/java/com/bigdata/btree/view/FusedTupleCursor.java branches/READ_CACHE/bigdata/src/java/com/bigdata/relation/AbstractResource.java branches/READ_CACHE/bigdata/src/java/com/bigdata/search/FullTextIndex.java branches/READ_CACHE/bigdata/src/java/com/bigdata/search/Hiterator.java branches/READ_CACHE/bigdata/src/java/com/bigdata/service/AbstractFederation.java branches/READ_CACHE/bigdata/src/test/com/bigdata/search/TestPrefixSearch.java branches/READ_CACHE/bigdata/src/test/com/bigdata/search/TestSearch.java branches/READ_CACHE/bigdata/src/test/com/bigdata/search/TestSearchRestartSafe.java branches/READ_CACHE/bigdata-jini/src/java/com/bigdata/service/jini/LoadBalancerServer.java branches/READ_CACHE/bigdata-jini/src/java/com/bigdata/service/jini/util/DumpFederation.java branches/READ_CACHE/bigdata-jini/src/test/com/bigdata/service/jini/TestBigdataClient.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/inf/FullyBufferedJustificationIterator.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/internal/constraints/RegexBOp.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/internal/impl/AbstractIV.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/lexicon/ITextIndexer.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/ArbitraryLengthPathNode.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/FunctionRegistry.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/GroupMemberNodeBase.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/IQueryNode.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/JoinGroupNode.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/NamedSubqueryInclude.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/NamedSubqueryRoot.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/QueryNodeBase.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/StatementPatternNode.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/SubqueryRoot.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/eval/ASTSearchOptimizer.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/eval/SearchInSearchServiceFactory.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/eval/SearchServiceFactory.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/optimizers/ASTJoinOrderByTypeOptimizer.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/optimizers/ASTPropertyPathOptimizer.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/optimizers/ASTRangeOptimizer.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/optimizers/ASTServiceNodeOptimizer.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/optimizers/ASTSetValueExpressionsOptimizer.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/optimizers/ASTSimpleOptionalOptimizer.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/optimizers/ASTStaticJoinOptimizer.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/optimizers/AbstractJoinGroupOptimizer.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/optimizers/DefaultOptimizerList.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/service/ServiceRegistry.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPOIndexWriter.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/spo/SPORelation.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/store/BD.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/store/DataLoader.java branches/READ_CACHE/bigdata-rdf/src/test/com/bigdata/rdf/lexicon/TestFullTextIndex.java branches/READ_CACHE/bigdata-rdf/src/test/com/bigdata/rdf/lexicon/TestSubjectCentricFullTextIndex.java branches/READ_CACHE/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/optimizers/TestASTEmptyGroupOptimizer.java branches/READ_CACHE/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/optimizers/TestASTQueryHintOptimizer.java branches/READ_CACHE/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/optimizers/TestASTSearchOptimizer.java branches/READ_CACHE/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/optimizers/TestASTServiceNodeOptimizer.java branches/READ_CACHE/bigdata-rdf/src/test/com/bigdata/rdf/sparql/ast/optimizers/TestASTStaticJoinOptimizer.java branches/READ_CACHE/bigdata-sails/src/java/com/bigdata/rdf/sail/Bigdata2Sesame2BindingSetIterator.java branches/READ_CACHE/bigdata-sails/src/java/com/bigdata/rdf/sail/BigdataSailTupleQuery.java branches/READ_CACHE/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/BigdataRDFContext.java branches/READ_CACHE/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/BigdataRDFServlet.java branches/READ_CACHE/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/BigdataRDFServletContextListener.java branches/READ_CACHE/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/BigdataServlet.java branches/READ_CACHE/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/ConfigParams.java branches/READ_CACHE/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/HAStatusServletUtil.java branches/READ_CACHE/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/MultiTenancyServlet.java branches/READ_CACHE/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/SparqlEndpointConfig.java branches/READ_CACHE/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/StatusServlet.java branches/READ_CACHE/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/client/RemoteRepositoryManager.java branches/READ_CACHE/bigdata-sails/src/samples/com/bigdata/samples/SampleCode.java branches/READ_CACHE/bigdata-sails/src/test/com/bigdata/rdf/sail/TestSearchQuery.java branches/READ_CACHE/bigdata-sails/src/test/com/bigdata/rdf/sail/TestTicket581.java branches/READ_CACHE/bigdata-sails/src/test/com/bigdata/rdf/sail/tck/BigdataSPARQLUpdateTest.java branches/READ_CACHE/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/AbstractTestNanoSparqlClient.java branches/READ_CACHE/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestBigdataSailRemoteRepository.java branches/READ_CACHE/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestMultiTenancyAPI.java branches/READ_CACHE/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestNanoSparqlClient.java branches/READ_CACHE/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestSparqlUpdate.java branches/READ_CACHE/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/client/TestEncodeDecodeValue.java branches/READ_CACHE/bigdata-sails/src/test/org/openrdf/query/parser/sparql/SPARQLUpdateTest.java branches/READ_CACHE/bigdata-war/src/html/index.html branches/READ_CACHE/bigdata-war/src/resources/WEB-INF/web.xml branches/READ_CACHE/pom.xml Added Paths: ----------- branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/IReorderableNode.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/OldBackupPathNode.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/eval/ASTSearchInSearchOptimizer.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/optimizers/ASTCardinalityOptimizer.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/sparql/ast/optimizers/ASTRangeCountOptimizer.java branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/store/BDS.java branches/READ_CACHE/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/TestHelper.java Property Changed: ---------------- branches/READ_CACHE/ branches/READ_CACHE/bigdata/lib/jetty/ branches/READ_CACHE/bigdata/src/java/com/bigdata/bop/aggregate/ branches/READ_CACHE/bigdata/src/java/com/bigdata/bop/joinGraph/ branches/READ_CACHE/bigdata/src/java/com/bigdata/bop/util/ branches/READ_CACHE/bigdata/src/java/com/bigdata/htree/raba/ branches/READ_CACHE/bigdata/src/java/com/bigdata/jsr166/ branches/READ_CACHE/bigdata/src/test/com/bigdata/bop/joinGraph/ branches/READ_CACHE/bigdata/src/test/com/bigdata/bop/util/ branches/READ_CACHE/bigdata/src/test/com/bigdata/jsr166/ branches/READ_CACHE/bigdata/src/test/com/bigdata/util/httpd/ branches/READ_CACHE/bigdata-compatibility/ branches/READ_CACHE/bigdata-jini/src/java/com/bigdata/attr/ branches/READ_CACHE/bigdata-jini/src/java/com/bigdata/disco/ branches/READ_CACHE/bigdata-jini/src/java/com/bigdata/util/config/ branches/READ_CACHE/bigdata-perf/ branches/READ_CACHE/bigdata-perf/btc/ branches/READ_CACHE/bigdata-perf/btc/src/resources/ branches/READ_CACHE/bigdata-perf/lubm/ branches/READ_CACHE/bigdata-perf/uniprot/ branches/READ_CACHE/bigdata-perf/uniprot/src/ branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/bop/rdf/aggregate/ branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/changesets/ branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/error/ branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/internal/ branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/relation/ branches/READ_CACHE/bigdata-rdf/src/java/com/bigdata/rdf/util/ branches/READ_CACHE/bigdata-rdf/src/samples/ branches/READ_CACHE/bigdata-rdf/src/test/com/bigdata/bop/rdf/aggregate/ branches/READ_CACHE/bigdata-rdf/src/test/com/bigdata/rdf/internal/ branches/READ_CACHE/bigdata-rdf/src/test/com/bigdata/rdf/relation/ branches/READ_CACHE/bigdata-sails/src/java/com/bigdata/rdf/sail/bench/ branches/READ_CACHE/bigdata-sails/src/java/com/bigdata/rdf/sail/changesets/ branches/READ_CACHE/bigdata-sails/src/java/com/bigdata/rdf/sail/webapp/ branches/READ_CACHE/bigdata-sails/src/test/com/bigdata/rdf/sail/bench/ branches/READ_CACHE/bigdata-sails/src/test/com/bigdata/rdf/sail/webapp/ branches/READ_CACHE/dsi-utils/ branches/READ_CACHE/dsi-utils/LEGAL/ branches/READ_CACHE/dsi-utils/lib/ branches/READ_CACHE/dsi-utils/src/ branches/READ_CACHE/dsi-utils/src/java/ branches/READ_CACHE/dsi-utils/src/java/it/ branches/READ_CACHE/dsi-utils/src/java/it/unimi/ branches/READ_CACHE/dsi-utils/src/test/ branches/READ_CACHE/dsi-utils/src/test/it/unimi/ branches/READ_CACHE/dsi-utils/src/test/it/unimi/dsi/ branches/READ_CACHE/lgpl-utils/src/java/it/unimi/dsi/fastutil/bytes/custom/ branches/READ_CACHE/lgpl-utils/src/test/it/unimi/dsi/fastutil/bytes/custom/ branches/READ_CACHE/osgi/ branches/READ_CACHE/src/resources/bin/config/ Property changes on: branches/READ_CACHE ___________________________________________________________________ Modified: svn:mergeinfo - /branches/BIGDATA_OPENRDF_2_6_9_UPDATE:6769-6785 /branches/BIGDATA_RELEASE_1_2_0:6766-6889 /branches/BTREE_BUFFER_BRANCH:2004-2045 /branches/DEV_BRANCH_27_OCT_2009:2270-2546,2548-2782 /branches/INT64_BRANCH:4486-4522 /branches/JOURNAL_HA_BRANCH:2596-4066 /branches/LARGE_LITERALS_REFACTOR:4175-4387 /branches/LEXICON_REFACTOR_BRANCH:2633-3304 /branches/QUADS_QUERY_BRANCH:4525-4531,4550-4584,4586-4609,4634-4643,4646-4672,4674-4685,4687-4693,4697-4735,4737-4782,4784-4792,4794-4796,4798-4801 /branches/RWSTORE_1_1_0_DEBUG:5896-5935 /branches/TIDS_PLUS_BLOBS_BRANCH:4814-4836 /branches/bugfix-btm:2594-3237 /branches/dev-btm:2574-2730 /branches/fko:3150-3194 /trunk:3392-3437,3656-4061 + /branches/BIGDATA_OPENRDF_2_6_9_UPDATE:6769-6785 /branches/BIGDATA_RELEASE_1_2_0:6766-7037 /branches/BTREE_BUFFER_BRANCH:2004-2045 /branches/DEV_BRANCH_27_OCT_2009:2270-2546,2548-2782 /branches/INT64_BRANCH:4486-4522 /branches/JOURNAL_HA_BRANCH:2596-4066 /branches/LARGE_LITERALS_REFACTOR:4175-4387 /branches/LEXICON_REFACTOR_BRANCH:2633-3304 /branches/QUADS_QUERY_BRANCH:4525-4531,4550-4584,4586-4609,4634-4643,4646-4672,4674-4685,4687-4693,4697-4735,4737-4782,4784-4792,4794-4796,4798-4801 /branches/RWSTORE_1_1_0_DEBUG:5896-5935 /branches/TIDS_PLUS_BLOBS_BRANCH:4814-4836 /branches/bugfix-btm:2594-3237 /branches/dev-btm:2574-2730 /branches/fko:3150-3194 /trunk:3392-3437,3656-4061 Property changes on: branches/READ_CACHE/bigdata/lib/jetty ___________________________________________________________________ Modified: svn:mergeinfo - /branches/BIGDATA_OPENRDF_2_6_9_UPDATE/bigdata/lib/jetty:6769-6785 /branches/BIGDATA_RELEASE_1_2_0/bigdata/lib/jetty:6766-6889 /branches/INT64_BRANCH/bigdata/lib/jetty:4486-4522 /branches/QUADS_QUERY_BRANCH/bigdata/lib/jetty:4525-4531,4533-4548,4550-4584,4586-4609,4611-4632,4634-4643,4646-4672,4674-4685,4687-4693,4697-4735,4737-4782,4784-4792,4794-4796,4798-4801 /branches/RWSTORE_1_1_0_DEBUG/bigdata/lib/jetty:5896-5935 /branches/TIDS_PLUS_BLOBS_BRANCH/bigdata/lib/jetty:4814-4836 + /branches/BIGDATA_OPENRDF_2_6_9_UPDATE/bigdata/lib/jetty:6769-6785 /branches/BIGDATA_RELEASE_1_2_0/bigdata/lib/jetty:6766-7037 /branches/INT64_BRANCH/bigdata/lib/jetty:4486-4522 /branches/QUADS_QUERY_BRANCH/bigdata/lib/jetty:4525-4531,4533-4548,4550-4584,4586-4609,4611-4632,4634-4643,4646-4672,4674-4685,4687-4693,4697-4735,4737-4782,4784-4792,4794-4796,4798-4801 /branches/RWSTORE_1_1_0_DEBUG/bigdata/lib/jetty:5896-5935 /branches/TIDS_PLUS_BLOBS_BRANCH/bigdata/lib/jetty:4814-4836 Property changes on: branches/READ_CACHE/bigdata/src/java/com/bigdata/bop/aggregate ___________________________________________________________________ Modified: svn:mergeinfo - /branches/BIGDATA_OPENRDF_2_6_9_UPDATE/bigdata/src/java/com/bigdata/bop/aggregate:6769-6785 /branches/BIGDATA_RELEASE_1_2_0/bigdata/src/java/com/bigdata/bop/aggregate:6766-6889 /branches/INT64_BRANCH/bigdata/src/java/com/bigdata/bop/aggregate:4486-4522 /branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/aggregate:4525-4531,4533-4548,4550-4584,4586-4609,4611-4632,4634-4643,4646-4672,4674-4685,4687-4693,4697-4735,4737-4782,4784-4792,4794-4796,4798-4801 /branches/RWSTORE_1_1_0_DEBUG/bigdata/src/java/com/bigdata/bop/aggregate:5896-5935 /branches/TIDS_PLUS_BLOBS_BRANCH/bigdata/src/java/com/bigdata/bop/aggregate:4814-4836 + /branches/BIGDATA_OPENRDF_2_6_9_UPDATE/bigdata/src/java/com/bigdata/bop/aggregate:6769-6785 /branches/BIGDATA_RELEASE_1_2_0/bigdata/src/java/com/bigdata/bop/aggregate:6766-7037 /branches/INT64_BRANCH/bigdata/src/java/com/bigdata/bop/aggregate:4486-4522 /branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/aggregate:4525-4531,4533-4548,4550-4584,4586-4609,4611-4632,4634-4643,4646-4672,4674-4685,4687-4693,4697-4735,4737-4782,4784-4792,4794-4796,4798-4801 /branches/RWSTORE_1_1_0_DEBUG/bigdata/src/java/com/bigdata/bop/aggregate:5896-5935 /branches/TIDS_PLUS_BLOBS_BRANCH/bigdata/src/java/com/bigdata/bop/aggregate:4814-4836 Property changes on: branches/READ_CACHE/bigdata/src/java/com/bigdata/bop/joinGraph ___________________________________________________________________ Modified: svn:mergeinfo - /branches/BIGDATA_OPENRDF_2_6_9_UPDATE/bigdata/src/java/com/bigdata/bop/joinGraph:6769-6785 /branches/BIGDATA_RELEASE_1_2_0/bigdata/src/java/com/bigdata/bop/joinGraph:6766-6889 /branches/INT64_BRANCH/bigdata/src/java/com/bigdata/bop/joinGraph:4486-4522 /branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/joinGraph:4525-4531,4533-4548,4550-4584,4586-4609,4611-4632,4634-4643,4646-4672,4674-4685,4687-4693,4697-4735,4737-4782,4784-4792,4794-4796,4798-4801 /branches/RWSTORE_1_1_0_DEBUG/bigdata/src/java/com/bigdata/bop/joinGraph:5896-5935 /branches/TIDS_PLUS_BLOBS_BRANCH/bigdata/src/java/com/bigdata/bop/joinGraph:4814-4836 + /branches/BIGDATA_OPENRDF_2_6_9_UPDATE/bigdata/src/java/com/bigdata/bop/joinGraph:6769-6785 /branches/BIGDATA_RELEASE_1_2_0/bigdata/src/java/com/bigdata/bop/joinGraph:6766-7037 /branches/INT64_BRANCH/bigdata/src/java/com/bigdata/bop/joinGraph:4486-4522 /branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/joinGraph:4525-4531,4533-4548,4550-4584,4586-4609,4611-4632,4634-4643,4646-4672,4674-4685,4687-4693,4697-4735,4737-4782,4784-4792,4794-4796,4798-4801 /branches/RWSTORE_1_1_0_DEBUG/bigdata/src/java/com/bigdata/bop/joinGraph:5896-5935 /branches/TIDS_PLUS_BLOBS_BRANCH/bigdata/src/java/com/bigdata/bop/joinGraph:4814-4836 Property changes on: branches/READ_CACHE/bigdata/src/java/com/bigdata/bop/util ___________________________________________________________________ Modified: svn:mergeinfo - /branches/BIGDATA_OPENRDF_2_6_9_UPDATE/bigdata/src/java/com/bigdata/bop/util:6769-6785 /branches/BIGDATA_RELEASE_1_2_0/bigdata/src/java/com/bigdata/bop/util:6766-6889 /branches/INT64_BRANCH/bigdata/src/java/com/bigdata/bop/util:4486-4522 /branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/util:4525-4531,4533-4548,4550-4584,4586-4609,4611-4632,4634-4643,4646-4672,4674-4685,4687-4693,4697-4735,4737-4782,4784-4792,4794-4796,4798-4801 /branches/RWSTORE_1_1_0_DEBUG/bigdata/src/java/com/bigdata/bop/util:5896-5935 /branches/TIDS_PLUS_BLOBS_BRANCH/bigdata/src/java/com/bigdata/bop/util:4814-4836 + /branches/BIGDATA_OPENRDF_2_6_9_UPDATE/bigdata/src/java/com/bigdata/bop/util:6769-6785 /branches/BIGDATA_RELEASE_1_2_0/bigdata/src/java/com/bigdata/bop/util:6766-7037 /branches/INT64_BRANCH/bigdata/src/java/com/bigdata/bop/util:4486-4522 /branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/bop/util:4525-4531,4533-4548,4550-4584,4586-4609,4611-4632,4634-4643,4646-4672,4674-4685,4687-4693,4697-4735,4737-4782,4784-4792,4794-4796,4798-4801 /branches/RWSTORE_1_1_0_DEBUG/bigdata/src/java/com/bigdata/bop/util:5896-5935 /branches/TIDS_PLUS_BLOBS_BRANCH/bigdata/src/java/com/bigdata/bop/util:4814-4836 Modified: branches/READ_CACHE/bigdata/src/java/com/bigdata/btree/DumpIndexSegment.java =================================================================== --- branches/READ_CACHE/bigdata/src/java/com/bigdata/btree/DumpIndexSegment.java 2013-04-05 21:15:56 UTC (rev 7037) +++ branches/READ_CACHE/bigdata/src/java/com/bigdata/btree/DumpIndexSegment.java 2013-04-06 18:20:04 UTC (rev 7038) @@ -65,33 +65,59 @@ /** * Dump one or more {@link IndexSegment}s. + * <p> + * Note: The <code>-nodeState</code> and <code>-leafState</code> options + * also require you to turn up the logging level in order to see the output. + * However, when true they will apply a variety of validation tests to the + * nodes and leaves regardless of whether their state is written onto the + * console. * * @param args - * usage <code>[file|-d level]+</code>, where <i>file</i> is - * the name of a n {@link IndexSegmentStore} file and - * <code>level is the name of the {@link Level} to be used - * for the {@link AbstractBTree#dumpLog}</code> - * - * @throws IOException + * usage <code>[file|-d level|-nodeState|-leafState]+</code>, + * where + * <dl> + * <dt>file</dt> + * <dl> + * is the name of a n {@link IndexSegmentStore} file + * </dl> + * <dt>level</dt> + * <dl> + * is the name of the {@link Level} to be used for the + * {@link AbstractBTree#dumpLog} + * </dl> + * <dt>-nodeState</dt> + * <dl> + * Enables the dump of the {@link Node} state + * </dl> + * <dt>-leafState</dt> + * <dl> + * Enables the dump of the {@link Node} state + * </dl> + * </dl> + * + * @throws IOException */ - public static void main(String[] args) throws IOException { - - if(args.length==0) { + public static void main(final String[] args) throws IOException { + + if (args.length == 0) { usage(); - + System.exit(1); - + } + boolean dumpNodeState = false; + boolean dumpLeafState = false; + for (int i = 0; i < args.length; i++) { final String arg = args[i]; if (arg.startsWith("-")) { - if( arg.equals("-d")) { - + if (arg.equals("-d")) { + final Level level = Level.toLevel(args[++i]); System.out.println("Setting log level: "+level); @@ -116,6 +142,14 @@ } } + } else if(arg.equals("-nodeState")) { + + dumpNodeState = true; + + } else if(arg.equals("-leafState")) { + + dumpLeafState = true; + } else { System.err.println("Unknown option: "+arg); @@ -136,7 +170,7 @@ } - dumpIndexSegment(file); + dumpIndexSegment(file, dumpNodeState, dumpLeafState); } @@ -144,17 +178,9 @@ } - static void dumpIndexSegment(final File file) throws IOException { + static void dumpIndexSegment(final File file, final boolean dumpNodeState, + final boolean dumpLeafState) throws IOException { - /* - * Note: These options also require you to turn up the logging level in - * order to see the output. However, when true they will apply a variety - * of validation tests to the nodes and leaves regardless of whether - * their state is written onto the console. - */ - boolean dumpNodeState = true; // @todo command line option - boolean dumpLeafState = true;// @todo command line option - final IndexSegmentStore store = new IndexSegmentStore(file); // dump the checkpoint record, index metadata record, etc. @@ -354,8 +380,9 @@ * * @param store */ - static void dumpLeavesReverseScan(IndexSegmentStore store,boolean dumpLeafState) { - + static void dumpLeavesReverseScan(final IndexSegmentStore store, + final boolean dumpLeafState) { + final long begin = System.currentTimeMillis(); final AbstractBTree btree = store.loadIndexSegment(); @@ -458,8 +485,9 @@ * * @param store */ - static void dumpLeavesForwardScan(IndexSegmentStore store,boolean dumpLeafState) { - + static void dumpLeavesForwardScan(final IndexSegmentStore store, + final boolean dumpLeafState) { + final long begin = System.currentTimeMillis(); final AbstractBTree btree = store.loadIndexSegment(); Modified: branches/READ_CACHE/bigdata/src/java/com/bigdata/btree/IndexSegmentBuilder.java =================================================================== --- branches/READ_CACHE/bigdata/src/java/com/bigdata/btree/IndexSegmentBuilder.java 2013-04-05 21:15:56 UTC (rev 7037) +++ branches/READ_CACHE/bigdata/src/java/com/bigdata/btree/IndexSegmentBuilder.java 2013-04-06 18:20:04 UTC (rev 7038) @@ -1031,6 +1031,240 @@ } /** + * Variant using an array of objects in the desired order. A single root + * leaf is generated from those objects. The root leaf is then fed into the + * algorithm to efficient construct the corresponding read-only + * {@link IndexSegment}. + * + * @param a + * The array of objects to be written onto the index. The index + * must know how to generate tuples from these objects. The + * objects must already be in the natural order of the keys that + * will be generated for those tuples. + * @param alen + * The #of elements in that array. + * @param indexMetadata + * The {@link IndexMetadata} that will serve as the template for + * the generated {@link IndexSegment}. + * @param outFile + * The file on which the {@link IndexSegment} will be written. + * The file MAY exist, but if it exists then it MUST be empty. + * @param tmpDir + * The temporary directory in data are buffered during the build + * (optional - the default temporary directory is used if this is + * <code>null</code>). + * @param m + * The branching factor for the generated {@link IndexSegment}. + * @param compactingMerge + * When <code>true</code> the caller asserts that <i>src</i> is a + * {@link FusedView} and deleted index entries WILL NOT be + * included in the generated {@link IndexSegment}. Otherwise, it + * is assumed that the only select component(s) of the index + * partition view are being exported onto an {@link IndexSegment} + * and deleted index entries will therefore be propagated to the + * new {@link IndexSegment} (aka an incremental build). + * @param createTime + * The commit time associated with the view from which the + * {@link IndexSegment} is being generated. This value is written + * into {@link IndexSegmentCheckpoint#commitTime}. + * @param bufferNodes + * When <code>true</code> the generated nodes will be fully + * buffered in RAM (faster, but imposes a memory constraint). + * Otherwise they will be written onto a temporary file and then + * transferred to the output file en mass. + * @return + * @throws IOException + * + * TODO We could pass a flag indicating whether the leaf needs + * to be sorted after it is generated, but the caller would + * still be responsible for ensuring that there are no + * duplicates in the array. + */ +// * @param fromKey +// * The lowest key that will be included (inclusive). When +// * <code>null</code> there is no lower bound. +// * @param toKey +// * The first key that will be included (exclusive). When +// * <code>null</code> there is no upper bound. + @SuppressWarnings("unchecked") + public static IndexSegmentBuilder newInstance( + final Object[] a, final int alen, + final IndexMetadata indexMetadata, final File outFile, + final File tmpDir, final int m, final boolean compactingMerge, + final long createTime, + //final byte[] fromKey, final byte[] toKey, + final boolean bufferNodes) + throws IOException { + + if (a == null) + throw new IllegalArgumentException(); + + if (alen < 0) + throw new IllegalArgumentException(); + + if (alen > a.length) + throw new IllegalArgumentException(); + + if (indexMetadata == null) + throw new IllegalArgumentException(); + + if (outFile == null) + throw new IllegalArgumentException(); + + if (tmpDir == null) + throw new IllegalArgumentException(); + + if (createTime <= 0L) + throw new IllegalArgumentException(); + + final boolean hasVersionTimestamps = indexMetadata + .getVersionTimestamps(); + + if (hasVersionTimestamps) + throw new IllegalArgumentException( + "versionTimestamps not available in source []."); + + final boolean hasDeleteMarkers = indexMetadata.getDeleteMarkers(); + + if (hasDeleteMarkers && !compactingMerge) + throw new IllegalArgumentException( + "deleteMarkers not available in source []."); + + final boolean hasRawRecords = indexMetadata.getRawRecords(); + + // A temporary leaf used to buffer the data in RAM. + final MutableLeafData tleaf = new MutableLeafData(alen, + hasVersionTimestamps, hasDeleteMarkers, hasRawRecords); + + final int flags; + if (compactingMerge) { + + /* + * For a compacting merge the delete markers are ignored so they + * will NOT be transferred to the new index segment. + */ + + flags = IRangeQuery.DEFAULT; + + } else { + + /* + * For an incremental build the deleted tuples are propagated to the + * new index segment. This is required in order for the fact that + * those tuples were deleted as of the commitTime to be retained by + * the generated index segment. + */ + + flags = IRangeQuery.DEFAULT | IRangeQuery.DELETED; + + } + + /* + * Iterator reading the source tuples to be copied to the index segment. + * + * Note: The DELETED flag was set above unless this is a compacting + * merge. That is necessary to ensure that deleted tuples are preserved + * when the index segment does not reflect the total history of a view. + * + * The tuples are materialized and buffered in a single, and potentially + * very large, leaf. That is Ok since the MutableLeaf is using very + * simple data structures. + * + * @todo The fastRangeCount is a hint that we want to eagerly + * materialize all of the data. This hint should be turned into + * pre-fetch and into a single IO for the index segment leaves if they + * are not in memory. [In fact, the hint is completely ignored at this + * point. If hints get more weight, then review code for their use.] + */ +// final ITupleIterator<?> titr = src.rangeIterator(fromKey, toKey, +// (int) fastRangeCount/* capacity */, flags, null/* filter */); + + // init per API specification. + long minimumVersionTimestamp = Long.MAX_VALUE; + long maximumVersionTimestamp = Long.MIN_VALUE; + @SuppressWarnings("rawtypes") + final ITupleSerializer tupSer = indexMetadata.getTupleSerializer(); + for (int i = 0; i < alen; i++) { + +// final ITuple<?> tuple = titr.next(); + + tleaf.keys.keys[i] = tupSer.serializeKey(a[i]); + + // Note: Version timestamps are not available from a[]. +// if (hasVersionTimestamps) { +// +// final long t = tuple.getVersionTimestamp(); +// +// tleaf.versionTimestamps[i] = t; +// +// if (t < minimumVersionTimestamp) { +// +// minimumVersionTimestamp = t; +// +// } +// +// if (t > maximumVersionTimestamp) { +// +// maximumVersionTimestamp = t; +// +// } +// +// } + + // Note: delete markers are not available from a[]. +// if (hasDeleteMarkers && tuple.isDeletedVersion()) { +// +// /* +// * Note: When delete markers are used, the array will be +// * pre-populated with [false] so we only have to set the flag on +// * the tuples that are actually deleted. +// */ +// tleaf.deleteMarkers[i] = true; +// +// } else { + + /* + * Note: If the source has raw records for some values, then + * this will cause those records to be materialized within the + * single massive root leaf. From there, the data will be + * written onto the index segment file. + */ + tleaf.vals.values[i] = tupSer.serializeVal(a[i]); + +// } + +// i++; + + } + + tleaf.keys.nkeys = alen; // note final #of tuples. + tleaf.vals.nvalues = alen; // note final #of tuples. + tleaf.maximumVersionTimestamp = maximumVersionTimestamp; + tleaf.minimumVersionTimestamp = minimumVersionTimestamp; + + // The exact range count. + final int nentries = alen; + + // The source iterator (reading on the fully buffered tuples). + @SuppressWarnings("rawtypes") + final ITupleIterator<?> itr = new MyTupleIterator(tleaf, flags); + + // Setup the index segment build operation. + return IndexSegmentBuilder.newInstance(// + outFile, // + tmpDir, // + nentries, // exact range count + itr, // source iterator + m, // the output branching factor. + indexMetadata,// + createTime,// + compactingMerge,// + bufferNodes// + ); + + } + + /** * <p> * A more flexible factory for an {@link IndexSegment} build which permits * override of the index segment branching factor, replacement of the Modified: branches/READ_CACHE/bigdata/src/java/com/bigdata/btree/view/FusedTupleCursor.java =================================================================== --- branches/READ_CACHE/bigdata/src/java/com/bigdata/btree/view/FusedTupleCursor.java 2013-04-05 21:15:56 UTC (rev 7037) +++ branches/READ_CACHE/bigdata/src/java/com/bigdata/btree/view/FusedTupleCursor.java 2013-04-06 18:20:04 UTC (rev 7038) @@ -83,8 +83,8 @@ * on a fused view require that the tuple is overwritten by a * delete marker in the 1st index of the view. */ - public FusedTupleCursor(int flags, boolean deleted, ITupleCursor<E>[] srcs, - IIndex ndx) { + public FusedTupleCursor(final int flags, final boolean deleted, + final ITupleCursor<E>[] srcs, final IIndex ndx) { super(flags, deleted, srcs); @@ -561,7 +561,7 @@ * Note: You must specify {@link IRangeQuery#CURSOR} in order for * {@link #remove()} to be supported. */ - @SuppressWarnings("unchecked") +// @SuppressWarnings("unchecked") @Override public void remove() { Property changes on: branches/READ_CACHE/bigdata/src/java/com/bigdata/htree/raba ___________________________________________________________________ Modified: svn:mergeinfo - /branches/BIGDATA_OPENRDF_2_6_9_UPDATE/bigdata/src/java/com/bigdata/htree/raba:6769-6785 /branches/BIGDATA_RELEASE_1_2_0/bigdata/src/java/com/bigdata/htree/raba:6766-6889 /branches/INT64_BRANCH/bigdata/src/java/com/bigdata/htree/raba:4486-4522 /branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/htree/raba:4525-4531,4533-4548,4550-4584,4586-4609,4611-4632,4634-4643,4646-4672,4674-4685,4687-4693,4697-4735,4737-4782,4784-4792,4794-4796,4798-4801 /branches/RWSTORE_1_1_0_DEBUG/bigdata/src/java/com/bigdata/htree/raba:5896-5935 /branches/TIDS_PLUS_BLOBS_BRANCH/bigdata/src/java/com/bigdata/htree/raba:4814-4836 + /branches/BIGDATA_OPENRDF_2_6_9_UPDATE/bigdata/src/java/com/bigdata/htree/raba:6769-6785 /branches/BIGDATA_RELEASE_1_2_0/bigdata/src/java/com/bigdata/htree/raba:6766-7037 /branches/INT64_BRANCH/bigdata/src/java/com/bigdata/htree/raba:4486-4522 /branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/htree/raba:4525-4531,4533-4548,4550-4584,4586-4609,4611-4632,4634-4643,4646-4672,4674-4685,4687-4693,4697-4735,4737-4782,4784-4792,4794-4796,4798-4801 /branches/RWSTORE_1_1_0_DEBUG/bigdata/src/java/com/bigdata/htree/raba:5896-5935 /branches/TIDS_PLUS_BLOBS_BRANCH/bigdata/src/java/com/bigdata/htree/raba:4814-4836 Property changes on: branches/READ_CACHE/bigdata/src/java/com/bigdata/jsr166 ___________________________________________________________________ Modified: svn:mergeinfo - /branches/BIGDATA_OPENRDF_2_6_9_UPDATE/bigdata/src/java/com/bigdata/jsr166:6769-6785 /branches/BIGDATA_RELEASE_1_2_0/bigdata/src/java/com/bigdata/jsr166:6766-6889 /branches/INT64_BRANCH/bigdata/src/java/com/bigdata/jsr166:4486-4522 /branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/jsr166:4525-4531,4533-4548,4550-4584,4586-4609,4611-4632,4634-4643,4646-4672,4674-4685,4687-4693,4697-4735,4737-4782,4784-4792,4794-4796,4798-4801 /branches/RWSTORE_1_1_0_DEBUG/bigdata/src/java/com/bigdata/jsr166:5896-5935 /branches/TIDS_PLUS_BLOBS_BRANCH/bigdata/src/java/com/bigdata/jsr166:4814-4836 + /branches/BIGDATA_OPENRDF_2_6_9_UPDATE/bigdata/src/java/com/bigdata/jsr166:6769-6785 /branches/BIGDATA_RELEASE_1_2_0/bigdata/src/java/com/bigdata/jsr166:6766-7037 /branches/INT64_BRANCH/bigdata/src/java/com/bigdata/jsr166:4486-4522 /branches/QUADS_QUERY_BRANCH/bigdata/src/java/com/bigdata/jsr166:4525-4531,4533-4548,4550-4584,4586-4609,4611-4632,4634-4643,4646-4672,4674-4685,4687-4693,4697-4735,4737-4782,4784-4792,4794-4796,4798-4801 /branches/RWSTORE_1_1_0_DEBUG/bigdata/src/java/com/bigdata/jsr166:5896-5935 /branches/TIDS_PLUS_BLOBS_BRANCH/bigdata/src/java/com/bigdata/jsr166:4814-4836 Modified: branches/READ_CACHE/bigdata/src/java/com/bigdata/relation/AbstractResource.java =================================================================== --- branches/READ_CACHE/bigdata/src/java/com/bigdata/relation/AbstractResource.java 2013-04-05 21:15:56 UTC (rev 7037) +++ branches/READ_CACHE/bigdata/src/java/com/bigdata/relation/AbstractResource.java 2013-04-06 18:20:04 UTC (rev 7038) @@ -49,6 +49,7 @@ import com.bigdata.journal.IJournal; import com.bigdata.journal.IResourceLock; import com.bigdata.journal.IResourceLockService; +import com.bigdata.journal.NoSuchIndexException; import com.bigdata.journal.TimestampUtility; import com.bigdata.rdf.rules.FastClosure; import com.bigdata.rdf.rules.FullClosure; @@ -700,7 +701,12 @@ final String name = itr.next(); - indexManager.dropIndex(name); + try { + indexManager.dropIndex(name); + } catch (NoSuchIndexException ex) { + // If the index does not exist, keep on going. + log.warn("Ignored: " + ex); + } } Modified: branches/READ_CACHE/bigdata/src/java/com/bigdata/search/FullTextIndex.java =================================================================== --- branches/READ_CACHE/bigdata/src/java/com/bigdata/search/FullTextIndex.java 2013-04-05 21:15:56 UTC (rev 7037) +++ branches/READ_CACHE/bigdata/src/java/com/bigdata/search/FullTextIndex.java 2013-04-06 18:20:04 UTC (rev 7038) @@ -69,6 +69,7 @@ import com.bigdata.journal.IResourceLock; import com.bigdata.journal.ITx; import com.bigdata.journal.TimestampUtility; +import com.bigdata.rdf.lexicon.ITextIndexer.FullTextQuery; import com.bigdata.relation.AbstractRelation; import com.bigdata.relation.locator.DefaultResourceLocator; import com.bigdata.striterator.IChunkedOrderedIterator; @@ -439,7 +440,7 @@ /** * See {@link Options#HIT_CACHE_SIZE}. */ - private final ConcurrentWeakValueCacheWithTimeout<FullTextSearchQuery, Hit<V>[]> cache; + private final ConcurrentWeakValueCacheWithTimeout<FullTextQuery, Hit<V>[]> cache; // /** // * @see Options#DOCID_FACTORY_CLASS @@ -564,7 +565,7 @@ } this.cache = - new ConcurrentWeakValueCacheWithTimeout<FullTextSearchQuery, Hit<V>[]>( + new ConcurrentWeakValueCacheWithTimeout<FullTextQuery, Hit<V>[]>( hitCacheSize, hitCacheTimeoutMillis); { @@ -946,58 +947,36 @@ * iterator that is sent to the data service such that the search * terms are visited only when they occur in the matching field(s). */ - public Hiterator<Hit<V>> search(final String query, final String languageCode, - final boolean prefixMatch, - final double minCosine, final double maxCosine, - final int minRank, final int maxRank, - final boolean matchAllTerms, final boolean matchExact, - long timeout, final TimeUnit unit, final String regex) { + public Hiterator<Hit<V>> search(final FullTextQuery query) { - final Hit<V>[] a = _search(query, languageCode, prefixMatch, minCosine, - maxCosine, minRank, maxRank, matchAllTerms, matchExact, timeout, unit, regex); + final Hit<V>[] a = _search(query); - return new Hiterator<Hit<V>>(// - Arrays.asList(a)// -// ,minCosine,//0.0d,// minCosine -// Integer.MAX_VALUE // maxRank - ); + return new Hiterator<Hit<V>>(a); } - /** - * Used to support test cases. - */ - public int count(final String query, final String languageCode, - final boolean prefixMatch) { + public int count(final FullTextQuery query) { - return count(query, languageCode, prefixMatch, 0.0d, 1.0d, 1, 10000, - false, false, this.timeout,// - TimeUnit.MILLISECONDS, null); - - } - - - public int count(final String query, final String languageCode, - final boolean prefixMatch, - final double minCosine, final double maxCosine, - final int minRank, final int maxRank, - final boolean matchAllTerms, final boolean matchExact, - long timeout, final TimeUnit unit, final String regex) { - - final Hit[] a = _search(query, languageCode, prefixMatch, minCosine, - maxCosine, minRank, maxRank, matchAllTerms, matchExact, timeout, unit, regex); + final Hit[] a = _search(query); return a.length; } - private Hit<V>[] _search( - final String query, final String languageCode, - final boolean prefixMatch, - final double minCosine, final double maxCosine, - final int minRank, final int maxRank, - final boolean matchAllTerms, final boolean matchExact, - long timeout, final TimeUnit unit, final String regex) { + public Hit<V>[] _search(final FullTextQuery q) { + + final String query = q.getQuery(); + final String languageCode = q.getLanguageCode(); + final boolean prefixMatch = q.isPrefixMatch(); + final double minCosine = q.getMinCosine(); + final double maxCosine = q.getMaxCosine(); + final int minRank = q.getMinRank(); + final int maxRank = q.getMaxRank(); + final boolean matchAllTerms = q.isMatchAllTerms(); + final boolean matchExact = q.isMatchExact(); + final String regex = q.getMatchRegex(); + long timeout = q.getTimeout(); + final TimeUnit unit = q.getTimeUnit(); final long begin = System.currentTimeMillis(); @@ -1038,23 +1017,21 @@ } - final FullTextSearchQuery cacheKey = new FullTextSearchQuery( - query, matchAllTerms, matchExact, prefixMatch, timeout, unit, regex - ); + final FullTextQuery cacheKey = q; Hit<V>[] a; if (cache.containsKey(cacheKey)) { - if (log.isDebugEnabled()) - log.debug("found hits in cache"); + if (log.isInfoEnabled()) + log.info("found hits in cache"); a = cache.get(cacheKey); } else { - if (log.isDebugEnabled()) - log.debug("did not find hits in cache"); + if (log.isInfoEnabled()) + log.info("did not find hits in cache"); // tokenize the query. final TermFrequencyData<V> qdata; @@ -1495,89 +1472,4 @@ throw new UnsupportedOperationException(); } - private static final class FullTextSearchQuery { - - private final String search; - private final boolean matchAllTerms; - private final boolean matchExact; - private final boolean prefixMatch; - private final long timeout; - private final TimeUnit unit; - private final String regex; - - public FullTextSearchQuery( - final String search, - final boolean matchAllTerms, - final boolean matchExact, - final boolean prefixMatch, - final long timeout, - final TimeUnit unit, - final String regex) { - - this.search = search; - this.matchAllTerms = matchAllTerms; - this.matchExact = matchExact; - this.prefixMatch = prefixMatch; - this.timeout = timeout; - this.unit = unit; - this.regex = regex; - - } - - /** - * Generated by Eclipse. - */ - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + (matchAllTerms ? 1231 : 1237); - result = prime * result + (matchExact ? 1231 : 1237); - result = prime * result + (prefixMatch ? 1231 : 1237); - result = prime * result + ((regex == null) ? 0 : regex.hashCode()); - result = prime * result - + ((search == null) ? 0 : search.hashCode()); - result = prime * result + (int) (timeout ^ (timeout >>> 32)); - result = prime * result + ((unit == null) ? 0 : unit.hashCode()); - return result; - } - - /** - * Generated by Eclipse. - */ - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - FullTextSearchQuery other = (FullTextSearchQuery) obj; - if (matchAllTerms != other.matchAllTerms) - return false; - if (matchExact != other.matchExact) - return false; - if (prefixMatch != other.prefixMatch) - return false; - if (regex == null) { - if (other.regex != null) - return false; - } else if (!regex.equals(other.regex)) - return false; - if (search == null) { - if (other.search != null) - return false; - } else if (!search.equals(other.search)) - return false; - if (timeout != other.timeout) - return false; - if (unit != other.unit) - return false; - return true; - } - - - } - } Modified: branches/READ_CACHE/bigdata/src/java/com/bigdata/search/Hiterator.java =================================================================== --- branches/READ_CACHE/bigdata/src/java/com/bigdata/search/Hiterator.java 2013-04-05 21:15:56 UTC (rev 7037) +++ branches/READ_CACHE/bigdata/src/java/com/bigdata/search/Hiterator.java 2013-04-06 18:20:04 UTC (rev 7038) @@ -1,8 +1,6 @@ package com.bigdata.search; -import java.util.Collection; import java.util.Iterator; -import java.util.NoSuchElementException; /** * Visits search results in order of decreasing relevance. @@ -12,159 +10,223 @@ */ public class Hiterator<A extends IHit> implements Iterator<A> { - final private Collection<A> hits; - final private Iterator<A> src; -// final private double minCosine; -// final private int maxRank; + /** + * The index into the array of hits wrapped by this iterator. + */ + private int rank = 0; + + /** + * The array of hits wrapped by this iterator. + */ + private final A[] hits; + + /** + * + * @param hits + */ + public Hiterator(final A[] hits) { + if (hits == null) + throw new IllegalArgumentException(); + + this.hits = hits; + + } + + public boolean hasNext() { + + return rank < hits.length; + + } + + public A next() { + + return hits[rank++]; + + } + /** - * The rank of the last hit returned by {@link #next()}. The rank is in - * [1:nhits] and is incremented as we return each hit in {@link #next()}. + * @throws UnsupportedOperationException */ - private int rank = 0; + public void remove() { + + throw new UnsupportedOperationException(); + + } + + public String toString() { + + return "Hiterator{nhits=" + hits.length + "} : " + + hits; + + } - /** set by {@link #hasNext()}. */ - private boolean exhausted = false; - - /** set by {@link #hasNext()}. */ - private A nextHit = null; - -// /** set by {@link #next()}. */ -// private A lastHit = null; + public int size() { + + return hits.length; + + } +// +// +// final private Collection<A> hits; +// final private Iterator<A> src; +//// final private double minCosine; +//// final private int maxRank; +// // /** -// * The minimum cosine that will be visited as specified to -// * {@link FullTextIndex#search(String, String, double, int)} +// * The rank of the last hit returned by {@link #next()}. The rank is in +// * [1:nhits] and is incremented as we return each hit in {@link #next()}. // */ -// public double minCosine() { +// private int rank = 0; +// +// /** set by {@link #hasNext()}. */ +// private boolean exhausted = false; +// +// /** set by {@link #hasNext()}. */ +// private A nextHit = null; +// +//// /** set by {@link #next()}. */ +//// private A lastHit = null; +// +//// /** +//// * The minimum cosine that will be visited as specified to +//// * {@link FullTextIndex#search(String, String, double, int)} +//// */ +//// public double minCosine() { +//// +//// return minCosine; +//// +//// } +//// +//// /** +//// * The maximum rank that will be visited as specified to +//// * {@link FullTextIndex#search(String, String, double, int)} +//// */ +//// public int maxRank() { +//// +//// return maxRank; +//// +//// } +// +// /** +// * +// * @param hits +// */ +// public Hiterator(final Collection<A> hits +//// ,final double minCosine, final int maxRank +// ) { +// +// if (hits == null) +// throw new IllegalArgumentException(); +// +//// if (minCosine < 0d || minCosine > 1d) +//// throw new IllegalArgumentException(); +// +//// if (maxRank <= 0) +//// throw new IllegalArgumentException(); +// +// this.hits = hits; +// +//// this.minCosine = minCosine; +//// +//// this.maxRank = maxRank; // -// return minCosine; +// this.src = hits.iterator(); // // } +// +//// /** +//// * The #of hits (approximate). +//// * +//// * @todo differentiate between the #of hits and the #of hits that satisfy +//// * the minCosine and maxRank criteria +//// * +//// * @todo this and other search engine metadata (elapsed time) might go on a +//// * different object from which we can obtain the {@link Hiterator}. +//// */ +//// public long size() { +//// +//// return hits.size(); +//// +//// } // +// public boolean hasNext() { +// +// if(exhausted) return false; +// +// if(nextHit!=null) return true; +// +// if(!src.hasNext()) { +// +// exhausted = true; +// +// return false; +// +// } +// +// nextHit = src.next(); +// +//// if (rank + 1 > maxRank || nextHit.getCosine() < minCosine) { +//// +//// exhausted = true; +//// +//// return false; +//// +//// } +// +// return true; +// +// } +// +// public A next() { +// +// if(!hasNext()) throw new NoSuchElementException(); +// +// final A tmp = nextHit; +// +// nextHit = null; +// +// rank++; +// +// return tmp; +// +// } +// // /** -// * The maximum rank that will be visited as specified to -// * {@link FullTextIndex#search(String, String, double, int)} +// * The rank of the last hit returned (origin ONE). +// * +// * @throws IllegalStateException +// * if nothing has been visited yet. // */ -// public int maxRank() { +// public int rank() { +// +// if (rank == 0) +// throw new IllegalStateException(); // -// return maxRank; +// return rank; // // } - - /** - * - * @param hits - */ - public Hiterator(final Collection<A> hits -// ,final double minCosine, final int maxRank - ) { - - if (hits == null) - throw new IllegalArgumentException(); - -// if (minCosine < 0d || minCosine > 1d) -// throw new IllegalArgumentException(); - -// if (maxRank <= 0) -// throw new IllegalArgumentException(); - - this.hits = hits; - -// this.minCosine = minCosine; +// +// /** +// * @throws UnsupportedOperationException +// */ +// public void remove() { // -// this.maxRank = maxRank; - - this.src = hits.iterator(); - - } - - /** - * The #of hits (approximate). - * - * @todo differentiate between the #of hits and the #of hits that satisfy - * the minCosine and maxRank criteria - * - * @todo this and other search engine metadata (elapsed time) might go on a - * different object from which we can obtain the {@link Hiterator}. - */ - public long size() { - - return hits.size(); - - } - - public boolean hasNext() { - - if(exhausted) return false; - - if(nextHit!=null) return true; - - if(!src.hasNext()) { - - exhausted = true; - - return false; - - } - - nextHit = src.next(); - -// if (rank + 1 > maxRank || nextHit.getCosine() < minCosine) { +// throw new UnsupportedOperationException(); +// +// } // -// exhausted = true; -// -// return false; -// -// } - - return true; - - } - - public A next() { - - if(!hasNext()) throw new NoSuchElementException(); - - final A tmp = nextHit; - - nextHit = null; - - rank++; - - return tmp; - - } +// public String toString() { +// +// return "Hiterator{"+/*minCosine=" + minCosine +// + ", maxRank=" + maxRank + ",*/" nhits=" + hits.size() + "} : " +// + hits; +// +// } +// +// public int size() { +// return hits.size(); +// } - /** - * The rank of the last hit returned (origin ONE). - * - * @throws IllegalStateException - * if nothing has been visited yet. - */ - public int rank() { - - if (rank == 0) - throw new IllegalStateException(); - - return rank; - - } - - /** - * @throws UnsupportedOperationException - */ - public void remove() { - - throw new UnsupportedOperationException(); - - } - - public String toString() { - - return "Hiterator{"+/*minCosine=" + minCosine - + ", maxRank=" + maxRank + ",*/" nhits=" + hits.size() + "} : " - + hits; - - } } Modified: branches/READ_CACHE/bigdata/src/java/com/bigdata/service/AbstractFederation.java =================================================================== --- branches/READ_CACHE/bigdata/src/java/com/bigdata/service/AbstractFederation.java 2013-04-05 21:15:56 UTC (rev 7037) +++ branches/READ_CACHE/bigdata/src/java/com/bigdata/service/AbstractFederation.java 2013-04-06 18:20:04 UTC (rev 7038) @@ -80,6 +80,7 @@ import com.bigdata.ganglia.GangliaSlopeEnum; import com.bigdata.ganglia.IGangliaDefaults; import com.bigdata.ganglia.util.GangliaUtil; +import com.bigdata.journal.NoSuchIndexException; import com.bigdata.journal.TemporaryStore; import com.bigdata.journal.TemporaryStoreFactory; import com.bigdata.rawstore.Bytes; @@ -89,6 +90,7 @@ import com.bigdata.service.ndx.ScaleOutIndexCounters; import com.bigdata.sparse.GlobalRowStoreHelper; import com.bigdata.sparse.SparseRowStore; +import com.bigdata.util.InnerCause; import com.bigdata.util.concurrent.DaemonThreadFactory; import com.bigdata.util.concurrent.ShutdownHelper; import com.bigdata.util.concurrent.TaskCounters; @@ -1014,7 +1016,14 @@ getIndexCache().dropIndexFromCache(name); } catch (Exception e) { - + if(InnerCause.isInnerCause(e, NoSuchIndexException.class)) { + /* + * Wrap with the root cause per the API for dropIndex(). + */ + final NoSuchIndexException tmp = new NoSuchIndexException(name); + tmp.initCause(e); + throw tmp; + } throw new RuntimeException( e ); } Property changes on: branches/READ_CACHE/bigdata/src/test/com/bigdata/bop/joinGraph ___________________________________________________________________ Modified: svn:mergeinfo - /branches/BIGDATA_OPENRDF_2_6_9_UPDATE/bigdata/src/test/com/bigdata/bop/joinGraph:6769-6785 /branches/BIGDATA_RELEASE_1_2_0/bigdata/src/test/com/bigdata/bop/joinGraph:6766-6889 /branches/INT64_BRANCH/bigdata/src/test/com/bigdata/bop/joinGraph:4486-4522 /branches/QUADS_QUERY_BRANCH/bigdata/src/test/com/bigdata/bop/joinGraph:4525-4531,4533-4548,4550-4584,4586-4609,4611-4632,4634-4643,4646-4672,4674-4685,4687-4693,4697-4735,4737-4782,4784-4792,4794-4796,4798-4801 /branches/RWSTORE_1_1_0_DEBUG/bigdata/src/test/com/bigdata/bop/joinGraph:5896-5935 /branches/TIDS_PLUS_BLOBS_BRANCH/bigdata/src/test/com/bigdata/bop/joinGraph:4814-4836 + /branches/BIGDATA_OPENRDF_2_6_9_UPDATE/bigdata/src/test/com/bigdata/bop/joinGraph:6769-6785 /branches/BIGDATA_RELEASE_1_2_0/bigdata/src/test/com/bigdata/bop/joinGraph:6766-7037 /branches/INT64_BRANCH/bigdata/src/test/com/bigdata/bop/joinGraph:4486-4522 /branches/QUADS_QUERY_BRANCH/bigdata/src/test/com/bigdata/bop/joinGraph:4525-4531,4533-4548,4550-4584,4586-4609,4611-4632,4634-4643,4646-4672,4674-4685,4687-4693,4697-4735,4737-4782,4784-4792,4794-4796,4798-4801 /branches/RWSTORE_1_1_0_DEBUG/bigdata/src/test/com/bigdata/bop/joinGraph:5896-5935 /branches/TIDS_PLUS_BLOBS_BRANC... [truncated message content] |