Hi Andy,

thanks for pointing at the old discussions. Reading through them, I notice that TopQuadrant should have responded earlier. I don't know whether I actually noticed this email, or whether I didn't understand the implications at the time, or whether tracking the low level details of Jena was outside of my responsibility at the time. In either case it was an oversight and I would like to give my input, albeit late.

On 9/4/2013 19:15, Andy Seaborne wrote:
http://mail-archives.apache.org/mod_mbox/jena-users/201211.mbox/%3C50B660D4.6070306%40apache.org%3E

> "[the BulkUpdateHandler] is not used"

This is not correct as SDB and OracleRDF are using it, possibly others.


and the dev list a year ago:

http://mail-archives.apache.org/mod_mbox/jena-dev/201209.mbox/%3C5044E9F3.8060705%40apache.org%3E

Remove BulkUpdateHandler interface
     Migrate it's few useful operation to Graph.


Yes, migrating the useful operations to Graph would IMHO have made sense, but this has not happened yet - instead the suggestion is to use transactions.


> UpdateHandlerSDB / A few of it's operations are useful but most turn into nothing but loops to call add(Triple)/delete(Triple).

The SDB implementation is very useful and makes significant performance differences. I assume likewise for Oracle.


Oracle are aware of the changes:
http://mail-archives.apache.org/mod_mbox/jena-users/201211.mbox/%3C50B688D8.9040600%40oracle.com%3E

Zhe responded that BUH is used, but judging from the archive, the discussion seems to have ended without a proper conclusion.


Oracle do not track Jena versions.
Oracle (at least 11g) is for Jena 2.6.2 (2009-10-16)
http://docs.oracle.com/cd/E18283_01/appdev.112/e11828/sem_jena.htm

I do know that the complexities arising in Jena lead to costs for storage implementers. I want to reduce those costs in the long term.

The latter argument is IMHO very weak. There are probably less than 10 Jena Graph database implementations (SDB, TDB, Oracle etc). They already have BUH implementations. Even if 10 more Graph implementations are added, it would mean that those 10 developers need to add approximately three lines of code:

    public BulkUpdateHandler getBulkUpdateHandler() {
        return new SimpleBulkUpdateHandler(this);
    }

OTOH by removing BulkUpdateHandler, you will see every user of this API affected, certainly more than 10. The overhead of adjusting SDB alone seems to far outweigh the cost savings (unless my previous observations about SDB were incorrect).

BTW I do agree that the number of event listener methods should be greatly reduced. Maybe only have notifyAddTriple and notifyAddIterable (taking an Iterable instead of a List). I am not 100% sure that only having notifyAddTriple would be sufficient for our use cases, so I'd rather see one form of bulk event preserved and Iterable seems the most generic one.

Thanks,
Holger

Reply via email to