Look at org.apache.accumulo.core.constraints.Constraint for a description
and org.apache.accumulo.core.constraints.DefaultKeySizeConstraint as an
example.

In short, Mutations which are live-ingested into a tablet server are
validated against constraints you specify on the table. That means that all
Mutations written to a table go through this bit of user-provided code at
least once. You could use that fact to your advantage. However, this would
be highly experimental and might have some caveats to consider.

You can configure a constraint on a table with
connector.tableOperations().addConstraint(...)

On Sun, Dec 6, 2015 at 10:49 PM Thai Ngo <baothai...@gmail.com> wrote:

> Christopher,
>
> This is interesting! Could you please give me more details about this?
>
> Thanks,
> Thai
>
> On Thu, Dec 3, 2015 at 12:17 PM, Christopher <ctubb...@apache.org> wrote:
>
>> You could also implement a constraint to notify an external system when a
>> row is updated.
>>
>> On Wed, Dec 2, 2015, 22:54 Josh Elser <josh.el...@gmail.com> wrote:
>>
>>> oops :)
>>>
>>> [1] http://fluo.io/
>>>
>>> Josh Elser wrote:
>>> > Hi Thai,
>>> >
>>> > There is no out-of-the-box feature provided with Accumulo that does
>>> what
>>> > you're asking for. Accumulo doesn't provide any functionality to push
>>> > notifications to other systems. You could potentially maintain other
>>> > tables/columns in which you maintain the last time a row was updated,
>>> > but the onus is on your "other services" to read the table to find out
>>> > when a change occurred (which is probably not scalable at "real time").
>>> >
>>> > There are other systems you could likely leverage to solve this,
>>> > depending on the durability and scalability that your application
>>> needs.
>>> >
>>> > For a system "close" to Accumulo, you could take a look at Fluo [1]
>>> > which is an implementation of Google's "Percolator" system. This is a
>>> > system based on throughput rather than low-latency, so it may not be a
>>> > good fit for your needs. There are probably other systems in the Apache
>>> > ecosystem (Kafka, Storm, Flink or Spark Streaming maybe?) that are be
>>> > helpful to your problem. I'm not an expert on these to recommend on
>>> (nor
>>> > do I think I understand your entire architecture well enough).
>>> >
>>> > Thai Ngo wrote:
>>> >> Hi list,
>>> >>
>>> >> I have a use-case when existing rows in a table will be updated by an
>>> >> internal service. Data in a row of this table is composed of 2 parts:
>>> >> 1st part - immutable and the 2nd one - will be updated (filled in) a
>>> >> little later.
>>> >>
>>> >> Currently, I have a need of knowing when and which rows will be
>>> updated
>>> >> in the table so that other services will be wisely start consuming the
>>> >> data. It will make more sense when I need to consume the data in near
>>> >> realtime. So developing a notification function or simpler - a trigger
>>> >> is what I really want to do now.
>>> >>
>>> >> I am curious to know if someone has done similar job or there are
>>> >> features or APIs or best practices available for Accumulo so far. I'm
>>> >> thinking of letting the internal service which updates the data notify
>>> >> us whenever it updates the data.
>>> >>
>>> >> What do you think?
>>> >>
>>> >> Thanks,
>>> >> Thai
>>>
>>
>

Reply via email to