[
https://issues.apache.org/jira/browse/JENA-567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13804936#comment-13804936
]
Hudson commented on JENA-567:
-----------------------------
SUCCESS: Integrated in Jena_Development_Test #1014 (See
[https://builds.apache.org/job/Jena_Development_Test/1014/])
JENA-567 Add option to TDB for specifying where the temporary write blocks for
the BlockMgrJournal come from. Also added a memory mapped ByteBuffer allocator
to work with the new BlockMgrJournal functionality. (sallen: rev 1535599)
* /jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/TDB.java
* /jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/block/Block.java
*
/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/BufferAllocator.java
*
/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/BufferAllocatorDirect.java
*
/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/BufferAllocatorMapped.java
*
/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/base/file/BufferAllocatorMem.java
*
/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/transaction/BlockMgrJournal.java
*
/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/transaction/Journal.java
> Improve Fuseki/TDB transaction memory usage
> -------------------------------------------
>
> Key: JENA-567
> URL: https://issues.apache.org/jira/browse/JENA-567
> Project: Apache Jena
> Issue Type: Improvement
> Components: TDB
> Reporter: Stephen Allen
> Assignee: Stephen Allen
>
> TDB has to buffer in memory all of the modified blocks for a transaction
> before committing it. This causes out of memory exceptions when attempting
> to add a large number of statements in a single transaction.
> An easy way to fix this would be to copy the write block contents into a
> memory mapped file instead of heap memory ^†^. We can provide three user
> specified options for controlling the location of the temporary blocks:
> # JVM heap (default, and what we currently use)
> # Direct memory (process heap, but not in the JVM)
> # Memory mapped temporary file
> See this [Jena thread| http://markmail.org/thread/ckeevvhl2luevixw] for some
> additional discussion.
> ^†^ _The harder way would involve writing the old blocks to the journal, then
> writing the new blocks directly to the indexes, with a tombstone pointing to
> the old block in the journal so that readers could still retrieve the old
> version. This however would seem to require a substantial refactor, as well
> as a change to the on-disk database format._
--
This message was sent by Atlassian JIRA
(v6.1#6144)