CASSANDRA-20389 implemented limit on table name length of 222
characters. This commit updates the documentation to reflect this.
It also adds an assert in CreateTableValidationTest to ensure that the
documented limit matches the actual constant.
patch by Ruslan Fomkin; reviewed by Brad Schoening, Dmitry Konstantinov for CASSANDRA-20914
Updates SystemKeyspace.writePreparedStatement to accept a timestamp
associated with the Prepared creation time. Using this timestamp
will ensure that an INSERT into system.prepared_statements will
always precede the timestamp for the same Prepared in
SystemKeyspace.removePreparedStatement.
This is needed because Caffeine 2.9.2 may evict an entry as soon
as it is inserted if the maximum weight of the cache is exceeded
causing the DELETE to be executed before the INSERT.
Additionally, any clusters currently experiencing a leaky
system.prepared_statements table from this bug may struggle to
bounce into a version with this fix as
SystemKeyspace.loadPreparedPreparedStatements currently does
not paginate the query to system.prepared_statements, causing heap
OOMs. To fix this this patch adds pagination at 5000 rows and
aborts loading once the cache size is loaded. This should allow
nodes to come up and delete older prepared statements that may no
longer be used as the cache fills up (which should happen immediately).
This patch does not address the issue of Caffeine immediately evicting
a prepared statement, however it will prevent the
system.prepared_statements table from growing unbounded. For most users
this should be adequate, as the cache should only be filled when there
are erroneously many unique prepared statements. In such a case we can
expect that clients will constantly prepare statements regardless
of whether or not the cache is evicting statements.
patch by Andy Tolbert; reviewed by Berenguer Blasi and Caleb Rackliffe for CASSANDRA-19703
This commit sets up a new documentation structure and format:
* The directory struture changes from a Sphinx project to an Antora module layout.
* The formatting of the content changes from reStructuredText to AsciiDoc.
The documentation must now be built and published with Antora. Initially only from the cassandra-website repository.
This change was done to make maintaining versioned website documentation easier. As Antora is designed to generate versioned documentation.
The old directory structure was:
<ROOT>
- doc/
- cql3/
- CQL.css
- CQL.textile
- source/
- _static/
- _templates/
- _theme/
- _util/
- <other directory sections>/
- conf.py
- index.rst
- <other *.rst pages>
- make.bat
- Makefile
- README.md
- SASI.md
- <*.spec files>
- <generation scripts>
The new directory structure organises the documentation into modules:
<ROOT>
- doc/
- cql3
- modules/
- cassandra/
- assets/
- examples/
- pages/
- partials/
- nav.adoc
- ROOT/
- pages/
- nav.adoc
- scripts/
- antora.yaml
- README.md
- SASI.md
patch by Lorina Poland, Anthony Grasso; reviewed by Anthony Grasso, Mick Semb Wever for CASSANDRA-16763
Co-authored-by: Anthony Grasso <anthony@thelastpickle.com>