You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@rya.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/07/14 20:16:00 UTC
[jira] [Commented] (RYA-280) PeriodicQuery Support for Fluo
[ https://issues.apache.org/jira/browse/RYA-280?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16087969#comment-16087969 ]
ASF GitHub Bot commented on RYA-280:
------------------------------------
GitHub user meiercaleb opened a pull request:
https://github.com/apache/incubator-rya/pull/177
RYA-280-Periodic Query Service
<!--
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.
-->
This pull request contains four main components. The first component
is the PeriodicQueryMetadata and observer framework for Fluo. This capability
adds a periodic bin id to BindingSets as they percolate through Fluo. The second component is a
PeriodicQueryResultStorage API, which essentially wraps existing PCJTables class and allows results to be queried based on their periodic bin id. The third capability is the external PeriodicQueryService that generates periodic notifications. When a notification is generated, it uses the time stamp of that notification to poll the PeriodicQueryResultStorage table for results whose periodic bin matches the notification's time stamp. It then exports the matching results to Kafka. The fourth and final component is a Batch Processing framework that allows Fluo to batch any process or task that could lead to an out of memory exception. This can occur when Fluo issues a scan to its underlying table in the middle of
a transaction. Using the Batch framework, a BatchInformation object is written to the BatchObserver column (the BatchInformation objects consist of a task (add, delete, update), a batch size, the column that the task will be applied to, and the query node id that it will be applied to). Additional information is included as well, such as the Span (range of data that task is applied to). When the BatchObserver processes a BatchInformation object, it performs the indicated task until it reaches the batch size, at which point it creates a new BatchInformation object with info detailing the stopping point of the last processing stage. That BatchInformation object is then fed back to the BatchObserver, and this process continues until the task can be completed before reaching the batch size.
### Tests
Integration tests were written to test that the PeriodicQueryMetadata
was being inserted correctly into Fluo, that BindingSets were being binned
correctly, and that all components of the external PeriodicQueryService were
operating as expected. Integration tests can be found in rya.periodic.service.integration.tests
and rya.pcj.fluo.integration.
### Links
[Jira](https://issues.apache.org/jira/browse/RYA-280)
### Checklist
- [ ] Code Review
- [X] Squash Commits
#### People To Reivew
Andrew Smith, Aaron Mihalik
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/meiercaleb/incubator-rya RYA-280
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/incubator-rya/pull/177.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 #177
----
commit 4bffff21c1aa3541172905a2d0415d07cae1ae3a
Author: Caleb Meier <ca...@parsons.com>
Date: 2017-04-15T02:20:25Z
RYA-280-Periodic Query Service
----
> PeriodicQuery Support for Fluo
> ------------------------------
>
> Key: RYA-280
> URL: https://issues.apache.org/jira/browse/RYA-280
> Project: Rya
> Issue Type: New Feature
> Components: clients
> Affects Versions: 3.2.10
> Reporter: Caleb Meier
> Assignee: Caleb Meier
>
> Add the capability to Rya-Fluo App to provide periodic updates for queries registered with Fluo. That is, provide the application with the ability to satisfy the standing query "tell me every 12 hours about all of the events of a particular type that occurred within the last 24 hours". Given that Fluo operates using a push based notification system, some external service needs to be implemented to periodically notify Fluo to generate a result notification (this helps handle the non-event event that occurs when nothing happens in a given period of time).
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)