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 # dev >> GSOC: Monitor Improvements


+
Supun Kamburugamuva 2013-04-21, 14:37
+
Josh Elser 2013-04-21, 17:45
+
Supun Kamburugamuva 2013-04-21, 18:15
+
Josh Elser 2013-04-22, 02:00
+
Eric Newton 2013-04-22, 13:05
+
Mike Drob 2013-04-22, 15:42
+
Keith Turner 2013-04-22, 16:02
+
Supun Kamburugamuva 2013-04-22, 16:42
+
Keith Turner 2013-04-22, 17:50
+
Miguel Pereira 2013-07-24, 14:02
+
David Medinets 2013-04-22, 14:41
+
Eric Newton 2013-04-22, 14:43
+
Josh Elser 2013-04-22, 14:57
+
Supun Kamburugamuva 2013-04-22, 15:04
+
Eric Newton 2013-04-22, 15:17
+
Supun Kamburugamuva 2013-04-22, 15:27
+
Supun Kamburugamuva 2013-04-22, 14:33
Copy link to this message
-
Re: GSOC: Monitor Improvements
Presently the information is stored in memory and it certainly could be
stored in tables.

This reminds me of an idea that I've been thinking about for a long time.
 It's a little aggressive to do in a single summer.

----

RRDTool stores time series data in fixed-length files.  One important
feature is the ability to compress time-series data into less-fine-grained
results over time.

However, updating many RRD files, with periodic updates, requires making
lots of small seeks and updates to individual files.  It works well when
all the files fit in the disk cache.  It falls down hard when it doesn't.

My idea is to put updates into an Accumulo row for one collected data
point, along with some recent version in RRD format:

Key                         Value
row, cf:cq
--------------------------------------------------------
point rrd:                  [RRDTool data]
point ts:timestamp    value
point ts:timestamp    value
point ts:timestamp    value
point ts:timestamp    value
point ts:timestamp    value

When the tablet compacts, you use a Combiner to push the updates into the
RRD data:

Key                         Value
row, cf:cv
-------------------------------------------------------
point rrd:                  [Updated RRDTool data]
point ts:timestamp    value

Further, when you scan the data, you could use an RRD iterator to perform
queries on the RRD format, which would extract out only the
summary/graph/data you want.

This leverages the Accumulo write-ahead log, and efficiency of
log-structured merge trees to defer RRD updates to a point where they can
be done efficiently (with respect to disk seeks), and even the block cache
to access recently read information quickly.  And, the data won't grow
indefinitely due to the properties of the RRD storage format.

Sadly, RRDTool does not have a Java API.  But there appear to be java-based
substitutes; I have no idea if they are license compatible.

OpenTSDB does something similar: they compress updates into blocks of
updates in hourly chunks, converting many small records into one larger
one.  Their scheme does not lose data, which was important to them.
-Eric

On Mon, Apr 22, 2013 at 10:33 AM, Supun Kamburugamuva <[EMAIL PROTECTED]>wrote:

> I can see how summaries are very helpful to a user. We can introduce new
> fields to the existing table/tablet summery tables that displays problem
> information etc.
>
> To make the JMX polling time configurable we can introduce configuration
> parameters.
>
> For the JMX statistics we can keep data at the server for a constant time
> to avoid memory growth. I think the stats are stored in memory (please
> correct me if I'm wrong). If that is the case, is it possible to store them
> in accumulo tables?
>
> Thanks,
> Supun...
>
> On Mon, Apr 22, 2013 at 9:05 AM, Eric Newton <[EMAIL PROTECTED]>
> wrote:
>
> > Another thing to consider is scale.  On large clusters (many hundreds of
> > nodes), more data is not helpful for visualization.  Instead, summaries,
> > averages and outliers are important.
> >
> > For example, if one node is consistently slow, it is better to know that
> > than to see one graph with low numbers in a sea of graphs.
>
>
> > If the monitor collects information using JMX, collection time for each
> > node would be a good thing to know, too.
> >
>
>
>
>
> >
> > -Eric
> >
> >
> > On Sun, Apr 21, 2013 at 10:00 PM, Josh Elser <[EMAIL PROTECTED]>
> wrote:
> >
> > > Supun,
> > >
> > > Yup, very much so. Having a way to consume any and all metrics via JMX
> > > would simplify things for any consumers (internal or external).
> > >
> > >
> > >
> > > On 04/21/2013 02:15 PM, Supun Kamburugamuva wrote:
> > >
> > >> Hi Josh,
> > >>
> > >> Thanks for the suggestions. I'll incorporate these to the proposal.
> > >>
> > >> Another area I would like to work is on JMX. There is a Jira that says
> > to
> > >> replace the Monitor calls from Thrift to JMX (Accumulo 694). Do you
> > think
> > >> this is a good addition to the Monitor?
+
Gabe Bell 2013-04-22, 15:09
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