[ 
https://issues.apache.org/jira/browse/JENA-528?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andy Seaborne closed JENA-528.
------------------------------

> Deprecation of BulkUpdateHandler has unintended consequences for other 
> projects
> -------------------------------------------------------------------------------
>
>                 Key: JENA-528
>                 URL: https://issues.apache.org/jira/browse/JENA-528
>             Project: Apache Jena
>          Issue Type: Bug
>          Components: Jena
>    Affects Versions: Jena 2.10.1
>            Reporter: Claude Warren
>             Fix For: Jena 3.0.0
>
>
> Description copied from email conversations:
> SDB currently implements its own BulkUpdateHandler, and I just made some 
> tests that indicate that it is significantly faster than using GraphUtil.add 
> (2 seconds versus 40 seconds for 10k triples). Now that BulkUpdateHandler has 
> been deprecated, and Model.add is already using GraphUtil.add, what call 
> sequence are we supposed to use to retain the good performance of the 
> BulkUpdateHandler? Could a method Graph.add(Iterable<Triple>) be added to 
> allow graphs to optimize the behavior for specific Graph types?
> I understand SDB is rather unsupported, but the issue is really a question on 
> the core API.
> Deprecating the BulkUpdateHandler will not only affect SDB but any other 
> database such as Oracle RDF (the Jena adapter of which implements its own BUH 
> right now). Granted, the class is not gone yet, but some existing API calls 
> (Model.add) already bypass the BulkUpdateHandler, and I believe this was 
> premature (revision 1419595). My suggestion is to continue to delegate 
> Model.add through the BulkUpdateHandler for the upcoming release until the 
> interface has been truly removed/replaced with something else. BUH does not 
> represent much implementation overhead for Graph implementers, because they 
> can simply use the default implementation. The current implementation is too 
> inefficient for our product.
> If there is a cleaner mechanism to get the same performance, then I'd be 
> happy to hear about it.
> ===
> On 9/4/2013 3:15, Claude Warren wrote:
> As I recall the discuss around this topic dealt with the idea that you
> could add each triple inside a transaction and when the transaction
> committed transaction code would do the bulk update if supported.
> However
> I may be way off base here.  I have no objection to retaining the BUH.
> ==
> If this were the case, then the code in the GraphUtil helper functions should 
> probably wrap the individual performUpdate calls with a transaction, but they 
> don't.
> I would greatly appreciate seeing this resolved before the final release. As 
> suggested earlier, we could gain time for a proper redesign by avoiding the 
> calls to the GraphUtil replacement functions, or changing those functions so 
> that they call graph.getBulkUpdateHandler() for the time being, and possibly 
> undeprecate BUH for now.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to