The reason this runs into space problem is that the TDB transaction system uses RAM for uncommited data.

Way around this:

1/ Larger heap.

2/ "spill to disk" option
   See TDB.transactionJournalWriteBlockMode
   --set tdb:transactionJournalWriteBlockMode=mapped
   (I confess I have never had to use this feature)

3/ Delete piece at a time:
   (best if you can do it this way - but note that
   this is several transactions hence visible while it happens)

WITH <named_graph>
DELETE { ?s ?p ?o }
WHERE
{ SELECT ?s ?p ?o
  WHERE { ?s ?p ?o }
  LIMIT 100000
} # Tune the limit to work

apply until nothing deleted.
ASK { GRAPH <named_graph> { ?s ?p ?o } }
returns false.


Long term futures:

A different version of TDB has arbitrary sized transactions.
The core technology for this works (copy-on-write B+Trees, new generalised transaction coordination).
It is not ready for deployment yet.
<advert>
No timescale - I would love to find a way to get
some personal resourcing/sponsorship for me
to make this happen sooner.
</advert>

        Andy


On 03/04/15 17:15, Trevor Donaldson wrote:
More info. I tried datasetAccessor.deleteModel(graphURI) as well as
DROPGRAPH <graphUri> as well as DELETE {GRAPH <graphURi {?s ?p ?o}} WHERE
{GRAPH <graphURI> {?s ?p ?o}}. These all result in the same GC overhead
limit exceeded. Unsure on how to remove a named graph.

On Fri, Apr 3, 2015 at 10:15 AM, Trevor Donaldson <[email protected]>
wrote:

More info. I am running CLEAR GRAPH <Named_GRAPH> from the basedataset
service which is a union of all named graphs. There are 7 named graphs in
total. I didn't think this should matter though. If this will not work, is
there another way for me to clear a named graph without running into the
above error.

Thanks

On Fri, Apr 3, 2015 at 9:22 AM, Trevor Donaldson <[email protected]>
wrote:

Lets try that again. smh

Additional info.
java.lang.OutOfMemoryError : GC overhead limit exceeded
at java.util.HashMap$KeySet.iterator(HashMap.java:912)
at org.apache.jena.atlas.lib.Map2.iterator(Map2.java:81)
at com.hp.hpl.jena.tdb.solver.BindingTDB.calcVars(BindingTDB.java:74)
...
at
org.apache.jena.fusek.servlets.SPARQL.update.perform(SPARQL_UPDATE.java:105)

On Fri, Apr 3, 2015 at 9:20 AM, Trevor Donaldson <[email protected]>
wrote:

Additional info.
java.lang.OutOfMemoryError:GC overhead limit exceeded


On Thu, Apr 2, 2015 at 4:33 PM, Trevor Donaldson <[email protected]>
wrote:

Hi all,

I have a named graph with 10mil+ quads. I am trying to clear the named
graph. In order to do this I am using CLEAR GRAPH <NAMED_GRAPH>. I am using
fusek2 and the fuseki war. Any ideas why I am running into a Java Heap
space error?

Thanks







Reply via email to