You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@rya.apache.org by "Jesse Hatfield (JIRA)" <ji...@apache.org> on 2016/05/05 23:03:12 UTC

[jira] [Created] (RYA-72) AccumuloRyaDAO doesn't flush/close secondary indexers' writers

Jesse Hatfield created RYA-72:
---------------------------------

             Summary: AccumuloRyaDAO doesn't flush/close secondary indexers' writers
                 Key: RYA-72
                 URL: https://issues.apache.org/jira/browse/RYA-72
             Project: Rya
          Issue Type: Bug
          Components: dao
            Reporter: Jesse Hatfield
            Priority: Minor


(Seen with respect to AccumuloTemporalIndexer, unconfirmed which others exhibit the same problem.)

Secondary indexers use MultiTableBatchWriter to write to Accumulo. This needs to be flushed in order to actually write data, and should probably be closed when finished. If this isn't done explicitly, the writer only closes itself if/when its finalize() method is called.

When interacting with the indexers directly, this is fine: the flush and close methods on the indexers can be used to call the corresponding methods on their writers.

But the AccumuloRyaDAO doesn't call these methods (or expose its indexers), so if an application is interacting with the indexers through the DAO, there's no way to make sure changes are flushed. The DAO does have its own MultiTableBatchWriter, however (for writing to the spo/osp/pos tables), and this writer is flushed and closed properly by the DAO's corresponding methods.

Possible fixes include:
A. Have the DAO flush/close its indexers whenever it does the same with its own writer.
B. Configure the indexers to use the same writer as the DAO. (The DAO invokes setMultiTableBatchWriter, but this is an empty method in AbstractAccumuloIndexer and only the Entity index appears to implement it.)



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