locationtech / locationtech/geomesa
Implement cached data statistics for Cassandra
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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