We have received various inquiries on high-end metadata stores. I will here go through some salient questions. The requested features include:

  • Scaling to trillions of triples
  • Running on clusters of commodity servers
  • Running in federated environments, possibly over wide area networks
  • Built-in inference
  • Transactions
  • Security
  • Support for extra triple level metadata, such as security attributes

Q: What is the storage cost per triple? answer

Q: What is the cost to insert a triple? answer

Q: What is the cost to delete a triple? (For the insertion itself, as well as for updating any indices) answer

Q: What is the cost to search on a given property? answer

Q: What data types are supported? answer

Q: What inferencing is supported? answer

Q: Is the inferencing dynamic or is an extra step required before inferencing can be used? answer

Q: Do you support full text search? answer

Q: What programming interfaces are supported? Do you support standard SPARQL protocol? answer

Q: How can data be partitioned across multiple servers? answer

Q: How many triples can a single server handle? answer

Q: What is the performance impact of going from the billion to the trillion triples? answer

Q: Do you support additional metadata for triples, such as timestamps, security tags etc? answer

Q: Should we use RDF for our large metadata store? What are the alternatives? answer

Q: How multithreaded is Virtuoso? answer

Q: Can multiple servers run off a single shared disk database? answer

Q: Can Virtuoso run on a SAN? answer

Q: How does Virtuoso join across partitions? answer

Q: Does Virtuoso support federated triple stores? If there are multiple SPARQL end points, can Virtuoso be used to do queries joining between these? answer

Q: How many servers can a cluster contain? answer

Q: How do I reconfigure a cluster, adding and removing machines, etc? answer

Q: How will Virtuoso handle regional clusters? answer

Q: Is there a mechanism for terminating long running queries? answer

Q: Can the user be asynchronously notified when a long running query terminates? answer

Q: How many concurrent queries can Virtuoso handle? answer

Q: What is the relative performance of SPARQL queries vs. native relational queries answer

Q: Does Virtuoso support property tables? answer

Q: What performance metrics does Virtuoso offer? answer

Q: What support do you provide for concurrency/multithreading operation? Is your interface thread-safe? answer

Q: What level of ACID properties are supported? answer

Q: Do you provide the ability to atomically add a set of triples, where either all are added or none are added? answer

Q: Do you provide the ability to add a set of triples, respecting the isolation property (so concurrent accessors either see none of the triple values, or all of them)? answer

Q: What is the time to start a database, create/open a graph? answer

Q: What sort of security features are built into Virtuoso? answer