Home | About | Sematext search-lucene.com search-hadoop.com
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB
 Search Hadoop and all its subprojects:

Switch to Plain View
Accumulo >> mail # user >> Concurrent updates


+
Sami Omer 2012-10-16, 20:51
Copy link to this message
-
Re: Concurrent updates
Accumulo does not have locks, nor does it have transactions.  It does
support atomic, isolated updates within a row.

Accumulo also supports a very specific kind of update which is very
helpful in the case of sums and aggregates.

For example, if I wanted to provide a "count" I can insert:

row X, column A, value 1:  (X, A, 1)

to indicate some event occurred.  Eventually, in the database, there
will be lots of these values at a row/column:

(X, A, 1)
(X, A, 1)
(X, A, 1)

You can insert code to reduce these values when you scan, kind of like
a Combiner in a map/reduce job.  This code will emit:

(X, A, 3)

The same code can also be incorporated into the compaction scheme, so
eventually, the database will actually store:

(X, A, 3)

This mechanism can be used to "sum" more complex information.  The
point is that you can take advantage of the log-structured merge tree
to defer the computation to some point in the future when you have a
very high degree of isolation.  Yet you can still perform the
computation as-needed right after you add insert information.

Of course, it does not provide a substitute for locks or transactions
and may not cover your use case.  But it covers a surprising number of
them.

-Eric

On Tue, Oct 16, 2012 at 4:51 PM, Sami Omer <[EMAIL PROTECTED]> wrote:
> Hello everyone,
>
>
>
> I’m using Accumulo 1.3.6 as the backend for a project that I’ve been working
> on, I’m relatively new to it.
>
>
>
> I have written a client that appends some of the data stored in my Accumulo
> backend. Now, if I have multiple clients running and  they perform the
> read/update operation simultaneously I might run into concurrency problems.
> So, I was wondering what could be done to prevent such race conditions. Does
> Accumulo have an equivalent to RDBMS’s transactions? Or is there a way to
> lock rows that are currently being processed for read/update? Do you have
> any other ways to solve the issue of concurrent updates?
>
>
>
> Your help is greatly appreciated.
>
>
>
> Sami
+
David Medinets 2012-10-17, 01:03
+
Mike Drob 2012-10-17, 01:15
+
Christopher Tubbs 2012-10-17, 06:32
+
ameet kini 2012-10-17, 12:40
+
Sami Omer 2012-10-17, 15:56
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB