Thanks for starting this discussion, Benjamin!

I share others’ enthusiasm on this thread for improvements to secondary 
indexes, trie-based partition indexes, guardrails, and encryption at rest.

Here are some other post-4.0 areas for investment that have been on my mind:

�C Transactional Cluster Metadata
Migrating from optimistic modification and propagation of cluster metadata via 
gossip to a transactional implementation opens a lot of possibilities. Token 
movements and instance replacements get safer and faster. Schema changes can be 
made atomic, enabling users to execute DDL rapidly without waiting for 
convergence. Operations like expansions and shrinks become easier to automate 
with less care and feeding.

�C Paxos improvements
During discussion on C-12126, Benedict expressed interest in post-4.0 
improvements that can be made to Cassandra’s Paxos / LWT implementation that 
would enable the database to serve serial writes with two round-trips and 
serial reads with one round-trip in the uncontended case. For many cross-WAN 
serial use cases, this may halve the latency of CAS queries.

�C Multi-Partition LWTs
LWT is a great primitive, but modeling applications with the constraint of 
single-key CAS can be a game of Twister. Extending the paxos improvements 
discussed above to enable multi-partition CAS would enable users of Apache 
Cassandra to perform serial operations across partition boundaries.

�C Downgrade-ability
I also see “downgradeability” as important to future new release adoption. 
Taking file format changes as an example, it’s currently not possible to 
downgrade in the event that a serious issue has been identified �C unless 
you’re able to host-replace yourself out after upgrading one replica, or revert 
to a pre-upgrade snapshot and accept data loss. It would be excellent if it 
were possible for v.next to continue writing the previous 
SSTable/commitlog/hint/etc. format until a switch is flipped to opt into new 
file formats. Apache HDFS takes a similar approach, enabling downgrade until 
NameNode metadata is finalized [1]. This would be an excellent capability to 
have in Apache Cassandra, and dramatically lower the stakes for new release 
adoption.

On pluggability / disaggregation:
I agree that these are important themes. We’ll want to bring a lot of care and 
attention to this work. Disaggregation can open a lot of possibilities - with 
the drawback of future changes being restricted to the defined interface and an 
inability to optimize across interface boundaries. We can probably hit a sweet 
spot, though.

Toolchains to validate implementations of pluggable components will become very 
important. It would be bad for the project’s users if bundled implementations 
were of uneven quality or supported subsets of functionality. Converging on a 
common validation toolchain for pluggable subsystems can help us ensure that 
quality while minimizing the effort required to test new implementations.

Finally, I think it's important we work to maintain trunk in a shippable state. 
This might look like major changes and new features hiding behind feature flags 
that enable users to selectively enable them as development and validation 
proceeds, with new code executed regardless of the flag held to a higher 
standard.

Cheers,

�C Scott

[1] 
https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsRollingUpgrade.html


________________________________________
From: guo Maxwell <cclive1...@gmail.com>
Sent: Wednesday, April 14, 2021 10:25 PM
To: dev@cassandra.apache.org
Subject: Re: [DISCUSSION] Next release roadmap

+1

Brandon Williams <dri...@gmail.com> 于2021年4月15日周四 上午4:48写道:

> Agreed.  Everyone just please keep in mind this thread is for roadmap
> contributions you plan to make, not contributions you would like to
> see.
>
> On Wed, Apr 14, 2021 at 3:45 PM Nate McCall <zznat...@gmail.com> wrote:
> >
> > Agree with Stefan 100% on this. We need to move towards pluggability. Our
> > users are asking for it, it makes sense architecturally, and people are
> > doing it anyway.
> >
> >
> > ...
> > > for me definitely https://issues.apache.org/jira/browse/CASSANDRA-9633
> > >
> > > I am surprised nobody mentioned this in the previous answers, there is
> > > ~50 people waiting for it to happen and multiple people working on it
> > > seriously and wanting that feature to be there for so so long.
> > > ...
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
> For additional commands, e-mail: dev-h...@cassandra.apache.org
>
>

--
you are the apple of my eye !

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org
For additional commands, e-mail: dev-h...@cassandra.apache.org

Reply via email to