[
https://issues.apache.org/jira/browse/RYA-246?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16137317#comment-16137317
]
ASF GitHub Bot commented on RYA-246:
------------------------------------
GitHub user meiercaleb opened a pull request:
https://github.com/apache/incubator-rya/pull/213
RYA-246-Query-Export-Strategy
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
## Description
Updated Fluo App API so that an ExportStrategy can be specified when a user
registers the query with Fluo. The QueryResultObserver reads the
ExportStrategy from the QueryMetadata and the ExportManager then applies the
appropriate Exporter(s) based on the QueryType and the ExportStrategy.
### Tests
There were a number of Fluo ITs in place that test this added functionality.
### Links
[Jira](https://issues.apache.org/jira/browse/RYA-246)
### Checklist
- [ ] Code Review
- [ X] Squash Commits
#### People To Reivew
@amihalik @pujav65 @isper3at
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/meiercaleb/incubator-rya RYA-246
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/incubator-rya/pull/213.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #213
----
commit 9263dac721a407a8c7a0d26e1de3532273f6b6bb
Author: Caleb Meier <[email protected]>
Date: 2017-08-08T04:22:00Z
RYA-246-Query-Export-Strategy
----
> Separate Fluo query result exporters, Rya PCJ intermingled kafka triggers
> -------------------------------------------------------------------------
>
> Key: RYA-246
> URL: https://issues.apache.org/jira/browse/RYA-246
> Project: Rya
> Issue Type: Improvement
> Components: dao
> Environment: Fluo, Kafka, PCJ, Accumulo
> Reporter: David W. Lotts
> Assignee: Caleb Meier
>
> Currently the Fluo query observer framework (FQF) has a great plugin-in-ish
> way of doing exports. (See field: {{exporters}} in class:
> {{org.apache.rya.indexing.pcj.fluo.app.observers.QueryResultObserver}} )
> Exports are query results and the action taken when they occur. Currently
> there are two. Despite this awesome framework, there are three
> interminglings that can become issues in a production system. Feel free to
> make sub tasks for each of these three tasks:
> 1. Create PCJ independently of alerts/triggers
> At query register time (with FQF), optionally create PCJ's and optionally
> create alerts (with Alerting) preferably atomically, so if it fails in the
> middle it does not leave dangling references and garbage -- currently there
> is one method that does everything: CreatePCJ.withRyaInteraction()
> 2. Enable exporters per query -- currently all queries will be exported on
> all globally enabled exporters. When the query is registered (with FQF)
> specify the exporters that should be used.
> 3. Separate export observer queues per exporter -- Currently retrying a
> failed export observer will re-export all export types, even if some already
> succeeded, causing duplicate triggers.
> Also there is a need to refine the terms for java identifiers (for example:
> fields, classes) and documentation. Please document here a decision about
> what we name different things. The term PCJ are the index tables used by Rya
> to optimize it's queries. But sometimes it is used to describe the whole
> Fluo framework. Please define a unique term for the following. The starred
> term will be used here, but feel free to rename them:
> - Rya query optimization PCJ (ex: the Blabla exporter) PCJ*
> - Kafka trigger alert notifier (ex: the Foofoo exporter) Alerting*
> - Fluo query observer framework (ex: results from the Barbar) FQF*
> Unique identifers:
> - FQF uses QueryID
> - Alerting uses TopicID
> - PCJ uses PcjId
> Note that currently TopicID is assigned the same as QueryID, but that badly
> presupposes queryID's cannot be grouped onto one Topic.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)