Virtuoso Lite Mode Installation and Configuration Guide


Virtuoso supports Lite mode, where the initial size of a server process is a tiny fraction of what the initial size would be with default settings. With 2MB of disk cache buffers (ini file setting, NumberOfBuffers? = 256), the process size stays under 30MB on 32-bit Linux.


The value of this is that one can now have RDF and full text indexing on the desktop without running a Java VM or any other memory-intensive software. And of course, all of SQL (transactions, stored procedures, etc.) is in the same embeddable-sized container.


The Lite executable is a full Virtuoso executable; the Lite mode is controlled by a switch in the configuration file. The executable size is about 10MB for 32-bit Linux. A database created in the Lite mode will be converted into a fully-featured database (tables and indexes are added, among other things) if the server is started with the Lite setting "off"; functionality can be reverted to Lite mode, though it will now consume somewhat more memory, etc.

Lite mode offers full SQL and SPARQL/SPARUL (via SPASQL), but disables all HTTP-based services (WebDAV, application hosting, etc.). Clients can still use all typical database access mechanisms (i.e., ODBC, JDBC, OLE-DB, ADO.NET, and XMLA) to connect, including the Jena and Sesame frameworks for RDF. ODBC now offers full support of RDF data types for C-based clients. A Redland-compatible API also exists, for use with Redland v1.0.8 and later.

Especially for embedded use, we now allow restricting the listener to be a Unix socket, which allows client connections only from the localhost.

Shipping an embedded Virtuoso is easy. It just takes one executable and one configuration file. Performance is generally comparable to "normal" mode, except that Lite will be somewhat less scalable on multicore systems.

The Lite mode is included in the Virtuoso Open Source release.


Virtuoso ini Parameters section

  • LiteMode? = 0/1 (default 0) . Runs server in lite mode. When Lite mode is on:
    • The Web Services are not initialized i.e. no Web Server, DAV, SOAP, POP3 etc.;
    • The replication is stopped;
    • The PL debugging is disabled;
    • Plugins are disabled;
    • Rendezvous is disabled;
    • The relevant tables to the above are not created;
    • The index tree maps is set to 8 if no other setting is given;
    • Memory reserve is not allocated;
    • Affects DisableTcpSocket?. So DisableTcpSocket? setting is treated as 1 when LiteMode?=1, regardless of value in INI file;
  • IndexTreeMaps? = 2 -1024 (power of 2) Size of index tree maps, larger is better for speed but consume memory, in lite is 2 in 'normal' mode is 256 by default;
  • DisableTcpSocket? = 1/0 Default = 0. If set to 1, disables database listener on TCP port; UNIX socket must be used for data access connections (ODBC, JDBC, ADO.NET, OLE DB). When LiteMode?=1, DisableTcpSocket? setting in INI file is ignored and treated as if set to 1.