Cassandra fork inventory (legacy 3.11 line to Apache 4.0.x)
This page records the Elassandra-specific delta on top of Apache Cassandra for the
server/cassandra submodule (https://github.com/incloudsio/cassandra, branch
cassandra-3.11.9-elassandra; historical legacy baseline).
Baseline
The Elassandra release in this repository pins submodule commit 30a4c30bf0 on branch
cassandra-3.11.9-elassandra. Its merge-base with Apache ``cassandra-3.11.9`` is
5ef75dd96cb693e4041e9ecb61a6852276f0eca4 (Apache tag cassandra-3.11.9).
Commit count on the historical fork after that merge-base: 36 commits (full git log below).
Classification of legacy-fork commits
Core Elassandra / indexing (must port to 4.0.x)
add7b78a37CASSANDRA-13270 Add function hooks for Elassandra0f30e639b5CASSANDRA-13271 Reduce lock contention on instance factories7a922aa609CASSANDRA-13269 Snapshot support for custom secondary indices431d014c06Add asynchronous index build method7d18811fdcImprove index rebuild with delayed initial rebuild29bd3be468backport SecondaryIndexManagerTest form v46285581fdaAdd support for CQL schema update transaction80980c08a2Change create/alter type/table/index statement for validation on a keyspace metadata2e59831631Add support for extensions in schema5854d30276CQL3Type prepare from a KeyspaceMetadataabb5120714Add inhibited MigrationListeners to avoid loops383ab736bfAdd function hook for elassandra decimal support9c0a172ceeLegacy fork umbrella commit (review diff)
Operational / deployment
067af8625aAdd schema pull on startup when not joining the cluster1102c3ab4cAdd sysprop to stop after commitlog replay59ff8adc92Add JMXMP supportd3c1458f7cAdd sysprop cassandra.max_name_length for KS/CF name lengthb6660d3191dislay timeout on nodetool describecluster1c7a462ef2CASSANDRA-12837 Add multi-threaded support to nodetool rebuild_index
Networking / protocol / resilience
d9c9290bc4Implement a GZip Compression for the ValueVersioned field8c9f060e4eCache SSLContext to avoid CPU & IO Consumption
Build / tooling
6bf6230333Add a property to select the java compilerf510c13bd6Add ant target for assembling stress jar without running tests49b2209307remove logback config scan testbb628947cbUpdate README794f4fec6afixup dependencies751e46987dUpgrade hppc library to version 0.7.1
Upstream backports bundled in the legacy fork
8ff5b7b29aCASSANDRA-14582 Add system property to set the cassandra hostId if not yet initializedce689d8a13CASSANDRA-14581 Allow to subclass QueryProcessor and get the projection clause098355fb06CASSANDRA-13834 Fix JMX InstanceAlreadyExistsException7fef0e9131CASSANDRA-13502 Don’t overwrite the DefaultUncaughtExceptionHandler when testingb4c740ef61CASSANDRA-13501 Upgrade some dependenciesddba8eca98CASSANDRA-13500 Fix String default Locale with a javassist transformer
CQL / tooling UX
e10a3f26f3fix cqlsh help url2c1325f50afixup cqlsh six.viewkeys issue when having table extensions
Pluggable functions (may overlap Elassandra hooks)
e9b6ea0219CASSANDRA-13267 Add support for pluggable CQL generic functions
Full ordered list (newest first)
067af8625a Add schema pull on startup when not joining the cluster
d9c9290bc4 Implement a GZip Compression for the ValueVersioned field
8c9f060e4e Cache SSLContext to avoid CPU & IO Consumption
d3c1458f7c Add sysprop cassandra.max_name_length for KS/CF name length
1102c3ab4c Add sysprop to stop after commitlog replay
59ff8adc92 Add JMXMP support
383ab736bf Add function hook for elassandra decimal support
49b2209307 remove logback config scan test
bb628947cb Update README
431d014c06 Add asynchronous index build method
6bf6230333 Add a property to select the java compiler
f510c13bd6 Add ant target for assembling stress jar without running tests
abb5120714 Add inhibited MigrationListeners to avoid loops
2e59831631 Add support for extensions in schema
5854d30276 CQL3Type prepare from a KeyspaceMetadata
e10a3f26f3 fix cqlsh help url
2c1325f50a fixup cqlsh six.viewkeys issue when having table extensions
29bd3be468 backport SecondaryIndexManagerTest form v4
7d18811fdc Improve index rebuild with delayed initial rebuild
6285581fda Add support for CQL schema update transaction
80980c08a2 Change create/alter type/table/index statement for validation on a keyspace metadata
b6660d3191 dislay timeout on nodetool describecluster
794f4fec6a fixup dependencies
9c0a172cee Legacy fork umbrella commit
751e46987d Upgrade hppc library to version 0.7.1
8ff5b7b29a CASSANDRA-14582 Add system property to set the cassandra hostId if not yet initialized
ce689d8a13 CASSANDRA-14581 Allow to subclass QueryProcessor and get the projection clause
098355fb06 CASSANDRA-13834 Fix JMX InstanceAlreadyExistsException
7fef0e9131 CASSANDRA-13502 Don't overwrite the DefaultUncaughtExceptionHandler when testing
b4c740ef61 CASSANDRA-13501 Upgrade some dependencies
ddba8eca98 CASSANDRA-13500 Fix String default Locale with a javassist transformer
7a922aa609 CASSANDRA-13269 Snapshot support for custom secondary indices
0f30e639b5 CASSANDRA-13271 Reduce lock contention on instance factories
add7b78a37 CASSANDRA-13270 Add function hooks for Elassandra
e9b6ea0219 CASSANDRA-13267 Add support for pluggable CQL generic functions
1c7a462ef2 CASSANDRA-12837 Add multi-threaded support to nodetool rebuild_index
Branch design for Cassandra 4.0.x
Create
cassandra-4.0.x-elassandrafrom Apachecassandra-4.0.20(or current latest 4.0.x tag).Cherry-pick or replay the Core Elassandra / indexing commits first; resolve conflicts against Cassandra 4.0’s secondary-index and storage APIs (expect rewrites, not clean picks).
Replay operational and CQL extension commits.
Ignore or replace legacy-fork-only build hacks with Gradle/Ant layout from Apache 4.0.
Note: An older 4.0 beta branch also exists in historical materials; it does not share a
recent merge-base with Apache cassandra-4.0.20 in a way that allows a trivial fast-forward.
Treat that branch as historical reference only unless you explicitly recover patches from it.
Verification
After porting:
ElassandraDaemonand custom secondary index compile and load.Schema extensions and metadata transactions behave as on 3.11.
nodetool rebuild_indexand snapshot paths used by Elassandra still work.
See Cassandra 4.0.x porting playbook for automated patch export and a 4.0 clone/bootstrap flow.