Christopher wrote:
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.
Yeah, big point here. You'd not be using a feature as it was designed.
It might work, but you'd probably be on your own if the internals change.
I'd hate to see you go this route and have it break in a future release
unexpectedly.
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
<mailto: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
<mailto: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
<mailto: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