Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Firstly, we propose the removal of the Wish and Test ticket types.

Issue Type

Reason

Wish

is a feature/improvement, and can be better communicated via priority/complexity details we will introduce below

Test

is logically a component, and a non-specific one at that

Remove Fields

Field

Reason

Migration

Labels

See detailed discussion below

Reviewer

Replaced by Reviewers

Populate empty

Reviwers

Reviewers fields with contents of Reviewer

Environment

Use is very patchy, noisy, and seemingly of little value over a comment if the extra content is useful

Propose new multi-select 'Platform' field with curated option list, in detail below

Reproduced In

Use is very patchy; seems to offer little practical value above 'Since Version'

 

Docs Text

Unused

 

Due Date

Unused

 

Epic Link

Unused

 

External Issue ID

Unused

 

External Issue URL

Unused

 

Flags

Unused

 

Sprint

Unused

 

Time Tracking

Unused

 

Remove Labels

This field clearly provides some utility today, however this seems almost exclusively to be a hack around the inadequacies
of our current JIRA data model. It is a poor tool for this job, and extremely noisy - there are ~500 labels, of which 300
are used exactly once and only ~100 are used > 5 times. Many of these labels are duplicates of each other, with different
punctuation, spelling or verbiage.

...

Presently, Priority encodes some ill-defined combination of the first three of these independent properties, making it
hard to draw strong conclusions about any of them. We propose introducing two new fields, and clarifying the Priority
terminology to only suggest urgency, as well as reducing the number of priorities, since we don't effectively use them.

Priority

New Priority

Logically Replaces

Migrate From

Details

Wish

Wish Issue Type

Wish Issue Type

 

Low

Low-Minor

Low-Minor

 

Normal

Minor-Major

Major

It wasn't clear what Minor or Major meant, but priority is a relative concept - a 'normal' is our logical baseline, and the default for a new issue

High

Rest of Major

 

For tickets that community members plan to prioritise over other outstanding work, but has no immediate urgency

Urgent

Critical-Blocker

Critical-Blocker

There's limited logical distinction between Critical and Blocker; it seems to make more sense to have a single 'do ASAP' tag

Complexity

This field will be required, discussed further in the Workflow section below.

Complexity

Description

Initial Value

Low Hanging Fruit

Trivial, No Dependencies, Localised, Accessible to New Contributors

Old Priority = Trivial or label=lhf

Normal

Unremarkable; default

 

Challenging

Localised, but requiring sophisticated analysis to understand

 

Byzantine

Affecting many components, requiring sophisticated analysis to understand

 

Impossible

Suspect this is not even possible (may be paired with Wish)

 

Severity

This field will be required, discussed further in the Workflow section below. It will be available only for the Bug issue type.

Severity

Old Priorities

Description

Low

Trivial-Low

Limited usability or low visibility impact with no impact on correctness; no urgency to resolve

Normal

Minor-Major

Typical priority; this

This issue is either unremarkable or extraordinarily rare

Critical

Critical-Urgent

This bug may have significant impact on correctness, availability, stability or some other critical production behaviour

Discovered By

This field will be required for the Bug issue type. It will be used for analysis of our efforts to establish project quality.

...

Required. Only provided as an option for the Bug issue type. Uses a Cascading Select List.

Category

Subcategory

Description

Correctness

Persistent Corruption / Loss

Corruption that persists, and may propagate across the cluster

 

Response Corruption / Loss

Corruption that does not propagate or persist, only results in a client receiving erroneous responses

 

Semantic Failure

The logical behaviour is either not to spec, or the spec is faulty/ambiguous

 

Consistency Failure

Apparently successful action, but with lower consistency than required

 

Test Failure

A test is broken - if this turns out to be a legitimate bug, it should transition to this category when it is diagnosed

Availability

Response Crash

An operation does not succeed/respond because of a crash while servicing it, without affecting process stability

 

Process Crash

An isolated exceptional state occurs that brings down the affected node

 

Cluster Crash

An correlated exceptional state occurs across the cluster, bringing down a multiplicity of nodes

 

Unavailable

Apparently unavailable, when should be available

Degradation

Resource Management

Either a resource leak or overcommit

 

Slow Use Case

A specific use case with suboptimal characteristics that have not yet been accommodated

 

Performance Bug/Regression

Unintended performance behaviour, including e.g. exceptions stalling compactions

 

Other Exception

An exception is being thrown, that is not coinciding with another category of degradation

Security

Information Leakage

 

 

Privilege Escalation

 

 

Denial of Service

 

Category

Required. Only provided as an option for the Feature and Improvement issue types.

Category

Description

Performance

Change Semantics

Introduce new, or clarify/modify existing database semantic behaviours

Improve Operability

Reduce the burden of operating a cluster (i.e. handle uncommon states better, with less operator involvement)

Quality Assurance

Work to improve the guarantees we can make about the stability and correctness of Cassandra

Component

Presently, the meaning of each component is unclear, even to long-serving project members. As such, it is very inconsistently
used and probably of limited value for analysis. We propose a more granular definition of components that more closely
matches the every day project vernacular.

...

Cascading Select List Variant

Category

Subcategory

Consistency

Coordination

 

Hints

 

Repair

 

Streaming

 

Bootstrap and Decommission

 

Batch Log

Cluster Metadata

Ring Membership

 

Gossip

 

Schema

Local Read/Write

Commit Log

 

Memtable

 

SSTable

 

Caching

Compaction

General

 

DTCS

 

TWCS

 

LCS

 

STCS

Config, Startup and Shutdown

Config

 

Startup

 

Shutdown

 

Launch Scripts

Messaging

Internode

 

native v4

 

native v5

 

Thrift

CQL

Syntax

 

Interpreter

 

UDF

 

UDA

 

UDT

Observability

JMX

 

Metrics

 

Tracing

 

Logging

Tools

fql

 

cqlsh

 

nodetool

 

sstable tools (upgrade, verify, etc)

 

bulk load

 

stress

Testing

dtest

 

unit test

 

fuzz test

 

benchmark

Documentation

Javadoc

 

Website

 

Blog Post

Dependencies, Packaging and Build

Dependencies

 

Packaging

 

Build


Multi-select List Variant

...