GitHub user samaitra opened a pull request:
https://github.com/apache/jena/pull/95
JENA-626 SPARQL Query Caching
The implementation of SPARQL Query Caching. The initial idea was to create
a separate service endpoint that invokes SPARQL_Query. The challenge we faced
was to intercept the results data when it is directly written into
ServletOutputStream. Currently the results data is copied into cacheBuilder
object before it is written to ServletOutputStream. The implementation caches
the results for 5 mins and then it invalidates the cache.
We have seen good performance benefit with initial test data.
[2015-10-17 15:43:21] Fuseki INFO [2] GET
http://localhost:3030/ds/data?default
[2015-10-17 15:43:21] Fuseki INFO [2] GET /ds :: 'data' :: <none> ?
default
[2015-10-17 15:43:21] Fuseki INFO [2] 200 OK (62 ms)
[2015-10-17 15:43:33] Fuseki INFO [3] GET
http://localhost:3030/ds/data?default
[2015-10-17 15:43:33] Fuseki INFO [3] GET /ds :: 'data' :: <none> ?
default
[2015-10-17 15:43:33] Fuseki INFO [3] 200 OK (7 ms)
[2015-10-17 15:43:50] Fuseki INFO [4] GET
http://localhost:3030/ds/data?default
[2015-10-17 15:43:50] Fuseki INFO [4] GET /ds :: 'data' :: <none> ?
default
[2015-10-17 15:43:50] Fuseki INFO [4] 200 OK (7 ms)
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/samaitra/jena master
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/jena/pull/95.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #95
----
commit 5d046600a0c684611670a760e32e45d3bc7bc671
Author: Saikat Maitra <[email protected]>
Date: 2015-01-25T18:14:00Z
CacheStore implementation
commit dda29d6512eb1b641cc9e97777b4071e7375cb59
Author: Saikat Maitra <[email protected]>
Date: 2015-01-26T16:54:31Z
Guava Cache Client implementation and Cache Store key generation
commit 3f54bff4eadda5f18ccf1328418351b94b2c6d36
Author: samaitra <[email protected]>
Date: 2015-01-29T10:38:30Z
Merge remote-tracking branch 'upstream/master'
commit 1241d8bf6e22b005487993f2b0b1eabb1604f4d4
Author: samaitra <[email protected]>
Date: 2015-01-30T12:19:53Z
singleton for cachestore and read value from cache
commit e984a8fea7c8e3ab167b52990db1545366ed133f
Author: samaitra <[email protected]>
Date: 2015-01-30T17:55:34Z
CacheAction definition and implementation
commit 5ef4e9e0f5c24abd7a1b54ca9120146c33ca8c63
Author: samaitra <[email protected]>
Date: 2015-01-31T19:05:38Z
building cache
commit a6d5b6c7f00bdbf0f00d80612f3a6c5d12af8b3f
Author: samaitra <[email protected]>
Date: 2015-01-31T19:06:20Z
Merge remote-tracking branch 'upstream/master'
commit 6a2b18b545437cb2a644015553d1249b362ce102
Author: samaitra <[email protected]>
Date: 2015-02-01T05:32:50Z
building cache
commit 74a956c526f65f460cffd20450d4d73c7b0c4f8e
Author: samaitra <[email protected]>
Date: 2015-02-01T11:21:31Z
building cache
commit 0bea5bcaaa07ae484bcae4ddf6342587d7c8e110
Author: samaitra <[email protected]>
Date: 2015-02-02T19:19:02Z
building cache
commit 0bd496c3e385feea728db37d73179c9d472f5bec
Author: samaitra <[email protected]>
Date: 2015-02-03T10:27:36Z
Cache initialization
commit 83f817f4059db8b4ed9f89aed48e221960b4ff9a
Author: Saikat Maitra <[email protected]>
Date: 2015-02-07T16:18:34Z
Merge remote-tracking branch 'upstream/master'
commit 86f16b69a2b01144abab98c68c06c3c5d3e2406e
Author: Saikat Maitra <[email protected]>
Date: 2015-02-22T15:01:36Z
Merge remote-tracking branch 'upstream/master'
commit 97a4a559940a6c3ddb4b18e5cc2b64be57c45269
Author: Saikat Maitra <[email protected]>
Date: 2015-02-28T05:11:09Z
Merge remote-tracking branch 'upstream/master'
commit 24ebeb0a4d49abeb53149d6b879006729a98bbd6
Author: Saikat Maitra <[email protected]>
Date: 2015-03-14T17:49:30Z
Merge branch 'master' of https://github.com/samaitra/jena
commit 9057022315f7ef0e3dca2406b160f42b5d884901
Author: samaitra <[email protected]>
Date: 2015-06-27T11:06:59Z
Merge remote-tracking branch 'upstream/master'
# Conflicts:
# jena-arq/src/main/java/com/hp/hpl/jena/query/ResultSetFormatter.java
# jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/JSONOutput.java
#
jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/JSONOutputASK.java
#
jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/JSONOutputResultSet.java
#
jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/OutputFormatter.java
# jena-arq/src/main/java/org/apache/jena/atlas/io/IndentedWriter.java
#
jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
#
jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiServer.java
#
jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java
commit 4df6b347d78c2b01082bdb000a5e18272deb347f
Author: samaitra <[email protected]>
Date: 2015-06-27T11:07:28Z
Merge remote-tracking branch 'upstream/master'
commit d627277cc37419d5337efdb8caac1e2f38d821f6
Author: samaitra <[email protected]>
Date: 2015-06-27T11:08:01Z
Merge remote-tracking branch 'upstream/master'
# Conflicts:
# jena-arq/src/main/java/com/hp/hpl/jena/query/ResultSetFormatter.java
# jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/JSONOutput.java
#
jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/JSONOutputASK.java
#
jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/JSONOutputResultSet.java
#
jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/OutputFormatter.java
# jena-arq/src/main/java/org/apache/jena/atlas/io/IndentedWriter.java
#
jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
#
jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiServer.java
#
jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java
commit 2fe4ee16d431d1ced049b59572e67a47c956d3ac
Author: samaitra <[email protected]>
Date: 2015-07-04T14:42:32Z
Merge remote-tracking branch 'upstream/master'
commit 44aec21ebb8ea2b550b058729a4a7ba543551eb4
Author: samaitra <[email protected]>
Date: 2015-07-04T15:34:52Z
Merge remote-tracking branch 'upstream/master'
# Conflicts:
# jena-arq/src/main/java/com/hp/hpl/jena/query/ResultSetFormatter.java
# jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/JSONOutput.java
#
jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/JSONOutputASK.java
#
jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/JSONOutputResultSet.java
#
jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/OutputFormatter.java
# jena-arq/src/main/java/org/apache/jena/atlas/io/IndentedWriter.java
#
jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
#
jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiServer.java
#
jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java
commit 618c319f6ec2772df66536a0db10cc369f40cc73
Author: samaitra <[email protected]>
Date: 2015-07-25T12:12:40Z
Merge remote-tracking branch 'upstream/master'
commit 488ffcbea7311a1821e7a29821c5f67e4e4565c8
Author: samaitra <[email protected]>
Date: 2015-07-25T13:26:39Z
updated ResponseResultSet to clean up cache references
commit 48d4094769d8d0f315c78b0287df33def2624b33
Author: samaitra <[email protected]>
Date: 2015-08-01T17:54:56Z
Merge remote-tracking branch 'upstream/master'
commit 7d933dd2d8690e5ca2e33376e6cd02e3546e8aaa
Author: samaitra <[email protected]>
Date: 2015-08-01T18:04:58Z
changed the data type to String
commit 39664ef8e13a280e0306208028cb4eee564c01ee
Author: samaitra <[email protected]>
Date: 2015-09-13T04:48:07Z
changed the data type to String
commit 2bc5e7123ac37f640e36e7215f77925d9a2aab56
Author: samaitra <[email protected]>
Date: 2015-09-13T04:53:55Z
Merge remote-tracking branch 'upstream/master'
# Conflicts:
#
jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_QueryDataset.java
#
jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java
commit 77f405778e4d8d5365cebbfe527a915939c779e2
Author: Saikat Maitra <[email protected]>
Date: 2015-10-03T23:13:50Z
Merge remote-tracking branch 'upstream/master'
Conflicts:
jena-arq/src/main/java/com/hp/hpl/jena/query/ResultSetFormatter.java
jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/JSONOutput.java
jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/JSONOutputASK.java
jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/JSONOutputResultSet.java
jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/OutputFormatter.java
jena-arq/src/main/java/org/apache/jena/atlas/io/IndentedWriter.java
jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiServer.java
jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java
jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java
commit 4422b592ea09be1441aa4353d27ac028bc194312
Author: Saikat Maitra <[email protected]>
Date: 2015-10-03T23:30:13Z
Merge remote-tracking branch 'origin/master'
Conflicts:
jena-arq/src/main/java/org/apache/jena/riot/system/InitRIOT.java
jena-arq/src/main/java/org/apache/jena/sparql/system/InitARQ.java
jena-core/src/main/java/org/apache/jena/system/JenaSubsystemLifecycle.java
jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
commit 9ef9154fa3019e4df32b93f427594dc25954e446
Author: Saikat Maitra <[email protected]>
Date: 2015-10-04T07:59:26Z
Merge remote-tracking branch 'upstream/master'
Conflicts:
jena-arq/src/main/java/com/hp/hpl/jena/query/ResultSetFormatter.java
jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/JSONOutput.java
jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/JSONOutputASK.java
jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/JSONOutputResultSet.java
jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/OutputFormatter.java
jena-arq/src/main/java/org/apache/jena/atlas/io/IndentedWriter.java
jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiServer.java
jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Query.java
jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java
commit 007f9cb595edfc14806ce56f0b76f4f9a97d4884
Author: samaitra <[email protected]>
Date: 2015-10-04T19:43:27Z
Merge remote-tracking branch 'upstream/master'
# Conflicts:
#
jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_QueryDataset.java
#
jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_UberServlet.java
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---