locationtech / locationtech/geomesa

Implement cached data statistics for Cassandra

Open
#9,186 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Scala
Stars
1.5k
Forks
446
Avg merge
1d 8h
Merged PRs (30d)
31

Description

Implement cached data statistics for Cassandra

Implement a stat class for C*: https://github.com/locationtech/geomesa/blob/geomesa_2.11-1.3.1/geomesa-cassandra/geomesa-cassandra-datastore/src/main/scala/org/locationtech/geomesa/cassandra/data/CassandraDataStore.scala#L31

In general, stats need to be synchronized from various writer/reader threads. In Accumulo, we accomplish this without locking by using a Combiner on the table - this way various threads can write their local stats, and they will be merged on read (and eventually merged on disk during compaction). I don't know if anything equivalent exists for C*.


Original JIRA Issue: https://geomesa.atlassian.net/browse/GEOMESA-1887

Key: GEOMESA-1887
Type: Improvement
Priority: Major
Status: To Do
Resolution: Unresolved
Reporter: Emilio Lahr-Vivaz
Created: Tue, 20 Jun 2017 09:28:40 -0400
Updated: Tue, 20 Jun 2017 09:28:40 -0400

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with CassandraDataStore.scala at the linked statistics definition, then compare the existing Accumulo statistics implementation and its synchronization approach. Determine how Cassandra can maintain cached statistics across concurrent readers and writers; done means Cassandra has the requested stat class with consistent updates and reads.

Written by the indexing model from the issue text.

Assessment

Tech stack
cassandra, scala
Domain
databases, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.