Giter Club home page Giter Club logo

scylla-rdf's Introduction

Scylla RDF

An RDF store (aka Triplestore) built using Eclipse RDF4J and ScyllaDB. Full-text search is supported with Elasticsearch.

Warning: It's still in an early stage of development, so if you have any trouble or question, please, create an issue.

Build Status

Deployment

For testing purposes deploy ScyllaDB, Elasticsearch and Scylla-RDF locally using docker-compose-dev.yml:

$ docker-compose -f docker-compose-dev.yml up -d

For production, you need to deploy ScyllaDB and Elasticsearch separately. And use docker-compose-prod.yml to deploy Scylla-RDF. Scylla-RDF were tested with:

  • ScyllaDB 3.0.10
  • Elasticsearch 6.5.4

In both cases, after the deployment, you need to create a repository via the RDF4J Workbench Console which'll be available on 80th port of the machine where Scylla-RDF was deployed, e.g. http://localhost. The default login/password: admin/scylla-rdf.

Bulk Loading

We use Apache Beam to bulk load RDF data to ScyllaDB. The repository with the source code and instructions: https://github.com/DataFabricRus/scylla-beam-pipelines.

Benchmarks

We benchmark new features, the results available in https://github.com/DataFabricRus/scylla-rdf-benchmark.

Build from sources

$ mvn clean install
$ docker-compose -f docker-compose-dev.yml build

License

MIT License

scylla-rdf's People

Contributors

kmax avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

aahmadai

scylla-rdf's Issues

com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed

I successfully deployed scylla-rdf to docker then got into RDF4J Workbench and can create repositories. The problem is that I can't do anything else, when I try to access Namespaces, Contexts, and all other tabs I get similar exceptions:

HTTP Status 500 โ€“ Internal Server Error
Type Exception Report

Message org.eclipse.rdf4j.repository.RepositoryException: org.eclipse.rdf4j.repository.RepositoryException: com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: /0.0.4.87:9042 (com.datastax.driver.core.exceptions.TransportException: [/0.0.4.87:9042] Cannot connect))

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

javax.servlet.ServletException: org.eclipse.rdf4j.repository.RepositoryException: org.eclipse.rdf4j.repository.RepositoryException: com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: /0.0.4.87:9042 (com.datastax.driver.core.exceptions.TransportException: [/0.0.4.87:9042] Cannot connect))
	org.eclipse.rdf4j.workbench.proxy.WorkbenchServlet.handleRequest(WorkbenchServlet.java:140)
	org.eclipse.rdf4j.workbench.proxy.WorkbenchServlet.service(WorkbenchServlet.java:103)
	org.eclipse.rdf4j.workbench.proxy.WorkbenchGateway.service(WorkbenchGateway.java:114)
	org.eclipse.rdf4j.workbench.base.AbstractServlet.service(AbstractServlet.java:125)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)
	org.eclipse.rdf4j.workbench.proxy.CacheFilter.doFilter(CacheFilter.java:61)
	org.eclipse.rdf4j.workbench.proxy.CookieCacheControlFilter.doFilter(CookieCacheControlFilter.java:53)
Root Cause

org.eclipse.rdf4j.repository.RepositoryException: org.eclipse.rdf4j.repository.RepositoryException: com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: /0.0.4.87:9042 (com.datastax.driver.core.exceptions.TransportException: [/0.0.4.87:9042] Cannot connect))
	org.eclipse.rdf4j.http.client.SPARQLProtocolSession.execute(SPARQLProtocolSession.java:1019)
	org.eclipse.rdf4j.http.client.SPARQLProtocolSession.executeOK(SPARQLProtocolSession.java:958)
	org.eclipse.rdf4j.http.client.SPARQLProtocolSession.sendTupleQueryViaHttp(SPARQLProtocolSession.java:755)
	org.eclipse.rdf4j.http.client.SPARQLProtocolSession.getTupleQueryResult(SPARQLProtocolSession.java:690)
	org.eclipse.rdf4j.http.client.RDF4JProtocolSession.getNamespaces(RDF4JProtocolSession.java:359)
	org.eclipse.rdf4j.http.client.RDF4JProtocolSession.getNamespaces(RDF4JProtocolSession.java:344)
	org.eclipse.rdf4j.repository.http.HTTPRepositoryConnection.getNamespaces(HTTPRepositoryConnection.java:726)
	org.eclipse.rdf4j.workbench.commands.NamespacesServlet.service(NamespacesServlet.java:49)
	org.eclipse.rdf4j.workbench.base.TransformationServlet.service(TransformationServlet.java:111)
	org.eclipse.rdf4j.workbench.base.TransformationServlet.service(TransformationServlet.java:95)
	org.eclipse.rdf4j.workbench.base.AbstractServlet.service(AbstractServlet.java:125)
	org.eclipse.rdf4j.workbench.proxy.ProxyRepositoryServlet.service(ProxyRepositoryServlet.java:99)
	org.eclipse.rdf4j.workbench.proxy.WorkbenchServlet.service(WorkbenchServlet.java:188)
	org.eclipse.rdf4j.workbench.proxy.WorkbenchServlet.handleRequest(WorkbenchServlet.java:128)
	org.eclipse.rdf4j.workbench.proxy.WorkbenchServlet.service(WorkbenchServlet.java:103)
	org.eclipse.rdf4j.workbench.proxy.WorkbenchGateway.service(WorkbenchGateway.java:114)
	org.eclipse.rdf4j.workbench.base.AbstractServlet.service(AbstractServlet.java:125)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)
	org.eclipse.rdf4j.workbench.proxy.CacheFilter.doFilter(CacheFilter.java:61)
	org.eclipse.rdf4j.workbench.proxy.CookieCacheControlFilter.doFilter(CookieCacheControlFilter.java:53)

Here is what I do to deploy:

  1. Build ScyllaDB Java Driver 3.7.1-scylla branch and RDF4J (rdf4j, rdf4j-storage and rdf4j-tools) develop branch.
  2. Build and deploy scylla-rdf.
mvn clean install
docker-compose -f docker-compose-dev.yml up -d
  1. Access http://localhost and get to RDF4J Workbench. No password is required for some reason.
  2. Create repositories.
  3. Can't access other tabs other than Modify options, but if try to add some data it throws the same exception.

Am I doing something wrong?

This is what I see in the summary of the repository:
image
And all repositories:
image

I get the same result on two different PCs running Windows 10 Pro.

Edit: I found how to login as admin but it did't solve the issue.

Naive cardinality estimator for a triple pattern using ScyllaDB's estimates

The approach is inspired by the M. Stocker's work.

The cardinality of a triple pattern (i.e. card(t)) is equal to card(t) = card(s) * card(p) * card(o).

The card(s) is based on an estimate from ScyllaDB which maintains "Number of partitions (estimate)" for each table, so we can count the number of distinct subjects by the number of partitions in the S_POC table. Thus card(s) = card(*) / <number of partitions in S_POC> where card(*) is the total number of triples in triplestore.

Same as card(s), the card(o) is based on the estimate from ScyllaDB for the O_SPC table. Thus card(o) = card(*) / <number of partitions in O_SPC>.

The card(p) is fetched from a separate index where each p has the number of triples containing it. Such index is quite small (e.g. for http://tree.datafabric.cc it's just ~680Kb on disk) and easy to maintain (it's a counter which can be incremented and decremented). But still it's only an estimate if insert the same triple 2 times, then the counter is incremented 2 times as well.

If both p and o are bound, then instead of card(o) we use card(p, o). The card(p, o) denotes the number of triples containing both p and o. It's fetched from a separate index where for each p there is a histogram.

The same way, to estimate the card(*) and in future card(c), a separate index is maintained, similarly to the card(p)'s one.

Limitations:

  1. Assumes independence of the subject, predicate and object cardinalities.
  2. Assumes that each subject and object have the same number of relations.
  3. Doesn't use the cardinality of the context if it's bound, i.e. card(c).
  4. Requires to do nodetool flush after any write to ScyllaDB, so it'd recompute the estimates.

Estimates from ScyllaDB are queried through the JMX API which's also used by nodetool.

Failure while adding RDF

Got the following error (console output) when tried to file through the "Add RDF" functionality:

com.datastax.driver.core.exceptions.InvalidQueryException: Key may not be empty scylla-rdf_1
scylla-rdf_1  | 	at com.datastax.driver.core.exceptions.InvalidQueryException.copy(InvalidQueryException.java:49)
scylla-rdf_1  | 	at com.datastax.driver.core.DriverThrowables.propagateCause(DriverThrowables.java:35)
scylla-rdf_1  | 	at com.datastax.driver.core.DefaultResultSetFuture.getUninterruptibly(DefaultResultSetFuture.java:293)
scylla-rdf_1  | 	at com.datastax.driver.core.AbstractSession.execute(AbstractSession.java:58)
scylla-rdf_1  | 	at cc.datafabric.scyllardf.dao.impl.ScyllaRDFIndexDAO.setNamespace(ScyllaRDFIndexDAO.kt:137)
scylla-rdf_1  | 	at cc.datafabric.scyllardf.sail.ScyllaRDFSailConnection.setNamespaceInternal(ScyllaRDFSailConnection.kt:40)
scylla-rdf_1  | 	at org.eclipse.rdf4j.sail.helpers.AbstractSailConnection.setNamespace(AbstractSailConnection.java:621)
scylla-rdf_1  | 	at org.eclipse.rdf4j.repository.sail.SailRepositoryConnection.setNamespace(SailRepositoryConnection.java:354)
scylla-rdf_1  | 	at org.eclipse.rdf4j.repository.util.RDFInserter.addNamespace(RDFInserter.java:54)
scylla-rdf_1  | 	at org.eclipse.rdf4j.repository.util.AbstractRDFInserter.endRDF(AbstractRDFInserter.java:138)
scylla-rdf_1  | 	at org.eclipse.rdf4j.rio.turtle.TurtleParser.parse(TurtleParser.java:186)
scylla-rdf_1  | 	at org.eclipse.rdf4j.rio.turtle.TurtleParser.parse(TurtleParser.java:130)
scylla-rdf_1  | 	at org.eclipse.rdf4j.repository.util.RDFLoader.loadInputStreamOrReader(RDFLoader.java:241)
scylla-rdf_1  | 	at org.eclipse.rdf4j.repository.util.RDFLoader.load(RDFLoader.java:168)
scylla-rdf_1  | 	at org.eclipse.rdf4j.repository.base.AbstractRepositoryConnection.add(AbstractRepositoryConnection.java:289)
scylla-rdf_1  | 	at org.eclipse.rdf4j.http.server.repository.statements.StatementsController.getAddDataResult(StatementsController.java:398)
scylla-rdf_1  | 	at org.eclipse.rdf4j.http.server.repository.statements.StatementsController.handleRequestInternal(StatementsController.java:117)
scylla-rdf_1  | 	at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:174)
scylla-rdf_1  | 	at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:50)
scylla-rdf_1  | 	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
scylla-rdf_1  | 	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
scylla-rdf_1  | 	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
scylla-rdf_1  | 	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
scylla-rdf_1  | 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
scylla-rdf_1  | 	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
scylla-rdf_1  | 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
scylla-rdf_1  | 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
scylla-rdf_1  | 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
scylla-rdf_1  | 	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
scylla-rdf_1  | 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
scylla-rdf_1  | 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
scylla-rdf_1  | 	at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)
scylla-rdf_1  | 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
scylla-rdf_1  | 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
scylla-rdf_1  | 	at com.github.ziplet.filter.compression.CompressingFilter.doFilter(CompressingFilter.java:300)
scylla-rdf_1  | 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
scylla-rdf_1  | 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
scylla-rdf_1  | 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200)
scylla-rdf_1  | 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
scylla-rdf_1  | 	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
scylla-rdf_1  | 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
scylla-rdf_1  | 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
scylla-rdf_1  | 	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
scylla-rdf_1  | 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
scylla-rdf_1  | 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
scylla-rdf_1  | 	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
scylla-rdf_1  | 	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
scylla-rdf_1  | 	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:836)
scylla-rdf_1  | 	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1839)
scylla-rdf_1  | 	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
scylla-rdf_1  | 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
scylla-rdf_1  | 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
scylla-rdf_1  | 	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
scylla-rdf_1  | 	at java.lang.Thread.run(Thread.java:748)
scylla-rdf_1  | Caused by: com.datastax.driver.core.exceptions.InvalidQueryException: Key may not be empty
scylla-rdf_1  | 	at com.datastax.driver.core.Responses$Error.asException(Responses.java:181)
scylla-rdf_1  | 	at com.datastax.driver.core.DefaultResultSetFuture.onSet(DefaultResultSetFuture.java:215)
scylla-rdf_1  | 	at com.datastax.driver.core.RequestHandler.setFinalResult(RequestHandler.java:228)
scylla-rdf_1  | 	at com.datastax.driver.core.RequestHandler.access$2600(RequestHandler.java:62)
scylla-rdf_1  | 	at com.datastax.driver.core.RequestHandler$SpeculativeExecution.setFinalResult(RequestHandler.java:1005)
scylla-rdf_1  | 	at com.datastax.driver.core.RequestHandler$SpeculativeExecution.onSet(RequestHandler.java:808)
scylla-rdf_1  | 	at com.datastax.driver.core.Connection$Dispatcher.channelRead0(Connection.java:1233)
scylla-rdf_1  | 	at com.datastax.driver.core.Connection$Dispatcher.channelRead0(Connection.java:1151)
scylla-rdf_1  | 	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
scylla-rdf_1  | 	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
scylla-rdf_1  | 	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
scylla-rdf_1  | 	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323)
scylla-rdf_1  | 	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
scylla-rdf_1  | 	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
scylla-rdf_1  | 	at com.datastax.driver.core.InboundTrafficMeter.channelRead(InboundTrafficMeter.java:38)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
scylla-rdf_1  | 	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
scylla-rdf_1  | 	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965)
scylla-rdf_1  | 	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
scylla-rdf_1  | 	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644)
scylla-rdf_1  | 	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:579)
scylla-rdf_1  | 	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:496)
scylla-rdf_1  | 	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458)
scylla-rdf_1  | 	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:897)
scylla-rdf_1  | 	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
scylla-rdf_1  | 	... 1 common frames omitted

An exception is thrown while querying a subject within a named graph

The query (a kind of) that leads to the exception:

SELECT ?s
WHERE {
    GRAPH <http://example.com/graphname> { 
      ?s a :ClassName . 
    } 
}

The exception:

org.eclipse.rdf4j.query.QueryEvaluationException: java.util.concurrent.ExecutionException: com.datastax.driver.core.exceptions.InvalidQueryException: Invalid null value for clustering key part subject
scylla-rdf_1  | org.eclipse.rdf4j.query.QueryEvaluationException: java.util.concurrent.ExecutionException: com.datastax.driver.core.exceptions.InvalidQueryException: Invalid null value for clustering key part subject
scylla-rdf_1  | 	at org.eclipse.rdf4j.sail.evaluation.SailTripleSource$1.convert(SailTripleSource.java:49)
scylla-rdf_1  | 	at org.eclipse.rdf4j.sail.evaluation.SailTripleSource$1.convert(SailTripleSource.java:45)
scylla-rdf_1  | 	at org.eclipse.rdf4j.common.iteration.ExceptionConvertingIteration.hasNext(ExceptionConvertingIteration.java:69)
scylla-rdf_1  | 	at org.eclipse.rdf4j.common.iteration.IterationWrapper.hasNext(IterationWrapper.java:63)
scylla-rdf_1  | 	at org.eclipse.rdf4j.common.iteration.FilterIteration.findNextElement(FilterIteration.java:74)
scylla-rdf_1  | 	at org.eclipse.rdf4j.common.iteration.FilterIteration.hasNext(FilterIteration.java:45)
scylla-rdf_1  | 	at org.eclipse.rdf4j.common.iteration.ConvertingIteration.hasNext(ConvertingIteration.java:62)
scylla-rdf_1  | 	at org.eclipse.rdf4j.common.iteration.ConvertingIteration.hasNext(ConvertingIteration.java:62)
scylla-rdf_1  | 	at org.eclipse.rdf4j.common.iteration.IterationWrapper.hasNext(IterationWrapper.java:63)
scylla-rdf_1  | 	at org.eclipse.rdf4j.sail.helpers.SailBaseIteration.hasNext(SailBaseIteration.java:41)
scylla-rdf_1  | 	at org.eclipse.rdf4j.common.iteration.IterationWrapper.hasNext(IterationWrapper.java:63)
scylla-rdf_1  | 	at org.eclipse.rdf4j.query.QueryResults.report(QueryResults.java:225)
scylla-rdf_1  | 	at org.eclipse.rdf4j.http.server.repository.TupleQueryResultView.renderInternal(TupleQueryResultView.java:99)
scylla-rdf_1  | 	at org.eclipse.rdf4j.http.server.repository.QueryResultView.render(QueryResultView.java:63)
scylla-rdf_1  | 	at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1371)
scylla-rdf_1  | 	at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1117)
scylla-rdf_1  | 	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1056)
scylla-rdf_1  | 	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
scylla-rdf_1  | 	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
scylla-rdf_1  | 	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:908)
scylla-rdf_1  | 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
scylla-rdf_1  | 	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)
scylla-rdf_1  | 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
scylla-rdf_1  | 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
scylla-rdf_1  | 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
scylla-rdf_1  | 	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
scylla-rdf_1  | 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
scylla-rdf_1  | 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
scylla-rdf_1  | 	at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)
scylla-rdf_1  | 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
scylla-rdf_1  | 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
scylla-rdf_1  | 	at com.github.ziplet.filter.compression.CompressingFilter.doFilter(CompressingFilter.java:300)
scylla-rdf_1  | 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
scylla-rdf_1  | 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
scylla-rdf_1  | 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
scylla-rdf_1  | 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
scylla-rdf_1  | 	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
scylla-rdf_1  | 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
scylla-rdf_1  | 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
scylla-rdf_1  | 	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
scylla-rdf_1  | 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
scylla-rdf_1  | 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
scylla-rdf_1  | 	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
scylla-rdf_1  | 	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
scylla-rdf_1  | 	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:853)
scylla-rdf_1  | 	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587)
scylla-rdf_1  | 	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
scylla-rdf_1  | 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
scylla-rdf_1  | 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
scylla-rdf_1  | 	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
scylla-rdf_1  | 	at java.base/java.lang.Thread.run(Thread.java:834)
scylla-rdf_1  | Caused by: java.util.concurrent.ExecutionException: com.datastax.driver.core.exceptions.InvalidQueryException: Invalid null value for clustering key part subject
scylla-rdf_1  | 	at com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:299)
scylla-rdf_1  | 	at com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:286)
scylla-rdf_1  | 	at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116)
scylla-rdf_1  | 	at cc.datafabric.scyllardf.dao.MultipleResultSetFutureIteration.hasNext(MultipleResultSetFutureIteration.kt:38)
scylla-rdf_1  | 	at cc.datafabric.scyllardf.dao.SPOCIteration.hasNext(SPOCIteration.kt:22)
scylla-rdf_1  | 	at cc.datafabric.scyllardf.coder.CoderFacade$toStatementIteration$1.hasNext(CoderFacade.kt:222)
scylla-rdf_1  | 	at org.eclipse.rdf4j.common.iteration.IterationWrapper.hasNext(IterationWrapper.java:63)
scylla-rdf_1  | 	at org.eclipse.rdf4j.sail.helpers.SailBaseIteration.hasNext(SailBaseIteration.java:41)
scylla-rdf_1  | 	at org.eclipse.rdf4j.common.iteration.ExceptionConvertingIteration.hasNext(ExceptionConvertingIteration.java:63)
scylla-rdf_1  | 	... 48 common frames omitted
scylla-rdf_1  | Caused by: com.datastax.driver.core.exceptions.InvalidQueryException: Invalid null value for clustering key part subject
scylla-rdf_1  | 	at com.datastax.driver.core.Responses$Error.asException(Responses.java:181)
scylla-rdf_1  | 	at com.datastax.driver.core.DefaultResultSetFuture.onSet(DefaultResultSetFuture.java:215)
scylla-rdf_1  | 	at com.datastax.driver.core.RequestHandler.setFinalResult(RequestHandler.java:229)
scylla-rdf_1  | 	at com.datastax.driver.core.RequestHandler.access$2600(RequestHandler.java:63)
scylla-rdf_1  | 	at com.datastax.driver.core.RequestHandler$SpeculativeExecution.setFinalResult(RequestHandler.java:1011)
scylla-rdf_1  | 	at com.datastax.driver.core.RequestHandler$SpeculativeExecution.onSet(RequestHandler.java:814)
scylla-rdf_1  | 	at com.datastax.driver.core.Connection$Dispatcher.channelRead0(Connection.java:1286)
scylla-rdf_1  | 	at com.datastax.driver.core.Connection$Dispatcher.channelRead0(Connection.java:1204)
scylla-rdf_1  | 	at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
scylla-rdf_1  | 	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
scylla-rdf_1  | 	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
scylla-rdf_1  | 	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323)
scylla-rdf_1  | 	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
scylla-rdf_1  | 	at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
scylla-rdf_1  | 	at com.datastax.driver.core.InboundTrafficMeter.channelRead(InboundTrafficMeter.java:38)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
scylla-rdf_1  | 	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
scylla-rdf_1  | 	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
scylla-rdf_1  | 	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965)
scylla-rdf_1  | 	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
scylla-rdf_1  | 	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644)
scylla-rdf_1  | 	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:579)
scylla-rdf_1  | 	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:496)
scylla-rdf_1  | 	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458)
scylla-rdf_1  | 	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:897)
scylla-rdf_1  | 	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
scylla-rdf_1  | 	... 1 common frames omitted

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.