From kde-commits Wed Dec 02 13:50:13 2009 From: Sebastian Trueg Date: Wed, 02 Dec 2009 13:50:13 +0000 To: kde-commits Subject: kdesupport/soprano/backends/virtuoso Message-Id: <1259761813.347552.26850.nullmailer () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=125976182424321 SVN commit 1057457 by trueg: Added configuration options for automatic checkpoints M +5 -2 Virtuoso.dox M +16 -9 virtuosocontroller.cpp M +1 -1 virtuosomodel.cpp --- trunk/kdesupport/soprano/backends/virtuoso/Virtuoso.dox #1057456:1057457 @@ -25,8 +25,11 @@ * - \c none - disable the index * - \c sync - enable syncroneous updates of the index (the index is always in sync. This might give a performace penalty) * - \c N - The interval in minutes after which the index will be updated. - * - \c buffers - The number of buffers (8k in size) to be used by Virtuoso. Defaults to 10000. - * - \c threads - The number of server threads. Defaults to 100. + * - \c NumberOfBuffers - The number of buffers (8k in size) to be used by Virtuoso. Defaults to 2000. + * - \c ServerThreads - The number of server threads. Defaults to 100. + * - \c CheckpointInterval - The interval in minutes at which Virtuoso will automatically make a database checkpoint. Defaults to 60. + * - \c MinAutoCheckpointSize - The minimum size of the Virtuoso transaction log. An automatic checkpoint will not be made if there is + * less than MinAutoCheckpointSize bytes in the current transaction log. Defaults to 4000000. * * The two settings above are user settings and have to be provided using Soprano::BackendOptionUser: * --- trunk/kdesupport/soprano/backends/virtuoso/virtuosocontroller.cpp #1057456:1057457 @@ -231,13 +231,16 @@ // storage dir QString dir = valueInSettings( settings, BackendOptionStorageDir ).toString(); - int numberOfBuffers = 10000; - int numberOfThreads = 100; - if ( isOptionInSettings( settings, BackendOptionUser, "buffers" ) ) - numberOfBuffers = valueInSettings( settings, BackendOptionUser, "buffers" ).toInt(); - if ( isOptionInSettings( settings, BackendOptionUser, "threads" ) ) - numberOfThreads = valueInSettings( settings, BackendOptionUser, "threads" ).toInt(); + // backwards compatibility + int numberOfBuffers = valueInSettings( settings, "buffers", 100 ).toInt(); + int numberOfThreads = valueInSettings( settings, "threads", 10 ).toInt(); + + numberOfBuffers = valueInSettings( settings, "NumberOfBuffers", numberOfBuffers ).toInt(); + numberOfThreads = valueInSettings( settings, "ServerThreads", numberOfThreads ).toInt(); + int checkpointInterval = valueInSettings( settings, "CheckpointInterval", -1 ).toInt(); + int minAutoCheckpointSize = valueInSettings( settings, "MinAutoCheckpointSize", -1 ).toInt(); + // although we do not actually use a port Virtuoso uses the port number to create // the unix socket name. m_port = getFreePortNumber(); @@ -275,9 +278,6 @@ // FIXME: we have a problem here: soprano server is now multithreaded. Thus, we run out of threads very quickly. cfs.setValue( "ServerThreads", numberOfThreads ); - // down from 60 - cfs.setValue( "CheckpointInterval", "10" ); - // Memory used by Virtuoso, 8k buffers cfs.setValue( "NumberOfBuffers", numberOfBuffers ); @@ -289,6 +289,13 @@ // down from 10000000 cfs.setValue( "FreeTextBatchSize", "1000" ); + + // checkpoint interval in minutes (Virtuoso default: 60) + if ( checkpointInterval >= 0 ) + cfs.setValue( "CheckpointInterval", checkpointInterval ); + if ( minAutoCheckpointSize >= 0 ) + cfs.setValue( "MinAutoCheckpointSize", minAutoCheckpointSize ); + cfs.endGroup(); } --- trunk/kdesupport/soprano/backends/virtuoso/virtuosomodel.cpp #1057456:1057457 @@ -170,7 +170,7 @@ } -// TODO: use DB.DBA.SPARQL_SELECT_KNOWN_GRAPHS() +// TODO: use "select GRAPH_IRI from DB.DBA.SPARQL_SELECT_KNOWN_GRAPHS_T" Soprano::NodeIterator Soprano::VirtuosoModel::listContexts() const { // qDebug() << Q_FUNC_INFO;