[Mulgara-general] Mulgara size limits

Chuck Borromeo cborromeo3 at yahoo.com
Tue Jul 1 11:09:32 PDT 2008


Hello,
  OK I swapped the parser.  That didn't work.  The parser doesn't run out of memory, but it appears that Mulgara runs out of memory.  I ran the Mulgara server with the following settings:

java -d64 -Xmx4096m -jar mulgara-2.0-alpha.jar --serverconfig file:mulgara-config.xml

Here is the stack trace:

Caused by: java.lang.OutOfMemoryError: Java heap space
        at java.util.HashMap.<init>(HashMap.java:181)
        at java.util.LinkedHashMap.<init>(LinkedHashMap.java:210)
        at org.mulgara.store.stringpool.xa.XAStringPoolImpl$Cache.<init>(XAStringPoolImpl.java:3194)
        at org.mulgara.store.stringpool.xa.XAStringPoolImpl$SPO2GNCache.getCache(XAStringPoolImpl.java:3054)
        at org.mulgara.store.stringpool.xa.XAStringPoolImpl$SPO2GNCache.put(XAStringPoolImpl.java:3069)
        at org.mulgara.store.stringpool.xa.XAStringPoolImpl$SPO2GNCache.put(XAStringPoolImpl.java:3062)
        at org.mulgara.store.stringpool.xa.XAStringPoolImpl$Phase.findGNode(XAStringPoolImpl.java:1760)
        at org.mulgara.store.stringpool.xa.XAStringPoolImpl.findGNode(XAStringPoolImpl.java:387)
        at org.mulgara.resolver.StringPoolSession.localizeSPObject(StringPoolSession.java:506)
        at org.mulgara.resolver.StringPoolSession.localize(StringPoolSession.java:417)
        at org.mulgara.resolver.StringPoolSession.localizePersistent(StringPoolSession.java:200)
        at org.mulgara.resolver.store.StatementStoreResolver.localizePersistent(StatementStoreResolver.java:457)
        at org.mulgara.resolver.PersistentResolverSession.localize(PersistentResolverSession.java:97)
        at org.mulgara.content.rio.RDFXMLStatements.getColumnValue(RDFXMLStatements.java:323)
        at org.mulgara.content.rio.RDFXMLStatements.getObject(RDFXMLStatements.java:187)
        at org.mulgara.resolver.store.StatementStoreResolver.modifyModel(StatementStoreResolver.java:362)
        at org.mulgara.resolver.InternalResolver.modifyModel(InternalResolver.java:169)
        at org.mulgara.resolver.SetModelOperation.execute(SetModelOperation.java:166)
        at org.mulgara.resolver.MulgaraInternalTransaction.execute(MulgaraInternalTransaction.java:577)
        at org.mulgara.resolver.DatabaseSession.execute(DatabaseSession.java:617)
        at org.mulgara.resolver.DatabaseSession.setModel(DatabaseSession.java:479)
        at org.mulgara.server.rmi.SessionWrapperRemoteSession.setModel(SessionWrapperRemoteSession.java:120)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
        at sun.rmi.transport.Transport$1.run(Transport.java:153)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
        at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
        at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)


--- On Tue, 7/1/08, Paul Gearon <gearon at ieee.org> wrote:

> From: Paul Gearon <gearon at ieee.org>
> Subject: Re: [Mulgara-general] Mulgara size limits
> To: "Mulgara General" <mulgara-general at mulgara.org>
> Date: Tuesday, July 1, 2008, 1:18 PM
> On Tue, Jul 1, 2008 at 9:30 AM, Seaborne, Andy
> <andy.seaborne at hp.com> wrote:
> >
> >> [snip]
> >>
> >> The out-of-memory exception is being thrown in the
> Jena ARP parser,
> >> which we use for parsing RDF/XML.  Looking quickly
> at the Jena source, I
> >> see that ARP keeps a bunch of stuff in memory,
> namely blank node
> >> mappings, so it doesn't surprise me that it
> runs out of memory for large
> >> files.
> >
> > If it's the check for illegal reuse of bNodes ids,
> then may be it's an old version of ARP? Nowadays it
> issues a warning about being unable to track illegal reuse
> of bNode ids across the whole file and stops that checking
> while continuing parsing.  If you're using an old
> version, then if it's using an old version of Xerces,
> that might also be a factor.
> 
> I'm pretty sure that no one has updated this in a long
> time, so it's
> pretty much guaranteed to be an old version of ARP. Xerces
> got updated
> about 2 years ago, but I can't recall if it's
> happened again since
> then.
> 
> I didn't realize that the ARP code was keeping blank
> node mappings in
> memory. Whoever implemented the content handler with ARP
> must not have
> known this, as the content handler maintains it's own
> mappings. These
> mappings are file-based, so they shouldn't have memory
> restrictions,
> though I can't comment on their speed, as I don't
> know how well they
> cache in memory.
> 
> Alex's comment about RIO reminds me.... wasn't this
> parser supposed to
> replace the ARP-based one?
> 
> Paul
> _______________________________________________
> Mulgara-general mailing list
> Mulgara-general at mulgara.org
> http://mulgara.org/mailman/listinfo/mulgara-general


      


More information about the Mulgara-general mailing list