From 5fc4cc82c6d4dbe2510f72e3161b430c64071293 Mon Sep 17 00:00:00 2001 From: Lorina Poland Date: Mon, 28 Jun 2021 10:19:46 -0700 Subject: [PATCH 1/3] CASSANDRA-16763: Migrate documentation to AsciiDoc 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. This change was done to make maintaining versioning documentation easier. As Antora is designed to generate versioned documentation. The old directory structure was: - doc/ - cql3/ - CQL.css - CQL.textile - source/ - _static/ - _templates/ - _theme/ - _util/ - / - conf.py - index.rst - - make.bat - Makefile - README.md - SASI.md - <*.spec files> - The new directory structure organises the documentation into modules: - 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; reviewed by Michael Semb Wever and Anthony Grasso for CASSANDRA-16763 --- doc/Makefile | 243 +- doc/README.md | 40 +- doc/SASI.md | 798 ---- doc/cql3/CQL.css | 103 - doc/cql3/CQL.textile | 2574 ----------- doc/lib/tabs-block.js | 80 + doc/make.bat | 299 -- .../convert_yaml_to_adoc.py} | 23 +- doc/scripts/gen-nodetool-docs.py | 83 + doc/site.yml | 78 + doc/source/_static/extra.css | 77 - doc/source/_templates/indexcontent.html | 89 - .../_theme/cassandra_theme/defindex.html | 40 - doc/source/_theme/cassandra_theme/layout.html | 108 - doc/source/_theme/cassandra_theme/search.html | 67 - doc/source/_theme/cassandra_theme/theme.conf | 3 - doc/source/_util/cql.py | 283 -- doc/source/antora.yml | 7 + doc/source/architecture/dynamo.rst | 139 - doc/source/architecture/guarantees.rst | 20 - doc/source/architecture/index.rst | 29 - doc/source/architecture/overview.rst | 20 - doc/source/architecture/storage_engine.rst | 129 - doc/source/bugs.rst | 30 - doc/source/conf.py | 441 -- doc/source/configuration/index.rst | 25 - doc/source/contactus.rst | 53 - doc/source/cql/appendices.rst | 333 -- doc/source/cql/changes.rst | 204 - doc/source/cql/ddl.rst | 649 --- doc/source/cql/definitions.rst | 232 - doc/source/cql/dml.rst | 522 --- doc/source/cql/functions.rst | 558 --- doc/source/cql/index.rst | 47 - doc/source/cql/indexes.rst | 83 - doc/source/cql/json.rst | 115 - doc/source/cql/mvs.rst | 166 - doc/source/cql/security.rst | 502 --- doc/source/cql/triggers.rst | 63 - doc/source/cql/types.rst | 559 --- doc/source/data_modeling/index.rst | 20 - doc/source/development/code_style.rst | 94 - doc/source/development/how_to_commit.rst | 151 - doc/source/development/how_to_review.rst | 71 - doc/source/development/ide.rst | 161 - doc/source/development/index.rst | 29 - doc/source/development/license_compliance.rst | 37 - doc/source/development/patches.rst | 125 - doc/source/development/testing.rst | 170 - doc/source/faq/index.rst | 298 -- doc/source/getting_started/configuring.rst | 67 - doc/source/getting_started/drivers.rst | 107 - doc/source/getting_started/index.rst | 33 - doc/source/getting_started/installing.rst | 106 - doc/source/getting_started/querying.rst | 52 - doc/source/index.rst | 41 - doc/source/modules/ROOT/nav.adoc | 4 + doc/source/modules/ROOT/pages/index.adoc | 50 + .../assets/images/Figure_1_backups.jpg | Bin 0 -> 38551 bytes .../assets/images/Figure_1_data_model.jpg | Bin 0 -> 17469 bytes .../assets/images/Figure_1_guarantees.jpg | Bin 0 -> 17993 bytes .../assets/images/Figure_1_read_repair.jpg | Bin 0 -> 36919 bytes .../assets/images/Figure_2_data_model.jpg | Bin 0 -> 20925 bytes .../assets/images/Figure_2_read_repair.jpg | Bin 0 -> 45595 bytes .../assets/images/Figure_3_read_repair.jpg | Bin 0 -> 43021 bytes .../assets/images/Figure_4_read_repair.jpg | Bin 0 -> 43021 bytes .../assets/images/Figure_5_read_repair.jpg | Bin 0 -> 42560 bytes .../assets/images/Figure_6_read_repair.jpg | Bin 0 -> 57489 bytes .../images/data_modeling_chebotko_logical.png | Bin 0 -> 87366 bytes .../data_modeling_chebotko_physical.png | Bin 0 -> 4553809 bytes .../images/data_modeling_hotel_bucketing.png | Bin 0 -> 22009 bytes .../assets/images/data_modeling_hotel_erd.png | Bin 0 -> 233309 bytes .../images/data_modeling_hotel_logical.png | Bin 0 -> 116998 bytes .../images/data_modeling_hotel_physical.png | Bin 0 -> 119795 bytes .../images/data_modeling_hotel_queries.png | Bin 0 -> 103940 bytes .../images/data_modeling_hotel_relational.png | Bin 0 -> 102656 bytes .../data_modeling_reservation_logical.png | Bin 0 -> 121750 bytes .../data_modeling_reservation_physical.png | Bin 0 -> 142416 bytes .../cassandra/assets/images/docs_commit.png | Bin 0 -> 104667 bytes .../assets/images/docs_create_branch.png | Bin 0 -> 181860 bytes .../assets/images/docs_create_file.png | Bin 0 -> 209110 bytes .../cassandra/assets/images/docs_editor.png | Bin 0 -> 106175 bytes .../cassandra/assets/images/docs_fork.png | Bin 0 -> 76159 bytes .../cassandra/assets/images/docs_pr.png | Bin 0 -> 156081 bytes .../cassandra/assets/images/docs_preview.png | Bin 0 -> 123826 bytes .../assets}/images/eclipse_debug0.png | Bin .../assets}/images/eclipse_debug1.png | Bin .../assets}/images/eclipse_debug2.png | Bin .../assets}/images/eclipse_debug3.png | Bin .../assets}/images/eclipse_debug4.png | Bin .../assets}/images/eclipse_debug5.png | Bin .../assets}/images/eclipse_debug6.png | Bin .../assets/images/example-stress-graph.png | Bin 0 -> 359103 bytes .../modules/cassandra/assets/images/hints.svg | 9 + .../modules/cassandra/assets/images/ring.svg | 11 + .../cassandra/assets/images/vnodes.svg | 11 + .../cassandra/examples/BASH/add_repo_keys.sh | 1 + .../cassandra/examples/BASH/apt-get_cass.sh | 1 + .../cassandra/examples/BASH/apt-get_update.sh | 1 + .../cassandra/examples/BASH/check_backups.sh | 1 + .../examples/BASH/cqlsh_localhost.sh | 1 + .../cassandra/examples/BASH/curl_install.sh | 1 + .../examples/BASH/curl_verify_sha.sh | 1 + .../cassandra/examples/BASH/docker_cqlsh.sh | 1 + .../cassandra/examples/BASH/docker_pull.sh | 1 + .../cassandra/examples/BASH/docker_run.sh | 1 + .../cassandra/examples/BASH/find_backups.sh | 1 + .../cassandra/examples/BASH/find_snapshots.sh | 1 + .../cassandra/examples/BASH/find_sstables.sh | 1 + .../examples/BASH/find_two_snapshots.sh | 1 + .../examples/BASH/flush_and_check.sh | 2 + .../examples/BASH/get_deb_package.sh | 2 + .../cassandra/examples/BASH/java_verify.sh | 1 + .../examples/BASH/nodetool_clearsnapshot.sh | 1 + .../BASH/nodetool_clearsnapshot_all.sh | 1 + .../cassandra/examples/BASH/nodetool_flush.sh | 3 + .../examples/BASH/nodetool_flush_table.sh | 1 + .../examples/BASH/nodetool_list_snapshots.sh | 1 + .../examples/BASH/nodetool_snapshot.sh | 1 + .../examples/BASH/nodetool_status.sh | 1 + .../examples/BASH/nodetool_status_nobin.sh | 1 + .../cassandra/examples/BASH/run_cqlsh.sh | 1 + .../examples/BASH/run_cqlsh_nobin.sh | 1 + .../examples/BASH/snapshot_backup2.sh | 1 + .../examples/BASH/snapshot_both_backups.sh | 1 + .../cassandra/examples/BASH/snapshot_files.sh | 1 + .../examples/BASH/snapshot_mult_ks.sh | 1 + .../examples/BASH/snapshot_mult_tables.sh | 1 + .../BASH/snapshot_mult_tables_again.sh | 1 + .../examples/BASH/snapshot_one_table.sh | 1 + .../examples/BASH/snapshot_one_table2.sh | 1 + .../cassandra/examples/BASH/start_tarball.sh | 1 + .../cassandra/examples/BASH/tail_syslog.sh | 1 + .../examples/BASH/tail_syslog_package.sh | 1 + .../cassandra/examples/BASH/tarball.sh | 1 + .../cassandra/examples/BASH/verify_gpg.sh | 1 + .../cassandra/examples/BASH/yum_cass.sh | 1 + .../cassandra/examples/BASH/yum_start.sh | 1 + .../cassandra/examples/BASH/yum_update.sh | 1 + .../cassandra/examples/BNF/alter_ks.bnf | 2 + .../examples/BNF/alter_mv_statement.bnf | 1 + .../examples/BNF/alter_role_statement.bnf | 1 + .../cassandra/examples/BNF/alter_table.bnf | 4 + .../examples/BNF/alter_udt_statement.bnf | 3 + .../examples/BNF/alter_user_statement.bnf | 1 + .../examples/BNF/batch_statement.bnf | 5 + .../examples/BNF/collection_literal.bnf | 4 + .../examples/BNF/collection_type.bnf | 3 + .../modules/cassandra/examples/BNF/column.bnf | 1 + .../cassandra/examples/BNF/constant.bnf | 8 + .../cassandra/examples/BNF/cql_statement.bnf | 48 + .../cassandra/examples/BNF/cql_type.bnf | 1 + .../BNF/create_aggregate_statement.bnf | 6 + .../BNF/create_function_statement.bnf | 6 + .../examples/BNF/create_index_statement.bnf | 5 + .../cassandra/examples/BNF/create_ks.bnf | 2 + .../examples/BNF/create_mv_statement.bnf | 4 + .../examples/BNF/create_role_statement.bnf | 9 + .../cassandra/examples/BNF/create_table.bnf | 12 + .../examples/BNF/create_trigger_statement.bnf | 3 + .../cassandra/examples/BNF/create_type.bnf | 3 + .../examples/BNF/create_user_statement.bnf | 4 + .../cassandra/examples/BNF/custom_type.bnf | 1 + .../examples/BNF/delete_statement.bnf | 5 + .../examples/BNF/drop_aggregate_statement.bnf | 2 + .../examples/BNF/drop_function_statement.bnf | 2 + .../examples/BNF/drop_index_statement.bnf | 1 + .../cassandra/examples/BNF/drop_ks.bnf | 1 + .../examples/BNF/drop_mv_statement.bnf | 1 + .../examples/BNF/drop_role_statement.bnf | 1 + .../cassandra/examples/BNF/drop_table.bnf | 1 + .../examples/BNF/drop_trigger_statement.bnf | 1 + .../examples/BNF/drop_udt_statement.bnf | 1 + .../examples/BNF/drop_user_statement.bnf | 1 + .../cassandra/examples/BNF/function.bnf | 1 + .../BNF/grant_permission_statement.bnf | 12 + .../examples/BNF/grant_role_statement.bnf | 1 + .../cassandra/examples/BNF/identifier.bnf | 3 + .../cassandra/examples/BNF/index_name.bnf | 1 + .../examples/BNF/insert_statement.bnf | 6 + .../cassandra/examples/BNF/ks_table.bnf | 5 + .../BNF/list_permissions_statement.bnf | 1 + .../examples/BNF/list_roles_statement.bnf | 1 + .../examples/BNF/list_users_statement.bnf | 1 + .../cassandra/examples/BNF/native_type.bnf | 4 + .../cassandra/examples/BNF/options.bnf | 4 + .../BNF/revoke_permission_statement.bnf | 1 + .../examples/BNF/revoke_role_statement.bnf | 1 + .../cassandra/examples/BNF/role_name.bnf | 1 + .../examples/BNF/select_statement.bnf | 21 + .../modules/cassandra/examples/BNF/term.bnf | 6 + .../cassandra/examples/BNF/trigger_name.bnf | 1 + .../cassandra/examples/BNF/truncate_table.bnf | 1 + .../modules/cassandra/examples/BNF/tuple.bnf | 2 + .../modules/cassandra/examples/BNF/udt.bnf | 2 + .../cassandra/examples/BNF/udt_literal.bnf | 1 + .../examples/BNF/update_statement.bnf | 13 + .../modules/cassandra/examples/BNF/use_ks.bnf | 1 + .../cassandra/examples/BNF/view_name.bnf | 1 + .../examples/CQL/allow_filtering.cql | 9 + .../cassandra/examples/CQL/alter_ks.cql | 2 + .../cassandra/examples/CQL/alter_role.cql | 1 + .../examples/CQL/alter_table_add_column.cql | 1 + .../examples/CQL/alter_table_spec_retry.cql | 1 + .../CQL/alter_table_spec_retry_percent.cql | 1 + .../examples/CQL/alter_table_with_comment.cql | 2 + .../cassandra/examples/CQL/alter_user.cql | 2 + .../modules/cassandra/examples/CQL/as.cql | 13 + .../examples/CQL/autoexpand_exclude_dc.cql | 4 + .../cassandra/examples/CQL/autoexpand_ks.cql | 4 + .../examples/CQL/autoexpand_ks_override.cql | 4 + .../modules/cassandra/examples/CQL/avg.cql | 1 + .../examples/CQL/batch_statement.cql | 6 + .../cassandra/examples/CQL/caching_option.cql | 6 + .../cassandra/examples/CQL/chunk_length.cql | 6 + .../modules/cassandra/examples/CQL/count.cql | 2 + .../cassandra/examples/CQL/count_nonnull.cql | 1 + .../examples/CQL/create_function.cql | 15 + .../cassandra/examples/CQL/create_index.cql | 8 + .../cassandra/examples/CQL/create_ks.cql | 6 + .../examples/CQL/create_ks2_backup.cql | 2 + .../examples/CQL/create_ks_backup.cql | 2 + .../examples/CQL/create_ks_trans_repl.cql | 2 + .../examples/CQL/create_mv_statement.cql | 5 + .../cassandra/examples/CQL/create_role.cql | 6 + .../examples/CQL/create_role_ifnotexists.cql | 2 + .../examples/CQL/create_static_column.cql | 7 + .../cassandra/examples/CQL/create_table.cql | 23 + .../examples/CQL/create_table2_backup.cql | 14 + .../examples/CQL/create_table_backup.cql | 13 + .../CQL/create_table_clustercolumn.cql | 7 + .../examples/CQL/create_table_compound_pk.cql | 7 + .../examples/CQL/create_table_simple.cql | 4 + .../examples/CQL/create_table_single_pk.cql | 1 + .../cassandra/examples/CQL/create_trigger.cql | 1 + .../cassandra/examples/CQL/create_user.cql | 2 + .../examples/CQL/create_user_role.cql | 14 + .../cassandra/examples/CQL/currentdate.cql | 1 + .../examples/CQL/datetime_arithmetic.cql | 1 + .../examples/CQL/delete_all_elements_list.cql | 1 + .../examples/CQL/delete_element_list.cql | 1 + .../cassandra/examples/CQL/delete_map.cql | 2 + .../cassandra/examples/CQL/delete_set.cql | 1 + .../examples/CQL/delete_statement.cql | 5 + .../cassandra/examples/CQL/drop_aggregate.cql | 4 + .../cassandra/examples/CQL/drop_function.cql | 4 + .../cassandra/examples/CQL/drop_ks.cql | 1 + .../cassandra/examples/CQL/drop_trigger.cql | 1 + .../examples/CQL/function_dollarsign.cql | 15 + .../examples/CQL/function_overload.cql | 2 + .../examples/CQL/function_udfcontext.cql | 11 + .../cassandra/examples/CQL/grant_describe.cql | 1 + .../cassandra/examples/CQL/grant_drop.cql | 1 + .../cassandra/examples/CQL/grant_execute.cql | 1 + .../cassandra/examples/CQL/grant_modify.cql | 1 + .../cassandra/examples/CQL/grant_perm.cql | 1 + .../cassandra/examples/CQL/grant_role.cql | 1 + .../examples/CQL/insert_data2_backup.cql | 5 + .../examples/CQL/insert_data_backup.cql | 6 + .../examples/CQL/insert_duration.cql | 6 + .../cassandra/examples/CQL/insert_json.cql | 1 + .../examples/CQL/insert_statement.cql | 5 + .../examples/CQL/insert_static_data.cql | 2 + .../examples/CQL/insert_table_cc_addl.cql | 1 + .../CQL/insert_table_clustercolumn.cql | 5 + .../CQL/insert_table_clustercolumn2.cql | 5 + .../examples/CQL/insert_table_compound_pk.cql | 5 + .../cassandra/examples/CQL/insert_udt.cql | 17 + .../modules/cassandra/examples/CQL/list.cql | 12 + .../cassandra/examples/CQL/list_all_perm.cql | 1 + .../cassandra/examples/CQL/list_perm.cql | 1 + .../cassandra/examples/CQL/list_roles.cql | 1 + .../examples/CQL/list_roles_nonrecursive.cql | 1 + .../cassandra/examples/CQL/list_roles_of.cql | 1 + .../examples/CQL/list_select_perm.cql | 1 + .../modules/cassandra/examples/CQL/map.cql | 11 + .../cassandra/examples/CQL/min_max.cql | 1 + .../cassandra/examples/CQL/mv_table_def.cql | 8 + .../cassandra/examples/CQL/mv_table_error.cql | 13 + .../examples/CQL/mv_table_from_base.cql | 9 + .../cassandra/examples/CQL/no_revoke.cql | 5 + .../examples/CQL/query_allow_filtering.cql | 5 + .../CQL/query_fail_allow_filtering.cql | 1 + .../CQL/query_nofail_allow_filtering.cql | 1 + .../examples/CQL/rename_udt_field.cql | 1 + .../cassandra/examples/CQL/revoke_perm.cql | 5 + .../cassandra/examples/CQL/revoke_role.cql | 1 + .../cassandra/examples/CQL/role_error.cql | 6 + .../examples/CQL/select_data2_backup.cql | 2 + .../examples/CQL/select_data_backup.cql | 2 + .../cassandra/examples/CQL/select_range.cql | 1 + .../examples/CQL/select_statement.cql | 11 + .../examples/CQL/select_static_data.cql | 1 + .../CQL/select_table_clustercolumn.cql | 1 + .../examples/CQL/select_table_compound_pk.cql | 1 + .../modules/cassandra/examples/CQL/set.cql | 11 + .../examples/CQL/spec_retry_values.cql | 6 + .../modules/cassandra/examples/CQL/sum.cql | 1 + .../examples/CQL/table_for_where.cql | 9 + .../examples/CQL/timeuuid_min_max.cql | 3 + .../cassandra/examples/CQL/timeuuid_now.cql | 1 + .../modules/cassandra/examples/CQL/token.cql | 2 + .../modules/cassandra/examples/CQL/tuple.cql | 6 + .../modules/cassandra/examples/CQL/uda.cql | 41 + .../modules/cassandra/examples/CQL/udt.cql | 16 + .../cassandra/examples/CQL/update_list.cql | 2 + .../cassandra/examples/CQL/update_map.cql | 2 + .../CQL/update_particular_list_element.cql | 1 + .../cassandra/examples/CQL/update_set.cql | 1 + .../examples/CQL/update_statement.cql | 10 + .../cassandra/examples/CQL/update_ttl_map.cql | 1 + .../modules/cassandra/examples/CQL/use_ks.cql | 1 + .../modules/cassandra/examples/CQL/where.cql | 4 + .../cassandra/examples/CQL/where_fail.cql | 5 + .../CQL/where_group_cluster_columns.cql | 3 + .../cassandra/examples/CQL/where_in_tuple.cql | 3 + .../CQL/where_no_group_cluster_columns.cql | 4 + .../cassandra/examples/JAVA/udf_imports.java | 8 + .../cassandra/examples/JAVA/udfcontext.java | 11 + .../examples/RESULTS/add_repo_keys.result | 4 + .../examples/RESULTS/add_yum_repo.result | 6 + .../RESULTS/autoexpand_exclude_dc.result | 1 + .../examples/RESULTS/autoexpand_ks.result | 1 + .../RESULTS/autoexpand_ks_override.result | 1 + .../examples/RESULTS/cqlsh_localhost.result | 11 + .../examples/RESULTS/find_backups.result | 4 + .../RESULTS/find_backups_table.result | 1 + .../RESULTS/find_two_snapshots.result | 3 + .../examples/RESULTS/flush_and_check.result | 9 + .../examples/RESULTS/flush_and_check2.result | 17 + .../RESULTS/insert_data2_backup.result | 13 + .../RESULTS/insert_table_cc_addl.result | 9 + .../examples/RESULTS/java_verify.result | 3 + .../cassandra/examples/RESULTS/no_bups.result | 1 + .../RESULTS/nodetool_list_snapshots.result | 13 + .../RESULTS/nodetool_snapshot_help.result | 54 + .../RESULTS/select_data2_backup.result | 13 + .../RESULTS/select_data_backup.result | 15 + .../examples/RESULTS/select_range.result | 6 + .../RESULTS/select_static_data.result | 4 + .../RESULTS/select_table_clustercolumn.result | 9 + .../RESULTS/select_table_compound_pk.result | 9 + .../examples/RESULTS/snapshot_all.result | 4 + .../examples/RESULTS/snapshot_backup2.result | 3 + .../RESULTS/snapshot_backup2_find.result | 2 + .../examples/RESULTS/snapshot_files.result | 11 + .../examples/RESULTS/snapshot_mult_ks.result | 3 + .../RESULTS/snapshot_mult_tables.result | 3 + .../RESULTS/snapshot_mult_tables_again.result | 3 + .../RESULTS/snapshot_one_table2.result | 3 + .../examples/RESULTS/tail_syslog.result | 1 + .../examples/RESULTS/verify_gpg.result | 2 + .../examples/TEXT/NODETOOL/assassinate.txt | 0 .../examples/TEXT/NODETOOL/bootstrap.txt | 37 + .../examples/TEXT/NODETOOL/cleanup.txt | 43 + .../examples/TEXT/NODETOOL/clearsnapshot.txt | 46 + .../examples/TEXT/NODETOOL/clientstats.txt | 39 + .../examples/TEXT/NODETOOL/compact.txt | 55 + .../TEXT/NODETOOL/compactionhistory.txt | 33 + .../TEXT/NODETOOL/compactionstats.txt | 33 + .../examples/TEXT/NODETOOL/decommission.txt | 33 + .../TEXT/NODETOOL/describecluster.txt | 30 + .../examples/TEXT/NODETOOL/describering.txt | 37 + .../TEXT/NODETOOL/disableauditlog.txt | 29 + .../TEXT/NODETOOL/disableautocompaction.txt | 39 + .../examples/TEXT/NODETOOL/disablebackup.txt | 29 + .../examples/TEXT/NODETOOL/disablebinary.txt | 29 + .../TEXT/NODETOOL/disablefullquerylog.txt | 29 + .../examples/TEXT/NODETOOL/disablegossip.txt | 30 + .../examples/TEXT/NODETOOL/disablehandoff.txt | 29 + .../TEXT/NODETOOL/disablehintsfordc.txt | 38 + .../NODETOOL/disableoldprotocolversions.txt | 29 + .../examples/TEXT/NODETOOL/drain.txt | 30 + .../examples/TEXT/NODETOOL/enableauditlog.txt | 63 + .../TEXT/NODETOOL/enableautocompaction.txt | 39 + .../examples/TEXT/NODETOOL/enablebackup.txt | 29 + .../examples/TEXT/NODETOOL/enablebinary.txt | 29 + .../TEXT/NODETOOL/enablefullquerylog.txt | 61 + .../examples/TEXT/NODETOOL/enablegossip.txt | 29 + .../examples/TEXT/NODETOOL/enablehandoff.txt | 30 + .../TEXT/NODETOOL/enablehintsfordc.txt | 39 + .../NODETOOL/enableoldprotocolversions.txt | 29 + .../TEXT/NODETOOL/failuredetector.txt | 30 + .../examples/TEXT/NODETOOL/flush.txt | 38 + .../examples/TEXT/NODETOOL/garbagecollect.txt | 48 + .../examples/TEXT/NODETOOL/gcstats.txt | 29 + .../NODETOOL/getbatchlogreplaythrottle.txt | 31 + .../TEXT/NODETOOL/getcompactionthreshold.txt | 39 + .../TEXT/NODETOOL/getcompactionthroughput.txt | 30 + .../examples/TEXT/NODETOOL/getconcurrency.txt | 38 + .../TEXT/NODETOOL/getconcurrentcompactors.txt | 30 + .../NODETOOL/getconcurrentviewbuilders.txt | 30 + .../examples/TEXT/NODETOOL/getendpoints.txt | 39 + .../NODETOOL/getinterdcstreamthroughput.txt | 30 + .../TEXT/NODETOOL/getlogginglevels.txt | 29 + .../TEXT/NODETOOL/getmaxhintwindow.txt | 29 + .../examples/TEXT/NODETOOL/getseeds.txt | 30 + .../examples/TEXT/NODETOOL/getsstables.txt | 41 + .../TEXT/NODETOOL/getstreamthroughput.txt | 30 + .../examples/TEXT/NODETOOL/gettimeout.txt | 39 + .../TEXT/NODETOOL/gettraceprobability.txt | 29 + .../examples/TEXT/NODETOOL/gossipinfo.txt | 29 + .../cassandra/examples/TEXT/NODETOOL/help.txt | 16 + .../examples/TEXT/NODETOOL/import.txt | 64 + .../cassandra/examples/TEXT/NODETOOL/info.txt | 32 + .../TEXT/NODETOOL/invalidatecountercache.txt | 29 + .../TEXT/NODETOOL/invalidatekeycache.txt | 29 + .../TEXT/NODETOOL/invalidaterowcache.txt | 29 + .../cassandra/examples/TEXT/NODETOOL/join.txt | 29 + .../examples/TEXT/NODETOOL/listsnapshots.txt | 32 + .../cassandra/examples/TEXT/NODETOOL/move.txt | 37 + .../examples/TEXT/NODETOOL/netstats.txt | 34 + .../examples/TEXT/NODETOOL/pausehandoff.txt | 29 + .../examples/TEXT/NODETOOL/profileload.txt | 48 + .../TEXT/NODETOOL/proxyhistograms.txt | 30 + .../examples/TEXT/NODETOOL/rangekeysample.txt | 30 + .../examples/TEXT/NODETOOL/rebuild.txt | 54 + .../examples/TEXT/NODETOOL/rebuild_index.txt | 39 + .../examples/TEXT/NODETOOL/refresh.txt | 39 + .../TEXT/NODETOOL/refreshsizeestimates.txt | 29 + .../TEXT/NODETOOL/reloadlocalschema.txt | 29 + .../examples/TEXT/NODETOOL/reloadseeds.txt | 30 + .../examples/TEXT/NODETOOL/reloadssl.txt | 29 + .../examples/TEXT/NODETOOL/reloadtriggers.txt | 29 + .../TEXT/NODETOOL/relocatesstables.txt | 42 + .../examples/TEXT/NODETOOL/removenode.txt | 40 + .../examples/TEXT/NODETOOL/repair.txt | 103 + .../examples/TEXT/NODETOOL/repair_admin.txt | 43 + .../examples/TEXT/NODETOOL/replaybatchlog.txt | 29 + .../TEXT/NODETOOL/resetfullquerylog.txt | 31 + .../TEXT/NODETOOL/resetlocalschema.txt | 29 + .../examples/TEXT/NODETOOL/resumehandoff.txt | 29 + .../cassandra/examples/TEXT/NODETOOL/ring.txt | 42 + .../examples/TEXT/NODETOOL/scrub.txt | 63 + .../NODETOOL/setbatchlogreplaythrottle.txt | 40 + .../TEXT/NODETOOL/setcachecapacity.txt | 39 + .../TEXT/NODETOOL/setcachekeystosave.txt | 41 + .../TEXT/NODETOOL/setcompactionthreshold.txt | 39 + .../TEXT/NODETOOL/setcompactionthroughput.txt | 39 + .../examples/TEXT/NODETOOL/setconcurrency.txt | 40 + .../TEXT/NODETOOL/setconcurrentcompactors.txt | 39 + .../NODETOOL/setconcurrentviewbuilders.txt | 39 + .../NODETOOL/sethintedhandoffthrottlekb.txt | 39 + .../NODETOOL/setinterdcstreamthroughput.txt | 39 + .../TEXT/NODETOOL/setlogginglevel.txt | 42 + .../TEXT/NODETOOL/setmaxhintwindow.txt | 38 + .../TEXT/NODETOOL/setstreamthroughput.txt | 39 + .../examples/TEXT/NODETOOL/settimeout.txt | 42 + .../TEXT/NODETOOL/settraceprobability.txt | 40 + .../cassandra/examples/TEXT/NODETOOL/sjk.txt | 38 + .../examples/TEXT/NODETOOL/snapshot.txt | 56 + .../examples/TEXT/NODETOOL/status.txt | 41 + .../TEXT/NODETOOL/statusautocompaction.txt | 42 + .../examples/TEXT/NODETOOL/statusbackup.txt | 29 + .../examples/TEXT/NODETOOL/statusbinary.txt | 29 + .../examples/TEXT/NODETOOL/statusgossip.txt | 29 + .../examples/TEXT/NODETOOL/statushandoff.txt | 30 + .../cassandra/examples/TEXT/NODETOOL/stop.txt | 46 + .../examples/TEXT/NODETOOL/stopdaemon.txt | 29 + .../TEXT/NODETOOL/tablehistograms.txt | 38 + .../examples/TEXT/NODETOOL/tablestats.txt | 73 + .../examples/TEXT/NODETOOL/toppartitions.txt | 47 + .../examples/TEXT/NODETOOL/tpstats.txt | 33 + .../examples/TEXT/NODETOOL/truncatehints.txt | 40 + .../TEXT/NODETOOL/upgradesstables.txt | 49 + .../examples/TEXT/NODETOOL/verify.txt | 58 + .../examples/TEXT/NODETOOL/version.txt | 29 + .../TEXT/NODETOOL/viewbuildstatus.txt | 38 + .../examples/TEXT}/native_protocol_v3.spec | 0 .../examples/TEXT}/native_protocol_v4.spec | 0 .../examples/TEXT}/native_protocol_v5.spec | 0 .../examples/TEXT/tarball_install_dirs.txt | 11 + .../examples/YAML/auto_snapshot.yaml | 1 + .../examples/YAML/incremental_bups.yaml | 1 + .../YAML/snapshot_before_compaction.yaml | 1 + .../examples/YAML/stress-example.yaml | 62 + .../examples/YAML/stress-lwt-example.yaml | 88 + doc/source/modules/cassandra/nav.adoc | 106 + .../cassandra/pages/architecture/dynamo.adoc | 531 +++ .../pages/architecture/guarantees.adoc | 108 + .../pages/architecture/images/ring.svg | 11 + .../pages/architecture/images/vnodes.svg | 11 + .../cassandra/pages/architecture/index.adoc | 9 + .../pages/architecture/overview.adoc | 101 + .../cassandra/pages/architecture/snitch.adoc | 74 + .../pages/architecture/storage_engine.adoc | 225 + .../configuration/cass_cl_archive_file.adoc | 48 + .../pages/configuration/cass_env_sh_file.adoc | 162 + .../configuration/cass_jvm_options_file.adoc | 22 + .../configuration/cass_logback_xml_file.adoc | 166 + .../pages/configuration/cass_rackdc_file.adoc | 79 + .../pages/configuration/cass_topo_file.adoc | 53 + .../pages/configuration/cass_yaml_file.adoc | 2125 +++++++++ .../cassandra/pages/configuration/index.adoc | 11 + .../modules/cassandra/pages/cql/SASI.adoc | 809 ++++ .../cassandra/pages/cql/appendices.adoc | 179 + .../modules/cassandra/pages/cql/changes.adoc | 215 + .../cassandra/pages/cql/cql_singlefile.adoc | 3904 +++++++++++++++++ .../modules/cassandra/pages/cql/ddl.adoc | 799 ++++ .../cassandra/pages/cql/definitions.adoc | 187 + .../modules/cassandra/pages/cql/dml.adoc | 458 ++ .../cassandra/pages/cql/functions.adoc | 504 +++ .../modules/cassandra/pages/cql/index.adoc | 24 + .../modules/cassandra/pages/cql/indexes.adoc | 63 + .../modules/cassandra/pages/cql/json.adoc | 125 + .../modules/cassandra/pages/cql/mvs.adoc | 158 + .../cassandra/pages/cql/operators.adoc | 68 + .../modules/cassandra/pages/cql/security.adoc | 611 +++ .../modules/cassandra/pages/cql/triggers.adoc | 50 + .../modules/cassandra/pages/cql/types.adoc | 539 +++ .../data_modeling_conceptual.adoc | 44 + .../data_modeling/data_modeling_logical.adoc | 195 + .../data_modeling/data_modeling_physical.adoc | 96 + .../data_modeling/data_modeling_queries.adoc | 60 + .../data_modeling/data_modeling_rdbms.adoc | 144 + .../data_modeling/data_modeling_refining.adoc | 201 + .../data_modeling/data_modeling_schema.adoc | 130 + .../data_modeling/data_modeling_tools.adoc | 44 + .../images/Figure_1_data_model.jpg | Bin 0 -> 17469 bytes .../images/Figure_2_data_model.jpg | Bin 0 -> 20925 bytes .../images/data_modeling_chebotko_logical.png | Bin 0 -> 87366 bytes .../data_modeling_chebotko_physical.png | Bin 0 -> 4553809 bytes .../images/data_modeling_hotel_bucketing.png | Bin 0 -> 22009 bytes .../images/data_modeling_hotel_erd.png | Bin 0 -> 233309 bytes .../images/data_modeling_hotel_logical.png | Bin 0 -> 116998 bytes .../images/data_modeling_hotel_physical.png | Bin 0 -> 119795 bytes .../images/data_modeling_hotel_queries.png | Bin 0 -> 103940 bytes .../images/data_modeling_hotel_relational.png | Bin 0 -> 102656 bytes .../data_modeling_reservation_logical.png | Bin 0 -> 121750 bytes .../data_modeling_reservation_physical.png | Bin 0 -> 142416 bytes .../cassandra/pages/data_modeling/index.adoc | 11 + .../cassandra/pages/data_modeling/intro.adoc | 220 + .../cassandra/pages/development/ci.adoc | 83 + .../pages/development/code_style.adoc | 100 + .../pages/development/dependencies.adoc | 51 + .../pages/development/documentation.adoc | 135 + .../pages/development/gettingstarted.adoc | 62 + .../pages/development/how_to_commit.adoc | 71 + .../pages/development/how_to_review.adoc | 72 + .../cassandra/pages/development/ide.adoc | 234 + .../pages/development/images/docs_commit.png | Bin 0 -> 104667 bytes .../development/images/docs_create_branch.png | Bin 0 -> 181860 bytes .../development/images/docs_create_file.png | Bin 0 -> 209110 bytes .../pages/development/images/docs_editor.png | Bin 0 -> 106175 bytes .../pages/development/images/docs_fork.png | Bin 0 -> 76159 bytes .../pages/development/images/docs_pr.png | Bin 0 -> 156081 bytes .../pages/development/images/docs_preview.png | Bin 0 -> 123826 bytes .../development/images/eclipse_debug0.png | Bin 0 -> 48174 bytes .../development/images/eclipse_debug1.png | Bin 0 -> 34446 bytes .../development/images/eclipse_debug2.png | Bin 0 -> 57032 bytes .../development/images/eclipse_debug3.png | Bin 0 -> 58677 bytes .../development/images/eclipse_debug4.png | Bin 0 -> 24793 bytes .../development/images/eclipse_debug5.png | Bin 0 -> 66632 bytes .../development/images/eclipse_debug6.png | Bin 0 -> 87568 bytes .../cassandra/pages/development/index.adoc | 13 + .../cassandra/pages/development/patches.adoc | 218 + .../pages/development/release_process.adoc | 245 ++ .../cassandra/pages/development/testing.adoc | 145 + .../modules/cassandra/pages/faq/index.adoc | 290 ++ .../pages/getting_started/configuring.adoc | 84 + .../pages/getting_started/drivers.adoc | 90 + .../pages/getting_started/index.adoc | 30 + .../pages/getting_started/installing.adoc | 344 ++ .../pages/getting_started/production.adoc | 163 + .../pages/getting_started/querying.adoc | 31 + .../pages/getting_started/quickstart.adoc | 116 + .../pages/operating/audit_logging.adoc | 224 + .../cassandra/pages/operating/backups.adoc | 517 +++ .../pages/operating/bloom_filters.adoc | 64 + .../pages/operating/bulk_loading.adoc | 842 ++++ .../cassandra/pages/operating/cdc.adoc | 86 + .../pages/operating/compaction/index.adoc | 339 ++ .../pages/operating/compaction/lcs.adoc | 81 + .../pages/operating/compaction/stcs.adoc | 42 + .../pages/operating/compaction/twcs.adoc | 75 + .../pages/operating/compression.adoc | 187 + .../cassandra/pages/operating/hardware.adoc | 100 + .../cassandra/pages/operating/hints.adoc | 250 ++ .../cassandra/pages/operating/index.adoc | 15 + .../cassandra/pages/operating/metrics.adoc | 1088 +++++ .../pages/operating/read_repair.adoc | 264 ++ .../cassandra/pages/operating/repair.adoc | 222 + .../cassandra/pages/operating/security.adoc | 527 +++ .../pages/operating/topo_changes.adoc | 133 + .../cassandra/pages/plugins/index.adoc | 36 + .../pages/tools/cassandra_stress.adoc | 326 ++ .../modules/cassandra/pages/tools/cqlsh.adoc | 482 ++ .../modules/cassandra/pages/tools/index.adoc | 9 + .../pages/tools/nodetool/assassinate.adoc | 7 + .../pages/tools/nodetool/bootstrap.adoc | 7 + .../pages/tools/nodetool/cleanup.adoc | 7 + .../pages/tools/nodetool/clearsnapshot.adoc | 7 + .../pages/tools/nodetool/clientstats.adoc | 7 + .../pages/tools/nodetool/compact.adoc | 7 + .../tools/nodetool/compactionhistory.adoc | 7 + .../pages/tools/nodetool/compactionstats.adoc | 7 + .../cassandra/pages/tools/nodetool/convert.sh | 9 + .../pages/tools/nodetool/decommission.adoc | 7 + .../pages/tools/nodetool/describecluster.adoc | 7 + .../pages/tools/nodetool/describering.adoc | 7 + .../pages/tools/nodetool/disableauditlog.adoc | 7 + .../tools/nodetool/disableautocompaction.adoc | 7 + .../pages/tools/nodetool/disablebackup.adoc | 7 + .../pages/tools/nodetool/disablebinary.adoc | 7 + .../tools/nodetool/disablefullquerylog.adoc | 7 + .../pages/tools/nodetool/disablegossip.adoc | 7 + .../pages/tools/nodetool/disablehandoff.adoc | 7 + .../tools/nodetool/disablehintsfordc.adoc | 7 + .../nodetool/disableoldprotocolversions.adoc | 7 + .../cassandra/pages/tools/nodetool/drain.adoc | 7 + .../pages/tools/nodetool/enableauditlog.adoc | 7 + .../tools/nodetool/enableautocompaction.adoc | 7 + .../pages/tools/nodetool/enablebackup.adoc | 7 + .../pages/tools/nodetool/enablebinary.adoc | 7 + .../tools/nodetool/enablefullquerylog.adoc | 7 + .../pages/tools/nodetool/enablegossip.adoc | 7 + .../pages/tools/nodetool/enablehandoff.adoc | 7 + .../tools/nodetool/enablehintsfordc.adoc | 7 + .../nodetool/enableoldprotocolversions.adoc | 7 + .../pages/tools/nodetool/failuredetector.adoc | 7 + .../cassandra/pages/tools/nodetool/flush.adoc | 7 + .../pages/tools/nodetool/garbagecollect.adoc | 7 + .../pages/tools/nodetool/gcstats.adoc | 7 + .../nodetool/getbatchlogreplaythrottle.adoc | 7 + .../nodetool/getcompactionthreshold.adoc | 7 + .../nodetool/getcompactionthroughput.adoc | 7 + .../pages/tools/nodetool/getconcurrency.adoc | 7 + .../nodetool/getconcurrentcompactors.adoc | 7 + .../nodetool/getconcurrentviewbuilders.adoc | 7 + .../pages/tools/nodetool/getendpoints.adoc | 7 + .../nodetool/getinterdcstreamthroughput.adoc | 7 + .../tools/nodetool/getlogginglevels.adoc | 7 + .../tools/nodetool/getmaxhintwindow.adoc | 7 + .../pages/tools/nodetool/getseeds.adoc | 7 + .../pages/tools/nodetool/getsstables.adoc | 7 + .../tools/nodetool/getstreamthroughput.adoc | 7 + .../pages/tools/nodetool/gettimeout.adoc | 7 + .../tools/nodetool/gettraceprobability.adoc | 7 + .../pages/tools/nodetool/gossipinfo.adoc | 7 + .../cassandra/pages/tools/nodetool/help.adoc | 7 + .../pages/tools/nodetool/import.adoc | 7 + .../cassandra/pages/tools/nodetool/info.adoc | 7 + .../nodetool/invalidatecountercache.adoc | 7 + .../tools/nodetool/invalidatekeycache.adoc | 7 + .../tools/nodetool/invalidaterowcache.adoc | 7 + .../cassandra/pages/tools/nodetool/join.adoc | 7 + .../pages/tools/nodetool/listsnapshots.adoc | 7 + .../cassandra/pages/tools/nodetool/move.adoc | 7 + .../pages/tools/nodetool/netstats.adoc | 7 + .../pages/tools/nodetool/nodetool.adoc | 247 ++ .../pages/tools/nodetool/nodetool.txt | 125 + .../pages/tools/nodetool/pausehandoff.adoc | 7 + .../pages/tools/nodetool/profileload.adoc | 7 + .../pages/tools/nodetool/proxyhistograms.adoc | 7 + .../pages/tools/nodetool/rangekeysample.adoc | 7 + .../pages/tools/nodetool/rebuild.adoc | 7 + .../pages/tools/nodetool/rebuild_index.adoc | 7 + .../pages/tools/nodetool/refresh.adoc | 7 + .../tools/nodetool/refreshsizeestimates.adoc | 7 + .../tools/nodetool/reloadlocalschema.adoc | 7 + .../pages/tools/nodetool/reloadseeds.adoc | 7 + .../pages/tools/nodetool/reloadssl.adoc | 7 + .../pages/tools/nodetool/reloadtriggers.adoc | 7 + .../tools/nodetool/relocatesstables.adoc | 7 + .../pages/tools/nodetool/removenode.adoc | 7 + .../pages/tools/nodetool/repair.adoc | 7 + .../pages/tools/nodetool/repair_admin.adoc | 7 + .../pages/tools/nodetool/replaybatchlog.adoc | 7 + .../tools/nodetool/resetfullquerylog.adoc | 7 + .../tools/nodetool/resetlocalschema.adoc | 7 + .../pages/tools/nodetool/resumehandoff.adoc | 7 + .../cassandra/pages/tools/nodetool/ring.adoc | 7 + .../cassandra/pages/tools/nodetool/scrub.adoc | 7 + .../nodetool/setbatchlogreplaythrottle.adoc | 7 + .../tools/nodetool/setcachecapacity.adoc | 7 + .../tools/nodetool/setcachekeystosave.adoc | 7 + .../nodetool/setcompactionthreshold.adoc | 7 + .../nodetool/setcompactionthroughput.adoc | 7 + .../pages/tools/nodetool/setconcurrency.adoc | 7 + .../nodetool/setconcurrentcompactors.adoc | 7 + .../nodetool/setconcurrentviewbuilders.adoc | 7 + .../nodetool/sethintedhandoffthrottlekb.adoc | 7 + .../nodetool/setinterdcstreamthroughput.adoc | 7 + .../pages/tools/nodetool/setlogginglevel.adoc | 7 + .../tools/nodetool/setmaxhintwindow.adoc | 7 + .../tools/nodetool/setstreamthroughput.adoc | 7 + .../pages/tools/nodetool/settimeout.adoc | 7 + .../tools/nodetool/settraceprobability.adoc | 7 + .../cassandra/pages/tools/nodetool/sjk.adoc | 7 + .../pages/tools/nodetool/snapshot.adoc | 7 + .../pages/tools/nodetool/status.adoc | 7 + .../tools/nodetool/statusautocompaction.adoc | 7 + .../pages/tools/nodetool/statusbackup.adoc | 7 + .../pages/tools/nodetool/statusbinary.adoc | 7 + .../pages/tools/nodetool/statusgossip.adoc | 7 + .../pages/tools/nodetool/statushandoff.adoc | 7 + .../cassandra/pages/tools/nodetool/stop.adoc | 7 + .../pages/tools/nodetool/stopdaemon.adoc | 7 + .../pages/tools/nodetool/tablehistograms.adoc | 7 + .../pages/tools/nodetool/tablestats.adoc | 7 + .../pages/tools/nodetool/toppartitions.adoc | 7 + .../pages/tools/nodetool/tpstats.adoc | 7 + .../pages/tools/nodetool/truncatehints.adoc | 7 + .../pages/tools/nodetool/upgradesstables.adoc | 7 + .../pages/tools/nodetool/verify.adoc | 7 + .../pages/tools/nodetool/version.adoc | 7 + .../pages/tools/nodetool/viewbuildstatus.adoc | 7 + .../cassandra/pages/tools/sstable/index.adoc | 20 + .../pages/tools/sstable/sstabledump.adoc | 286 ++ .../tools/sstable/sstableexpiredblockers.adoc | 42 + .../tools/sstable/sstablelevelreset.adoc | 69 + .../pages/tools/sstable/sstableloader.adoc | 316 ++ .../pages/tools/sstable/sstablemetadata.adoc | 320 ++ .../tools/sstable/sstableofflinerelevel.adoc | 94 + .../tools/sstable/sstablerepairedset.adoc | 83 + .../pages/tools/sstable/sstablescrub.adoc | 102 + .../pages/tools/sstable/sstablesplit.adoc | 96 + .../pages/tools/sstable/sstableupgrade.adoc | 136 + .../pages/tools/sstable/sstableutil.adoc | 102 + .../pages/tools/sstable/sstableverify.adoc | 82 + .../cassandra/pages/tools/stress-example.yaml | 44 + .../pages/tools/stress-lwt-example.yaml | 70 + .../pages/troubleshooting/finding_nodes.adoc | 134 + .../pages/troubleshooting/index.adoc | 19 + .../pages/troubleshooting/reading_logs.adoc | 277 ++ .../pages/troubleshooting/use_nodetool.adoc | 242 + .../pages/troubleshooting/use_tools.adoc | 578 +++ .../cassandra/partials/java_version.adoc | 23 + .../partials/nodetool_and_cqlsh.adoc | 21 + .../partials/nodetool_and_cqlsh_nobin.adoc | 21 + .../cassandra/partials/package_versions.adoc | 5 + .../cassandra/partials/tail_syslog.adoc | 25 + doc/source/operating/backups.rst | 22 - doc/source/operating/bloom_filters.rst | 65 - doc/source/operating/bulk_loading.rst | 24 - doc/source/operating/cdc.rst | 89 - doc/source/operating/compaction.rst | 443 -- doc/source/operating/compression.rst | 94 - doc/source/operating/error_codes.txt | 31 - doc/source/operating/hardware.rst | 87 - doc/source/operating/hints.rst | 22 - doc/source/operating/index.rst | 39 - doc/source/operating/metrics.rst | 710 --- doc/source/operating/read_repair.rst | 22 - doc/source/operating/repair.rst | 22 - doc/source/operating/security.rst | 410 -- doc/source/operating/snitch.rst | 78 - doc/source/operating/topo_changes.rst | 124 - doc/source/tools/cqlsh.rst | 455 -- doc/source/tools/index.rst | 26 - doc/source/tools/nodetool.rst | 22 - doc/source/troubleshooting/index.rst | 20 - 752 files changed, 32510 insertions(+), 13977 deletions(-) delete mode 100644 doc/SASI.md delete mode 100644 doc/cql3/CQL.css delete mode 100644 doc/cql3/CQL.textile create mode 100644 doc/lib/tabs-block.js delete mode 100644 doc/make.bat rename doc/{convert_yaml_to_rst.py => scripts/convert_yaml_to_adoc.py} (87%) create mode 100644 doc/scripts/gen-nodetool-docs.py create mode 100644 doc/site.yml delete mode 100644 doc/source/_static/extra.css delete mode 100644 doc/source/_templates/indexcontent.html delete mode 100644 doc/source/_theme/cassandra_theme/defindex.html delete mode 100644 doc/source/_theme/cassandra_theme/layout.html delete mode 100644 doc/source/_theme/cassandra_theme/search.html delete mode 100644 doc/source/_theme/cassandra_theme/theme.conf delete mode 100644 doc/source/_util/cql.py create mode 100644 doc/source/antora.yml delete mode 100644 doc/source/architecture/dynamo.rst delete mode 100644 doc/source/architecture/guarantees.rst delete mode 100644 doc/source/architecture/index.rst delete mode 100644 doc/source/architecture/overview.rst delete mode 100644 doc/source/architecture/storage_engine.rst delete mode 100644 doc/source/bugs.rst delete mode 100644 doc/source/conf.py delete mode 100644 doc/source/configuration/index.rst delete mode 100644 doc/source/contactus.rst delete mode 100644 doc/source/cql/appendices.rst delete mode 100644 doc/source/cql/changes.rst delete mode 100644 doc/source/cql/ddl.rst delete mode 100644 doc/source/cql/definitions.rst delete mode 100644 doc/source/cql/dml.rst delete mode 100644 doc/source/cql/functions.rst delete mode 100644 doc/source/cql/index.rst delete mode 100644 doc/source/cql/indexes.rst delete mode 100644 doc/source/cql/json.rst delete mode 100644 doc/source/cql/mvs.rst delete mode 100644 doc/source/cql/security.rst delete mode 100644 doc/source/cql/triggers.rst delete mode 100644 doc/source/cql/types.rst delete mode 100644 doc/source/data_modeling/index.rst delete mode 100644 doc/source/development/code_style.rst delete mode 100644 doc/source/development/how_to_commit.rst delete mode 100644 doc/source/development/how_to_review.rst delete mode 100644 doc/source/development/ide.rst delete mode 100644 doc/source/development/index.rst delete mode 100644 doc/source/development/license_compliance.rst delete mode 100644 doc/source/development/patches.rst delete mode 100644 doc/source/development/testing.rst delete mode 100644 doc/source/faq/index.rst delete mode 100644 doc/source/getting_started/configuring.rst delete mode 100644 doc/source/getting_started/drivers.rst delete mode 100644 doc/source/getting_started/index.rst delete mode 100644 doc/source/getting_started/installing.rst delete mode 100644 doc/source/getting_started/querying.rst delete mode 100644 doc/source/index.rst create mode 100644 doc/source/modules/ROOT/nav.adoc create mode 100644 doc/source/modules/ROOT/pages/index.adoc create mode 100644 doc/source/modules/cassandra/assets/images/Figure_1_backups.jpg create mode 100644 doc/source/modules/cassandra/assets/images/Figure_1_data_model.jpg create mode 100644 doc/source/modules/cassandra/assets/images/Figure_1_guarantees.jpg create mode 100644 doc/source/modules/cassandra/assets/images/Figure_1_read_repair.jpg create mode 100644 doc/source/modules/cassandra/assets/images/Figure_2_data_model.jpg create mode 100644 doc/source/modules/cassandra/assets/images/Figure_2_read_repair.jpg create mode 100644 doc/source/modules/cassandra/assets/images/Figure_3_read_repair.jpg create mode 100644 doc/source/modules/cassandra/assets/images/Figure_4_read_repair.jpg create mode 100644 doc/source/modules/cassandra/assets/images/Figure_5_read_repair.jpg create mode 100644 doc/source/modules/cassandra/assets/images/Figure_6_read_repair.jpg create mode 100755 doc/source/modules/cassandra/assets/images/data_modeling_chebotko_logical.png create mode 100644 doc/source/modules/cassandra/assets/images/data_modeling_chebotko_physical.png create mode 100644 doc/source/modules/cassandra/assets/images/data_modeling_hotel_bucketing.png create mode 100755 doc/source/modules/cassandra/assets/images/data_modeling_hotel_erd.png create mode 100755 doc/source/modules/cassandra/assets/images/data_modeling_hotel_logical.png create mode 100644 doc/source/modules/cassandra/assets/images/data_modeling_hotel_physical.png create mode 100755 doc/source/modules/cassandra/assets/images/data_modeling_hotel_queries.png create mode 100755 doc/source/modules/cassandra/assets/images/data_modeling_hotel_relational.png create mode 100755 doc/source/modules/cassandra/assets/images/data_modeling_reservation_logical.png create mode 100755 doc/source/modules/cassandra/assets/images/data_modeling_reservation_physical.png create mode 100644 doc/source/modules/cassandra/assets/images/docs_commit.png create mode 100644 doc/source/modules/cassandra/assets/images/docs_create_branch.png create mode 100644 doc/source/modules/cassandra/assets/images/docs_create_file.png create mode 100644 doc/source/modules/cassandra/assets/images/docs_editor.png create mode 100644 doc/source/modules/cassandra/assets/images/docs_fork.png create mode 100644 doc/source/modules/cassandra/assets/images/docs_pr.png create mode 100644 doc/source/modules/cassandra/assets/images/docs_preview.png rename doc/source/{development => modules/cassandra/assets}/images/eclipse_debug0.png (100%) rename doc/source/{development => modules/cassandra/assets}/images/eclipse_debug1.png (100%) rename doc/source/{development => modules/cassandra/assets}/images/eclipse_debug2.png (100%) rename doc/source/{development => modules/cassandra/assets}/images/eclipse_debug3.png (100%) rename doc/source/{development => modules/cassandra/assets}/images/eclipse_debug4.png (100%) rename doc/source/{development => modules/cassandra/assets}/images/eclipse_debug5.png (100%) rename doc/source/{development => modules/cassandra/assets}/images/eclipse_debug6.png (100%) create mode 100644 doc/source/modules/cassandra/assets/images/example-stress-graph.png create mode 100644 doc/source/modules/cassandra/assets/images/hints.svg create mode 100644 doc/source/modules/cassandra/assets/images/ring.svg create mode 100644 doc/source/modules/cassandra/assets/images/vnodes.svg create mode 100644 doc/source/modules/cassandra/examples/BASH/add_repo_keys.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/apt-get_cass.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/apt-get_update.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/check_backups.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/cqlsh_localhost.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/curl_install.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/curl_verify_sha.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/docker_cqlsh.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/docker_pull.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/docker_run.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/find_backups.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/find_snapshots.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/find_sstables.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/find_two_snapshots.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/flush_and_check.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/get_deb_package.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/java_verify.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/nodetool_clearsnapshot.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/nodetool_clearsnapshot_all.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/nodetool_flush.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/nodetool_flush_table.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/nodetool_list_snapshots.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/nodetool_snapshot.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/nodetool_status.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/nodetool_status_nobin.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/run_cqlsh.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/run_cqlsh_nobin.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/snapshot_backup2.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/snapshot_both_backups.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/snapshot_files.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/snapshot_mult_ks.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/snapshot_mult_tables.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/snapshot_mult_tables_again.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/snapshot_one_table.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/snapshot_one_table2.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/start_tarball.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/tail_syslog.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/tail_syslog_package.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/tarball.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/verify_gpg.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/yum_cass.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/yum_start.sh create mode 100644 doc/source/modules/cassandra/examples/BASH/yum_update.sh create mode 100644 doc/source/modules/cassandra/examples/BNF/alter_ks.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/alter_mv_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/alter_role_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/alter_table.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/alter_udt_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/alter_user_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/batch_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/collection_literal.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/collection_type.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/column.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/constant.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/cql_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/cql_type.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/create_aggregate_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/create_function_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/create_index_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/create_ks.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/create_mv_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/create_role_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/create_table.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/create_trigger_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/create_type.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/create_user_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/custom_type.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/delete_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/drop_aggregate_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/drop_function_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/drop_index_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/drop_ks.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/drop_mv_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/drop_role_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/drop_table.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/drop_trigger_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/drop_udt_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/drop_user_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/function.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/grant_permission_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/grant_role_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/identifier.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/index_name.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/insert_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/ks_table.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/list_permissions_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/list_roles_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/list_users_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/native_type.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/options.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/revoke_permission_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/revoke_role_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/role_name.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/select_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/term.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/trigger_name.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/truncate_table.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/tuple.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/udt.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/udt_literal.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/update_statement.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/use_ks.bnf create mode 100644 doc/source/modules/cassandra/examples/BNF/view_name.bnf create mode 100644 doc/source/modules/cassandra/examples/CQL/allow_filtering.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/alter_ks.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/alter_role.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/alter_table_add_column.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/alter_table_spec_retry.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/alter_table_spec_retry_percent.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/alter_table_with_comment.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/alter_user.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/as.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/autoexpand_exclude_dc.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/autoexpand_ks.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/autoexpand_ks_override.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/avg.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/batch_statement.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/caching_option.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/chunk_length.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/count.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/count_nonnull.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/create_function.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/create_index.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/create_ks.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/create_ks2_backup.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/create_ks_backup.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/create_ks_trans_repl.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/create_mv_statement.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/create_role.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/create_role_ifnotexists.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/create_static_column.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/create_table.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/create_table2_backup.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/create_table_backup.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/create_table_clustercolumn.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/create_table_compound_pk.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/create_table_simple.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/create_table_single_pk.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/create_trigger.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/create_user.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/create_user_role.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/currentdate.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/datetime_arithmetic.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/delete_all_elements_list.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/delete_element_list.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/delete_map.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/delete_set.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/delete_statement.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/drop_aggregate.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/drop_function.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/drop_ks.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/drop_trigger.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/function_dollarsign.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/function_overload.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/function_udfcontext.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/grant_describe.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/grant_drop.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/grant_execute.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/grant_modify.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/grant_perm.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/grant_role.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/insert_data2_backup.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/insert_data_backup.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/insert_duration.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/insert_json.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/insert_statement.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/insert_static_data.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/insert_table_cc_addl.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/insert_table_clustercolumn.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/insert_table_clustercolumn2.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/insert_table_compound_pk.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/insert_udt.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/list.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/list_all_perm.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/list_perm.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/list_roles.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/list_roles_nonrecursive.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/list_roles_of.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/list_select_perm.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/map.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/min_max.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/mv_table_def.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/mv_table_error.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/mv_table_from_base.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/no_revoke.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/query_allow_filtering.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/query_fail_allow_filtering.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/query_nofail_allow_filtering.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/rename_udt_field.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/revoke_perm.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/revoke_role.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/role_error.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/select_data2_backup.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/select_data_backup.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/select_range.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/select_statement.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/select_static_data.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/select_table_clustercolumn.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/select_table_compound_pk.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/set.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/spec_retry_values.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/sum.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/table_for_where.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/timeuuid_min_max.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/timeuuid_now.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/token.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/tuple.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/uda.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/udt.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/update_list.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/update_map.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/update_particular_list_element.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/update_set.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/update_statement.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/update_ttl_map.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/use_ks.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/where.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/where_fail.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/where_group_cluster_columns.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/where_in_tuple.cql create mode 100644 doc/source/modules/cassandra/examples/CQL/where_no_group_cluster_columns.cql create mode 100644 doc/source/modules/cassandra/examples/JAVA/udf_imports.java create mode 100644 doc/source/modules/cassandra/examples/JAVA/udfcontext.java create mode 100644 doc/source/modules/cassandra/examples/RESULTS/add_repo_keys.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/add_yum_repo.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/autoexpand_exclude_dc.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/autoexpand_ks.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/autoexpand_ks_override.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/cqlsh_localhost.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/find_backups.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/find_backups_table.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/find_two_snapshots.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/flush_and_check.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/flush_and_check2.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/insert_data2_backup.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/insert_table_cc_addl.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/java_verify.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/no_bups.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/nodetool_list_snapshots.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/nodetool_snapshot_help.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/select_data2_backup.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/select_data_backup.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/select_range.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/select_static_data.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/select_table_clustercolumn.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/select_table_compound_pk.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/snapshot_all.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/snapshot_backup2.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/snapshot_backup2_find.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/snapshot_files.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/snapshot_mult_ks.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/snapshot_mult_tables.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/snapshot_mult_tables_again.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/snapshot_one_table2.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/tail_syslog.result create mode 100644 doc/source/modules/cassandra/examples/RESULTS/verify_gpg.result create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/assassinate.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/bootstrap.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/cleanup.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/clearsnapshot.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/clientstats.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/compact.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/compactionhistory.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/compactionstats.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/decommission.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/describecluster.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/describering.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/disableauditlog.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/disableautocompaction.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/disablebackup.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/disablebinary.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/disablefullquerylog.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/disablegossip.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/disablehandoff.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/disablehintsfordc.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/disableoldprotocolversions.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/drain.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/enableauditlog.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/enableautocompaction.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/enablebackup.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/enablebinary.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/enablefullquerylog.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/enablegossip.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/enablehandoff.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/enablehintsfordc.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/enableoldprotocolversions.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/failuredetector.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/flush.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/garbagecollect.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/gcstats.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/getbatchlogreplaythrottle.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/getcompactionthreshold.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/getcompactionthroughput.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/getconcurrency.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/getconcurrentcompactors.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/getconcurrentviewbuilders.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/getendpoints.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/getinterdcstreamthroughput.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/getlogginglevels.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/getmaxhintwindow.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/getseeds.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/getsstables.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/getstreamthroughput.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/gettimeout.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/gettraceprobability.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/gossipinfo.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/help.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/import.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/info.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/invalidatecountercache.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/invalidatekeycache.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/invalidaterowcache.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/join.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/listsnapshots.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/move.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/netstats.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/pausehandoff.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/profileload.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/proxyhistograms.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/rangekeysample.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/rebuild.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/rebuild_index.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/refresh.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/refreshsizeestimates.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/reloadlocalschema.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/reloadseeds.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/reloadssl.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/reloadtriggers.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/relocatesstables.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/removenode.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/repair.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/repair_admin.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/replaybatchlog.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/resetfullquerylog.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/resetlocalschema.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/resumehandoff.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/ring.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/scrub.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/setbatchlogreplaythrottle.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/setcachecapacity.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/setcachekeystosave.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/setcompactionthreshold.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/setcompactionthroughput.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/setconcurrency.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/setconcurrentcompactors.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/setconcurrentviewbuilders.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/sethintedhandoffthrottlekb.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/setinterdcstreamthroughput.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/setlogginglevel.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/setmaxhintwindow.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/setstreamthroughput.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/settimeout.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/settraceprobability.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/sjk.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/snapshot.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/status.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/statusautocompaction.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/statusbackup.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/statusbinary.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/statusgossip.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/statushandoff.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/stop.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/stopdaemon.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/tablehistograms.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/tablestats.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/toppartitions.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/tpstats.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/truncatehints.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/upgradesstables.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/verify.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/version.txt create mode 100644 doc/source/modules/cassandra/examples/TEXT/NODETOOL/viewbuildstatus.txt rename doc/{ => source/modules/cassandra/examples/TEXT}/native_protocol_v3.spec (100%) rename doc/{ => source/modules/cassandra/examples/TEXT}/native_protocol_v4.spec (100%) rename doc/{ => source/modules/cassandra/examples/TEXT}/native_protocol_v5.spec (100%) create mode 100644 doc/source/modules/cassandra/examples/TEXT/tarball_install_dirs.txt create mode 100644 doc/source/modules/cassandra/examples/YAML/auto_snapshot.yaml create mode 100644 doc/source/modules/cassandra/examples/YAML/incremental_bups.yaml create mode 100644 doc/source/modules/cassandra/examples/YAML/snapshot_before_compaction.yaml create mode 100644 doc/source/modules/cassandra/examples/YAML/stress-example.yaml create mode 100644 doc/source/modules/cassandra/examples/YAML/stress-lwt-example.yaml create mode 100644 doc/source/modules/cassandra/nav.adoc create mode 100644 doc/source/modules/cassandra/pages/architecture/dynamo.adoc create mode 100644 doc/source/modules/cassandra/pages/architecture/guarantees.adoc create mode 100644 doc/source/modules/cassandra/pages/architecture/images/ring.svg create mode 100644 doc/source/modules/cassandra/pages/architecture/images/vnodes.svg create mode 100644 doc/source/modules/cassandra/pages/architecture/index.adoc create mode 100644 doc/source/modules/cassandra/pages/architecture/overview.adoc create mode 100644 doc/source/modules/cassandra/pages/architecture/snitch.adoc create mode 100644 doc/source/modules/cassandra/pages/architecture/storage_engine.adoc create mode 100644 doc/source/modules/cassandra/pages/configuration/cass_cl_archive_file.adoc create mode 100644 doc/source/modules/cassandra/pages/configuration/cass_env_sh_file.adoc create mode 100644 doc/source/modules/cassandra/pages/configuration/cass_jvm_options_file.adoc create mode 100644 doc/source/modules/cassandra/pages/configuration/cass_logback_xml_file.adoc create mode 100644 doc/source/modules/cassandra/pages/configuration/cass_rackdc_file.adoc create mode 100644 doc/source/modules/cassandra/pages/configuration/cass_topo_file.adoc create mode 100644 doc/source/modules/cassandra/pages/configuration/cass_yaml_file.adoc create mode 100644 doc/source/modules/cassandra/pages/configuration/index.adoc create mode 100644 doc/source/modules/cassandra/pages/cql/SASI.adoc create mode 100644 doc/source/modules/cassandra/pages/cql/appendices.adoc create mode 100644 doc/source/modules/cassandra/pages/cql/changes.adoc create mode 100644 doc/source/modules/cassandra/pages/cql/cql_singlefile.adoc create mode 100644 doc/source/modules/cassandra/pages/cql/ddl.adoc create mode 100644 doc/source/modules/cassandra/pages/cql/definitions.adoc create mode 100644 doc/source/modules/cassandra/pages/cql/dml.adoc create mode 100644 doc/source/modules/cassandra/pages/cql/functions.adoc create mode 100644 doc/source/modules/cassandra/pages/cql/index.adoc create mode 100644 doc/source/modules/cassandra/pages/cql/indexes.adoc create mode 100644 doc/source/modules/cassandra/pages/cql/json.adoc create mode 100644 doc/source/modules/cassandra/pages/cql/mvs.adoc create mode 100644 doc/source/modules/cassandra/pages/cql/operators.adoc create mode 100644 doc/source/modules/cassandra/pages/cql/security.adoc create mode 100644 doc/source/modules/cassandra/pages/cql/triggers.adoc create mode 100644 doc/source/modules/cassandra/pages/cql/types.adoc create mode 100644 doc/source/modules/cassandra/pages/data_modeling/data_modeling_conceptual.adoc create mode 100644 doc/source/modules/cassandra/pages/data_modeling/data_modeling_logical.adoc create mode 100644 doc/source/modules/cassandra/pages/data_modeling/data_modeling_physical.adoc create mode 100644 doc/source/modules/cassandra/pages/data_modeling/data_modeling_queries.adoc create mode 100644 doc/source/modules/cassandra/pages/data_modeling/data_modeling_rdbms.adoc create mode 100644 doc/source/modules/cassandra/pages/data_modeling/data_modeling_refining.adoc create mode 100644 doc/source/modules/cassandra/pages/data_modeling/data_modeling_schema.adoc create mode 100644 doc/source/modules/cassandra/pages/data_modeling/data_modeling_tools.adoc create mode 100644 doc/source/modules/cassandra/pages/data_modeling/images/Figure_1_data_model.jpg create mode 100644 doc/source/modules/cassandra/pages/data_modeling/images/Figure_2_data_model.jpg create mode 100755 doc/source/modules/cassandra/pages/data_modeling/images/data_modeling_chebotko_logical.png create mode 100644 doc/source/modules/cassandra/pages/data_modeling/images/data_modeling_chebotko_physical.png create mode 100644 doc/source/modules/cassandra/pages/data_modeling/images/data_modeling_hotel_bucketing.png create mode 100755 doc/source/modules/cassandra/pages/data_modeling/images/data_modeling_hotel_erd.png create mode 100755 doc/source/modules/cassandra/pages/data_modeling/images/data_modeling_hotel_logical.png create mode 100644 doc/source/modules/cassandra/pages/data_modeling/images/data_modeling_hotel_physical.png create mode 100755 doc/source/modules/cassandra/pages/data_modeling/images/data_modeling_hotel_queries.png create mode 100755 doc/source/modules/cassandra/pages/data_modeling/images/data_modeling_hotel_relational.png create mode 100755 doc/source/modules/cassandra/pages/data_modeling/images/data_modeling_reservation_logical.png create mode 100755 doc/source/modules/cassandra/pages/data_modeling/images/data_modeling_reservation_physical.png create mode 100644 doc/source/modules/cassandra/pages/data_modeling/index.adoc create mode 100644 doc/source/modules/cassandra/pages/data_modeling/intro.adoc create mode 100644 doc/source/modules/cassandra/pages/development/ci.adoc create mode 100644 doc/source/modules/cassandra/pages/development/code_style.adoc create mode 100644 doc/source/modules/cassandra/pages/development/dependencies.adoc create mode 100644 doc/source/modules/cassandra/pages/development/documentation.adoc create mode 100644 doc/source/modules/cassandra/pages/development/gettingstarted.adoc create mode 100644 doc/source/modules/cassandra/pages/development/how_to_commit.adoc create mode 100644 doc/source/modules/cassandra/pages/development/how_to_review.adoc create mode 100644 doc/source/modules/cassandra/pages/development/ide.adoc create mode 100644 doc/source/modules/cassandra/pages/development/images/docs_commit.png create mode 100644 doc/source/modules/cassandra/pages/development/images/docs_create_branch.png create mode 100644 doc/source/modules/cassandra/pages/development/images/docs_create_file.png create mode 100644 doc/source/modules/cassandra/pages/development/images/docs_editor.png create mode 100644 doc/source/modules/cassandra/pages/development/images/docs_fork.png create mode 100644 doc/source/modules/cassandra/pages/development/images/docs_pr.png create mode 100644 doc/source/modules/cassandra/pages/development/images/docs_preview.png create mode 100644 doc/source/modules/cassandra/pages/development/images/eclipse_debug0.png create mode 100644 doc/source/modules/cassandra/pages/development/images/eclipse_debug1.png create mode 100644 doc/source/modules/cassandra/pages/development/images/eclipse_debug2.png create mode 100644 doc/source/modules/cassandra/pages/development/images/eclipse_debug3.png create mode 100644 doc/source/modules/cassandra/pages/development/images/eclipse_debug4.png create mode 100644 doc/source/modules/cassandra/pages/development/images/eclipse_debug5.png create mode 100644 doc/source/modules/cassandra/pages/development/images/eclipse_debug6.png create mode 100644 doc/source/modules/cassandra/pages/development/index.adoc create mode 100644 doc/source/modules/cassandra/pages/development/patches.adoc create mode 100644 doc/source/modules/cassandra/pages/development/release_process.adoc create mode 100644 doc/source/modules/cassandra/pages/development/testing.adoc create mode 100644 doc/source/modules/cassandra/pages/faq/index.adoc create mode 100644 doc/source/modules/cassandra/pages/getting_started/configuring.adoc create mode 100644 doc/source/modules/cassandra/pages/getting_started/drivers.adoc create mode 100644 doc/source/modules/cassandra/pages/getting_started/index.adoc create mode 100644 doc/source/modules/cassandra/pages/getting_started/installing.adoc create mode 100644 doc/source/modules/cassandra/pages/getting_started/production.adoc create mode 100644 doc/source/modules/cassandra/pages/getting_started/querying.adoc create mode 100644 doc/source/modules/cassandra/pages/getting_started/quickstart.adoc create mode 100644 doc/source/modules/cassandra/pages/operating/audit_logging.adoc create mode 100644 doc/source/modules/cassandra/pages/operating/backups.adoc create mode 100644 doc/source/modules/cassandra/pages/operating/bloom_filters.adoc create mode 100644 doc/source/modules/cassandra/pages/operating/bulk_loading.adoc create mode 100644 doc/source/modules/cassandra/pages/operating/cdc.adoc create mode 100644 doc/source/modules/cassandra/pages/operating/compaction/index.adoc create mode 100644 doc/source/modules/cassandra/pages/operating/compaction/lcs.adoc create mode 100644 doc/source/modules/cassandra/pages/operating/compaction/stcs.adoc create mode 100644 doc/source/modules/cassandra/pages/operating/compaction/twcs.adoc create mode 100644 doc/source/modules/cassandra/pages/operating/compression.adoc create mode 100644 doc/source/modules/cassandra/pages/operating/hardware.adoc create mode 100644 doc/source/modules/cassandra/pages/operating/hints.adoc create mode 100644 doc/source/modules/cassandra/pages/operating/index.adoc create mode 100644 doc/source/modules/cassandra/pages/operating/metrics.adoc create mode 100644 doc/source/modules/cassandra/pages/operating/read_repair.adoc create mode 100644 doc/source/modules/cassandra/pages/operating/repair.adoc create mode 100644 doc/source/modules/cassandra/pages/operating/security.adoc create mode 100644 doc/source/modules/cassandra/pages/operating/topo_changes.adoc create mode 100644 doc/source/modules/cassandra/pages/plugins/index.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/cassandra_stress.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/cqlsh.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/index.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/assassinate.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/bootstrap.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/cleanup.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/clearsnapshot.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/clientstats.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/compact.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/compactionhistory.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/compactionstats.adoc create mode 100755 doc/source/modules/cassandra/pages/tools/nodetool/convert.sh create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/decommission.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/describecluster.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/describering.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/disableauditlog.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/disableautocompaction.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/disablebackup.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/disablebinary.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/disablefullquerylog.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/disablegossip.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/disablehandoff.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/disablehintsfordc.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/disableoldprotocolversions.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/drain.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/enableauditlog.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/enableautocompaction.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/enablebackup.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/enablebinary.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/enablefullquerylog.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/enablegossip.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/enablehandoff.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/enablehintsfordc.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/enableoldprotocolversions.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/failuredetector.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/flush.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/garbagecollect.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/gcstats.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/getbatchlogreplaythrottle.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/getcompactionthreshold.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/getcompactionthroughput.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/getconcurrency.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/getconcurrentcompactors.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/getconcurrentviewbuilders.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/getendpoints.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/getinterdcstreamthroughput.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/getlogginglevels.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/getmaxhintwindow.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/getseeds.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/getsstables.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/getstreamthroughput.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/gettimeout.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/gettraceprobability.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/gossipinfo.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/help.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/import.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/info.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/invalidatecountercache.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/invalidatekeycache.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/invalidaterowcache.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/join.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/listsnapshots.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/move.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/netstats.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/nodetool.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/nodetool.txt create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/pausehandoff.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/profileload.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/proxyhistograms.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/rangekeysample.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/rebuild.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/rebuild_index.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/refresh.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/refreshsizeestimates.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/reloadlocalschema.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/reloadseeds.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/reloadssl.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/reloadtriggers.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/relocatesstables.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/removenode.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/repair.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/repair_admin.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/replaybatchlog.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/resetfullquerylog.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/resetlocalschema.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/resumehandoff.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/ring.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/scrub.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/setbatchlogreplaythrottle.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/setcachecapacity.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/setcachekeystosave.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/setcompactionthreshold.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/setcompactionthroughput.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/setconcurrency.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/setconcurrentcompactors.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/setconcurrentviewbuilders.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/sethintedhandoffthrottlekb.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/setinterdcstreamthroughput.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/setlogginglevel.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/setmaxhintwindow.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/setstreamthroughput.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/settimeout.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/settraceprobability.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/sjk.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/snapshot.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/status.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/statusautocompaction.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/statusbackup.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/statusbinary.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/statusgossip.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/statushandoff.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/stop.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/stopdaemon.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/tablehistograms.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/tablestats.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/toppartitions.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/tpstats.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/truncatehints.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/upgradesstables.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/verify.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/version.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/nodetool/viewbuildstatus.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/sstable/index.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/sstable/sstabledump.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/sstable/sstableexpiredblockers.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/sstable/sstablelevelreset.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/sstable/sstableloader.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/sstable/sstablemetadata.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/sstable/sstableofflinerelevel.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/sstable/sstablerepairedset.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/sstable/sstablescrub.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/sstable/sstablesplit.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/sstable/sstableupgrade.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/sstable/sstableutil.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/sstable/sstableverify.adoc create mode 100644 doc/source/modules/cassandra/pages/tools/stress-example.yaml create mode 100644 doc/source/modules/cassandra/pages/tools/stress-lwt-example.yaml create mode 100644 doc/source/modules/cassandra/pages/troubleshooting/finding_nodes.adoc create mode 100644 doc/source/modules/cassandra/pages/troubleshooting/index.adoc create mode 100644 doc/source/modules/cassandra/pages/troubleshooting/reading_logs.adoc create mode 100644 doc/source/modules/cassandra/pages/troubleshooting/use_nodetool.adoc create mode 100644 doc/source/modules/cassandra/pages/troubleshooting/use_tools.adoc create mode 100644 doc/source/modules/cassandra/partials/java_version.adoc create mode 100644 doc/source/modules/cassandra/partials/nodetool_and_cqlsh.adoc create mode 100644 doc/source/modules/cassandra/partials/nodetool_and_cqlsh_nobin.adoc create mode 100644 doc/source/modules/cassandra/partials/package_versions.adoc create mode 100644 doc/source/modules/cassandra/partials/tail_syslog.adoc delete mode 100644 doc/source/operating/backups.rst delete mode 100644 doc/source/operating/bloom_filters.rst delete mode 100644 doc/source/operating/bulk_loading.rst delete mode 100644 doc/source/operating/cdc.rst delete mode 100644 doc/source/operating/compaction.rst delete mode 100644 doc/source/operating/compression.rst delete mode 100644 doc/source/operating/error_codes.txt delete mode 100644 doc/source/operating/hardware.rst delete mode 100644 doc/source/operating/hints.rst delete mode 100644 doc/source/operating/index.rst delete mode 100644 doc/source/operating/metrics.rst delete mode 100644 doc/source/operating/read_repair.rst delete mode 100644 doc/source/operating/repair.rst delete mode 100644 doc/source/operating/security.rst delete mode 100644 doc/source/operating/snitch.rst delete mode 100644 doc/source/operating/topo_changes.rst delete mode 100644 doc/source/tools/cqlsh.rst delete mode 100644 doc/source/tools/index.rst delete mode 100644 doc/source/tools/nodetool.rst delete mode 100644 doc/source/troubleshooting/index.rst diff --git a/doc/Makefile b/doc/Makefile index c6632a573c5c..f7dfcfee1d3a 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -1,23 +1,18 @@ -# Makefile for Sphinx documentation +# Makefile for Antora documentation # # You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = build +ANTORAOPTS = DOCSEARCH_ENABLED=true DOCSEARCH_ENGINE=lunr DOCSEARCH_INDEX_VERSION=latest +ANTORAYAML = site.yml +ANTORACMD = antora # Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source +BUILDDIR = build YAML_DOC_INPUT=../conf/cassandra.yaml -YAML_DOC_OUTPUT=source/configuration/cassandra_config_file.rst +YAML_DOC_OUTPUT=source/modules/cassandra/pages/configuration/cass_yaml_file.adoc -MAKE_CASSANDRA_YAML = python convert_yaml_to_rst.py $(YAML_DOC_INPUT) $(YAML_DOC_OUTPUT) +MAKE_CASSANDRA_YAML = python convert_yaml_to_adoc.py $(YAML_DOC_INPUT) $(YAML_DOC_OUTPUT) WEB_SITE_PRESENCE_FILE='source/.build_for_website' @@ -26,27 +21,6 @@ help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " website to make HTML files for the Cassandra website" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " applehelp to make an Apple Help Book" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " epub3 to make an epub3" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " xml to make Docutils-native XML files" - @echo " pseudoxml to make pseudoxml-XML files for display purposes" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" @echo " coverage to run coverage check of the documentation (if enabled)" @@ -57,10 +31,15 @@ clean: rm -rf $(BUILDDIR)/* rm -f $(YAML_DOC_OUTPUT) +.PHONY: gennodetool +gennodetool: + $(GENERATE_NODETOOL_DOCS) + .PHONY: html html: $(MAKE_CASSANDRA_YAML) - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html +# $(GENERATE_NODETOOL_DOCS) + $(ANTORAOPTS) $(ANTORACMD) --generator antora-site-generator-lunr $(ANTORAYAML) @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." @@ -68,201 +47,7 @@ html: website: clean @touch $(WEB_SITE_PRESENCE_FILE) $(MAKE_CASSANDRA_YAML) - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + $(ANTORAOPTS) $(ANTORACMD) $(ANTORAYAML) @rm $(WEB_SITE_PRESENCE_FILE) @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -.PHONY: dirhtml -dirhtml: - $(MAKE_CASSANDRA_YAML) - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -.PHONY: singlehtml -singlehtml: - $(MAKE_CASSANDRA_YAML) - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -.PHONY: pickle -pickle: - $(MAKE_CASSANDRA_YAML) - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -.PHONY: json -json: - $(MAKE_CASSANDRA_YAML) - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -.PHONY: htmlhelp -htmlhelp: - $(MAKE_CASSANDRA_YAML) - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -.PHONY: qthelp -qthelp: - $(MAKE_CASSANDRA_YAML) - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/ApacheCassandraDocumentation.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/ApacheCassandraDocumentation.qhc" - -.PHONY: applehelp -applehelp: - $(MAKE_CASSANDRA_YAML) - $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp - @echo - @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." - @echo "N.B. You won't be able to view it unless you put it in" \ - "~/Library/Documentation/Help or install it in your application" \ - "bundle." - -.PHONY: devhelp -devhelp: - $(MAKE_CASSANDRA_YAML) - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/ApacheCassandraDocumentation" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/ApacheCassandraDocumentation" - @echo "# devhelp" - -.PHONY: epub -epub: - $(MAKE_CASSANDRA_YAML) - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -.PHONY: epub3 -epub3: - $(MAKE_CASSANDRA_YAML) - $(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3 - @echo - @echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3." - -.PHONY: latex -latex: - $(MAKE_CASSANDRA_YAML) - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -.PHONY: latexpdf -latexpdf: - $(MAKE_CASSANDRA_YAML) - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -.PHONY: latexpdfja -latexpdfja: - $(MAKE_CASSANDRA_YAML) - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through platex and dvipdfmx..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -.PHONY: text -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -.PHONY: man -man: - $(MAKE_CASSANDRA_YAML) - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -.PHONY: texinfo -texinfo: - $(MAKE_CASSANDRA_YAML) - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -.PHONY: info -info: - $(MAKE_CASSANDRA_YAML) - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -.PHONY: gettext -gettext: - $(MAKE_CASSANDRA_YAML) - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -.PHONY: changes -changes: - $(MAKE_CASSANDRA_YAML) - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -.PHONY: linkcheck -linkcheck: - $(MAKE_CASSANDRA_YAML) - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -.PHONY: doctest -doctest: - $(MAKE_CASSANDRA_YAML) - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." - -.PHONY: coverage -coverage: - $(MAKE_CASSANDRA_YAML) - $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage - @echo "Testing of coverage in the sources finished, look at the " \ - "results in $(BUILDDIR)/coverage/python.txt." - -.PHONY: xml -xml: - $(MAKE_CASSANDRA_YAML) - $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml - @echo - @echo "Build finished. The XML files are in $(BUILDDIR)/xml." - -.PHONY: pseudoxml -pseudoxml: - $(MAKE_CASSANDRA_YAML) - $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml - @echo - @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." - -.PHONY: dummy -dummy: - $(MAKE_CASSANDRA_YAML) - $(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy - @echo - @echo "Build finished. Dummy builder generates no files." diff --git a/doc/README.md b/doc/README.md index 931db7d8b6d7..e55727983d06 100644 --- a/doc/README.md +++ b/doc/README.md @@ -23,7 +23,7 @@ Apache Cassandra documentation directory This directory contains the documentation maintained in-tree for Apache Cassandra. This directory contains the following documents: -- The source of the official Cassandra documentation, in the `source/` +- The source of the official Cassandra documentation, in the `source/modules` subdirectory. See below for more details on how to edit/build that documentation. - The specification(s) for the supported versions of native transport protocol. @@ -36,16 +36,38 @@ Official documentation ---------------------- The source for the official documentation for Apache Cassandra can be found in -the `source` subdirectory. The documentation uses [sphinx](http://www.sphinx-doc.org/) -and is thus written in [reStructuredText](http://docutils.sourceforge.net/rst.html). +the `source` subdirectory. The documentation uses [antora](http://www.antora.org/) +and is thus written in [asciidoc](http://asciidoc.org). + +To build the HTML documentation, you will need to first install antora and the +[Apache Cassandra theme](https://???). To add search, [lunr](https://lunrjs.com) must be installed. -To build the HTML documentation, you will need to first install sphinx and the -[sphinx ReadTheDocs theme](the https://pypi.python.org/pypi/sphinx_rtd_theme), which -on unix you can do with: ``` -pip install sphinx sphinx_rtd_theme +npm i -g @antora/cli @antora/site-generator-default +npm install lunr ``` The documentation can then be built from this directory by calling `make html` -(or `make.bat html` on windows). Alternatively, the top-level `ant gen-doc` -target can be used. +Alternatively, the top-level `ant gen-doc` target can be used. + +To build the documentation with Docker Compose, run: + +```bash +cd ./doc + +# build the Docker image +docker-compose build build-docs + +# build the documentation +docker-compose run build-docs +``` + +To regenerate the documentation from scratch, run: + +```bash +# return to the root directory of the Cassandra project +cd .. + +# remove all generated documentation files based on the source code +ant realclean +``` diff --git a/doc/SASI.md b/doc/SASI.md deleted file mode 100644 index a2fa7176286a..000000000000 --- a/doc/SASI.md +++ /dev/null @@ -1,798 +0,0 @@ - - -# SASIIndex - -[`SASIIndex`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/SASIIndex.java), -or "SASI" for short, is an implementation of Cassandra's -`Index` interface that can be used as an alternative to the -existing implementations. SASI's indexing and querying improves on -existing implementations by tailoring it specifically to Cassandra's -needs. SASI has superior performance in cases where queries would -previously require filtering. In achieving this performance, SASI aims -to be significantly less resource intensive than existing -implementations, in memory, disk, and CPU usage. In addition, SASI -supports prefix and contains queries on strings (similar to SQL's -`LIKE = "foo*"` or `LIKE = "*foo*"'`). - -The following goes on describe how to get up and running with SASI, -demonstrates usage with examples, and provides some details on its -implementation. - -## Using SASI - -The examples below walk through creating a table and indexes on its -columns, and performing queries on some inserted data. The patchset in -this repository includes support for the Thrift and CQL3 interfaces. - -The examples below assume the `demo` keyspace has been created and is -in use. - -``` -cqlsh> CREATE KEYSPACE demo WITH replication = { - ... 'class': 'SimpleStrategy', - ... 'replication_factor': '1' - ... }; -cqlsh> USE demo; -``` - -All examples are performed on the `sasi` table: - -``` -cqlsh:demo> CREATE TABLE sasi (id uuid, first_name text, last_name text, - ... age int, height int, created_at bigint, primary key (id)); -``` - -#### Creating Indexes - -To create SASI indexes use CQLs `CREATE CUSTOM INDEX` statement: - -``` -cqlsh:demo> CREATE CUSTOM INDEX ON sasi (first_name) USING 'org.apache.cassandra.index.sasi.SASIIndex' - ... WITH OPTIONS = { - ... 'analyzer_class': - ... 'org.apache.cassandra.index.sasi.analyzer.NonTokenizingAnalyzer', - ... 'case_sensitive': 'false' - ... }; - -cqlsh:demo> CREATE CUSTOM INDEX ON sasi (last_name) USING 'org.apache.cassandra.index.sasi.SASIIndex' - ... WITH OPTIONS = {'mode': 'CONTAINS'}; - -cqlsh:demo> CREATE CUSTOM INDEX ON sasi (age) USING 'org.apache.cassandra.index.sasi.SASIIndex'; - -cqlsh:demo> CREATE CUSTOM INDEX ON sasi (created_at) USING 'org.apache.cassandra.index.sasi.SASIIndex' - ... WITH OPTIONS = {'mode': 'SPARSE'}; -``` - -The indexes created have some options specified that customize their -behaviour and potentially performance. The index on `first_name` is -case-insensitive. The analyzers are discussed more in a subsequent -example. The `NonTokenizingAnalyzer` performs no analysis on the -text. Each index has a mode: `PREFIX`, `CONTAINS`, or `SPARSE`, the -first being the default. The `last_name` index is created with the -mode `CONTAINS` which matches terms on suffixes instead of prefix -only. Examples of this are available below and more detail can be -found in the section on -[OnDiskIndex](#ondiskindexbuilder).The -`created_at` column is created with its mode set to `SPARSE`, which is -meant to improve performance of querying large, dense number ranges -like timestamps for data inserted every millisecond. Details of the -`SPARSE` implementation can also be found in the section on the -[OnDiskIndex](#ondiskindexbuilder). The `age` -index is created with the default `PREFIX` mode and no -case-sensitivity or text analysis options are specified since the -field is numeric. - -After inserting the following data and performing a `nodetool flush`, -SASI performing index flushes to disk can be seen in Cassandra's logs --- although the direct call to flush is not required (see -[IndexMemtable](#indexmemtable) for more details). - -``` -cqlsh:demo> INSERT INTO sasi (id, first_name, last_name, age, height, created_at) - ... VALUES (556ebd54-cbe5-4b75-9aae-bf2a31a24500, 'Pavel', 'Yaskevich', 27, 181, 1442959315018); - -cqlsh:demo> INSERT INTO sasi (id, first_name, last_name, age, height, created_at) - ... VALUES (5770382a-c56f-4f3f-b755-450e24d55217, 'Jordan', 'West', 26, 173, 1442959315019); - -cqlsh:demo> INSERT INTO sasi (id, first_name, last_name, age, height, created_at) - ... VALUES (96053844-45c3-4f15-b1b7-b02c441d3ee1, 'Mikhail', 'Stepura', 36, 173, 1442959315020); - -cqlsh:demo> INSERT INTO sasi (id, first_name, last_name, age, height, created_at) - ... VALUES (f5dfcabe-de96-4148-9b80-a1c41ed276b4, 'Michael', 'Kjellman', 26, 180, 1442959315021); - -cqlsh:demo> INSERT INTO sasi (id, first_name, last_name, age, height, created_at) - ... VALUES (2970da43-e070-41a8-8bcb-35df7a0e608a, 'Johnny', 'Zhang', 32, 175, 1442959315022); - -cqlsh:demo> INSERT INTO sasi (id, first_name, last_name, age, height, created_at) - ... VALUES (6b757016-631d-4fdb-ac62-40b127ccfbc7, 'Jason', 'Brown', 40, 182, 1442959315023); - -cqlsh:demo> INSERT INTO sasi (id, first_name, last_name, age, height, created_at) - ... VALUES (8f909e8a-008e-49dd-8d43-1b0df348ed44, 'Vijay', 'Parthasarathy', 34, 183, 1442959315024); - -cqlsh:demo> SELECT first_name, last_name, age, height, created_at FROM sasi; - - first_name | last_name | age | height | created_at -------------+---------------+-----+--------+--------------- - Michael | Kjellman | 26 | 180 | 1442959315021 - Mikhail | Stepura | 36 | 173 | 1442959315020 - Jason | Brown | 40 | 182 | 1442959315023 - Pavel | Yaskevich | 27 | 181 | 1442959315018 - Vijay | Parthasarathy | 34 | 183 | 1442959315024 - Jordan | West | 26 | 173 | 1442959315019 - Johnny | Zhang | 32 | 175 | 1442959315022 - -(7 rows) -``` - -#### Equality & Prefix Queries - -SASI supports all queries already supported by CQL, including LIKE statement -for PREFIX, CONTAINS and SUFFIX searches. - -``` -cqlsh:demo> SELECT first_name, last_name, age, height, created_at FROM sasi - ... WHERE first_name = 'Pavel'; - - first_name | last_name | age | height | created_at --------------+-----------+-----+--------+--------------- - Pavel | Yaskevich | 27 | 181 | 1442959315018 - -(1 rows) -``` - -``` -cqlsh:demo> SELECT first_name, last_name, age, height, created_at FROM sasi - ... WHERE first_name = 'pavel'; - - first_name | last_name | age | height | created_at --------------+-----------+-----+--------+--------------- - Pavel | Yaskevich | 27 | 181 | 1442959315018 - -(1 rows) -``` - -``` -cqlsh:demo> SELECT first_name, last_name, age, height, created_at FROM sasi - ... WHERE first_name LIKE 'M%'; - - first_name | last_name | age | height | created_at -------------+-----------+-----+--------+--------------- - Michael | Kjellman | 26 | 180 | 1442959315021 - Mikhail | Stepura | 36 | 173 | 1442959315020 - -(2 rows) -``` - -Of course, the case of the query does not matter for the `first_name` -column because of the options provided at index creation time. - -``` -cqlsh:demo> SELECT first_name, last_name, age, height, created_at FROM sasi - ... WHERE first_name LIKE 'm%'; - - first_name | last_name | age | height | created_at -------------+-----------+-----+--------+--------------- - Michael | Kjellman | 26 | 180 | 1442959315021 - Mikhail | Stepura | 36 | 173 | 1442959315020 - -(2 rows) -``` - -#### Compound Queries - -SASI supports queries with multiple predicates, however, due to the -nature of the default indexing implementation, CQL requires the user -to specify `ALLOW FILTERING` to opt-in to the potential performance -pitfalls of such a query. With SASI, while the requirement to include -`ALLOW FILTERING` remains, to reduce modifications to the grammar, the -performance pitfalls do not exist because filtering is not -performed. Details on how SASI joins data from multiple predicates is -available below in the -[Implementation Details](#implementation-details) -section. - -``` -cqlsh:demo> SELECT first_name, last_name, age, height, created_at FROM sasi - ... WHERE first_name LIKE 'M%' and age < 30 ALLOW FILTERING; - - first_name | last_name | age | height | created_at -------------+-----------+-----+--------+--------------- - Michael | Kjellman | 26 | 180 | 1442959315021 - -(1 rows) -``` - -#### Suffix Queries - -The next example demonstrates `CONTAINS` mode on the `last_name` -column. By using this mode predicates can search for any strings -containing the search string as a sub-string. In this case the strings -containing "a" or "an". - -``` -cqlsh:demo> SELECT * FROM sasi WHERE last_name LIKE '%a%'; - - id | age | created_at | first_name | height | last_name ---------------------------------------+-----+---------------+------------+--------+--------------- - f5dfcabe-de96-4148-9b80-a1c41ed276b4 | 26 | 1442959315021 | Michael | 180 | Kjellman - 96053844-45c3-4f15-b1b7-b02c441d3ee1 | 36 | 1442959315020 | Mikhail | 173 | Stepura - 556ebd54-cbe5-4b75-9aae-bf2a31a24500 | 27 | 1442959315018 | Pavel | 181 | Yaskevich - 8f909e8a-008e-49dd-8d43-1b0df348ed44 | 34 | 1442959315024 | Vijay | 183 | Parthasarathy - 2970da43-e070-41a8-8bcb-35df7a0e608a | 32 | 1442959315022 | Johnny | 175 | Zhang - -(5 rows) - -cqlsh:demo> SELECT * FROM sasi WHERE last_name LIKE '%an%'; - - id | age | created_at | first_name | height | last_name ---------------------------------------+-----+---------------+------------+--------+----------- - f5dfcabe-de96-4148-9b80-a1c41ed276b4 | 26 | 1442959315021 | Michael | 180 | Kjellman - 2970da43-e070-41a8-8bcb-35df7a0e608a | 32 | 1442959315022 | Johnny | 175 | Zhang - -(2 rows) -``` - -#### Expressions on Non-Indexed Columns - -SASI also supports filtering on non-indexed columns like `height`. The -expression can only narrow down an existing query using `AND`. - -``` -cqlsh:demo> SELECT * FROM sasi WHERE last_name LIKE '%a%' AND height >= 175 ALLOW FILTERING; - - id | age | created_at | first_name | height | last_name ---------------------------------------+-----+---------------+------------+--------+--------------- - f5dfcabe-de96-4148-9b80-a1c41ed276b4 | 26 | 1442959315021 | Michael | 180 | Kjellman - 556ebd54-cbe5-4b75-9aae-bf2a31a24500 | 27 | 1442959315018 | Pavel | 181 | Yaskevich - 8f909e8a-008e-49dd-8d43-1b0df348ed44 | 34 | 1442959315024 | Vijay | 183 | Parthasarathy - 2970da43-e070-41a8-8bcb-35df7a0e608a | 32 | 1442959315022 | Johnny | 175 | Zhang - -(4 rows) -``` - -#### Text Analysis (Tokenization and Stemming) - -Lastly, to demonstrate text analysis an additional column is needed on -the table. Its definition, index, and statements to update rows are shown below. - -``` -cqlsh:demo> ALTER TABLE sasi ADD bio text; -cqlsh:demo> CREATE CUSTOM INDEX ON sasi (bio) USING 'org.apache.cassandra.index.sasi.SASIIndex' - ... WITH OPTIONS = { - ... 'analyzer_class': 'org.apache.cassandra.index.sasi.analyzer.StandardAnalyzer', - ... 'tokenization_enable_stemming': 'true', - ... 'analyzed': 'true', - ... 'tokenization_normalize_lowercase': 'true', - ... 'tokenization_locale': 'en' - ... }; -cqlsh:demo> UPDATE sasi SET bio = 'Software Engineer, who likes distributed systems, doesnt like to argue.' WHERE id = 5770382a-c56f-4f3f-b755-450e24d55217; -cqlsh:demo> UPDATE sasi SET bio = 'Software Engineer, works on the freight distribution at nights and likes arguing' WHERE id = 556ebd54-cbe5-4b75-9aae-bf2a31a24500; -cqlsh:demo> SELECT * FROM sasi; - - id | age | bio | created_at | first_name | height | last_name ---------------------------------------+-----+----------------------------------------------------------------------------------+---------------+------------+--------+--------------- - f5dfcabe-de96-4148-9b80-a1c41ed276b4 | 26 | null | 1442959315021 | Michael | 180 | Kjellman - 96053844-45c3-4f15-b1b7-b02c441d3ee1 | 36 | null | 1442959315020 | Mikhail | 173 | Stepura - 6b757016-631d-4fdb-ac62-40b127ccfbc7 | 40 | null | 1442959315023 | Jason | 182 | Brown - 556ebd54-cbe5-4b75-9aae-bf2a31a24500 | 27 | Software Engineer, works on the freight distribution at nights and likes arguing | 1442959315018 | Pavel | 181 | Yaskevich - 8f909e8a-008e-49dd-8d43-1b0df348ed44 | 34 | null | 1442959315024 | Vijay | 183 | Parthasarathy - 5770382a-c56f-4f3f-b755-450e24d55217 | 26 | Software Engineer, who likes distributed systems, doesnt like to argue. | 1442959315019 | Jordan | 173 | West - 2970da43-e070-41a8-8bcb-35df7a0e608a | 32 | null | 1442959315022 | Johnny | 175 | Zhang - -(7 rows) -``` - -Index terms and query search strings are stemmed for the `bio` column -because it was configured to use the -[`StandardAnalyzer`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/analyzer/StandardAnalyzer.java) -and `analyzed` is set to `true`. The -`tokenization_normalize_lowercase` is similar to the `case_sensitive` -property but for the -[`StandardAnalyzer`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/analyzer/StandardAnalyzer.java). These -query demonstrates the stemming applied by [`StandardAnalyzer`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/analyzer/StandardAnalyzer.java). - -``` -cqlsh:demo> SELECT * FROM sasi WHERE bio LIKE 'distributing'; - - id | age | bio | created_at | first_name | height | last_name ---------------------------------------+-----+----------------------------------------------------------------------------------+---------------+------------+--------+----------- - 556ebd54-cbe5-4b75-9aae-bf2a31a24500 | 27 | Software Engineer, works on the freight distribution at nights and likes arguing | 1442959315018 | Pavel | 181 | Yaskevich - 5770382a-c56f-4f3f-b755-450e24d55217 | 26 | Software Engineer, who likes distributed systems, doesnt like to argue. | 1442959315019 | Jordan | 173 | West - -(2 rows) - -cqlsh:demo> SELECT * FROM sasi WHERE bio LIKE 'they argued'; - - id | age | bio | created_at | first_name | height | last_name ---------------------------------------+-----+----------------------------------------------------------------------------------+---------------+------------+--------+----------- - 556ebd54-cbe5-4b75-9aae-bf2a31a24500 | 27 | Software Engineer, works on the freight distribution at nights and likes arguing | 1442959315018 | Pavel | 181 | Yaskevich - 5770382a-c56f-4f3f-b755-450e24d55217 | 26 | Software Engineer, who likes distributed systems, doesnt like to argue. | 1442959315019 | Jordan | 173 | West - -(2 rows) - -cqlsh:demo> SELECT * FROM sasi WHERE bio LIKE 'working at the company'; - - id | age | bio | created_at | first_name | height | last_name ---------------------------------------+-----+----------------------------------------------------------------------------------+---------------+------------+--------+----------- - 556ebd54-cbe5-4b75-9aae-bf2a31a24500 | 27 | Software Engineer, works on the freight distribution at nights and likes arguing | 1442959315018 | Pavel | 181 | Yaskevich - -(1 rows) - -cqlsh:demo> SELECT * FROM sasi WHERE bio LIKE 'soft eng'; - - id | age | bio | created_at | first_name | height | last_name ---------------------------------------+-----+----------------------------------------------------------------------------------+---------------+------------+--------+----------- - 556ebd54-cbe5-4b75-9aae-bf2a31a24500 | 27 | Software Engineer, works on the freight distribution at nights and likes arguing | 1442959315018 | Pavel | 181 | Yaskevich - 5770382a-c56f-4f3f-b755-450e24d55217 | 26 | Software Engineer, who likes distributed systems, doesnt like to argue. | 1442959315019 | Jordan | 173 | West - -(2 rows) -``` - -## Implementation Details - -While SASI, at the surface, is simply an implementation of the -`Index` interface, at its core there are several data -structures and algorithms used to satisfy it. These are described -here. Additionally, the changes internal to Cassandra to support SASIs -integration are described. - -The `Index` interface divides responsibility of the -implementer into two parts: Indexing and Querying. Further, Cassandra -makes it possible to divide those responsibilities into the memory and -disk components. SASI takes advantage of Cassandra's write-once, -immutable, ordered data model to build indexes along with the flushing -of the memtable to disk -- this is the origin of the name "SSTable -Attached Secondary Index". - -The SASI index data structures are built in memory as the SSTable is -being written and they are flushed to disk before the writing of the -SSTable completes. The writing of each index file only requires -sequential writes to disk. In some cases, partial flushes are -performed, and later stitched back together, to reduce memory -usage. These data structures are optimized for this use case. - -Taking advantage of Cassandra's ordered data model, at query time, -candidate indexes are narrowed down for searching minimize the amount -of work done. Searching is then performed using an efficient method -that streams data off disk as needed. - -### Indexing - -Per SSTable, SASI writes an index file for each indexed column. The -data for these files is built in memory using the -[`OnDiskIndexBuilder`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/disk/OnDiskIndexBuilder.java). Once -flushed to disk, the data is read using the -[`OnDiskIndex`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/disk/OnDiskIndex.java) -class. These are composed of bytes representing indexed terms, -organized for efficient writing or searching respectively. The keys -and values they hold represent tokens and positions in an SSTable and -these are stored per-indexed term in -[`TokenTreeBuilder`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/disk/TokenTreeBuilder.java)s -for writing, and -[`TokenTree`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/disk/TokenTree.java)s -for querying. These index files are memory mapped after being written -to disk, for quicker access. For indexing data in the memtable SASI -uses its -[`IndexMemtable`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/memory/IndexMemtable.java) -class. - -#### OnDiskIndex(Builder) - -Each -[`OnDiskIndex`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/disk/OnDiskIndex.java) -is an instance of a modified -[Suffix Array](https://en.wikipedia.org/wiki/Suffix_array) data -structure. The -[`OnDiskIndex`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/disk/OnDiskIndex.java) -is comprised of page-size blocks of sorted terms and pointers to the -terms' associated data, as well as the data itself, stored also in one -or more page-sized blocks. The -[`OnDiskIndex`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/disk/OnDiskIndex.java) -is structured as a tree of arrays, where each level describes the -terms in the level below, the final level being the terms -themselves. The `PointerLevel`s and their `PointerBlock`s contain -terms and pointers to other blocks that *end* with those terms. The -`DataLevel`, the final level, and its `DataBlock`s contain terms and -point to the data itself, contained in [`TokenTree`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/disk/TokenTree.java)s. - -The terms written to the -[`OnDiskIndex`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/disk/OnDiskIndex.java) -vary depending on its "mode": either `PREFIX`, `CONTAINS`, or -`SPARSE`. In the `PREFIX` and `SPARSE` cases terms exact values are -written exactly once per `OnDiskIndex`. For example, a `PREFIX` index -with terms `Jason`, `Jordan`, `Pavel`, all three will be included in -the index. A `CONTAINS` index writes additional terms for each suffix of -each term recursively. Continuing with the example, a `CONTAINS` index -storing the previous terms would also store `ason`, `ordan`, `avel`, -`son`, `rdan`, `vel`, etc. This allows for queries on the suffix of -strings. The `SPARSE` mode differs from `PREFIX` in that for every 64 -blocks of terms a -[`TokenTree`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/disk/TokenTree.java) -is built merging all the -[`TokenTree`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/disk/TokenTree.java)s -for each term into a single one. This copy of the data is used for -efficient iteration of large ranges of e.g. timestamps. The index -"mode" is configurable per column at index creation time. - -#### TokenTree(Builder) - -The -[`TokenTree`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/disk/TokenTree.java) -is an implementation of the well-known -[B+-tree](https://en.wikipedia.org/wiki/B%2B_tree) that has been -modified to optimize for its use-case. In particular, it has been -optimized to associate tokens, longs, with a set of positions in an -SSTable, also longs. Allowing the set of long values accommodates -the possibility of a hash collision in the token, but the data -structure is optimized for the unlikely possibility of such a -collision. - -To optimize for its write-once environment the -[`TokenTreeBuilder`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/disk/TokenTreeBuilder.java) -completely loads its interior nodes as the tree is built and it uses -the well-known algorithm optimized for bulk-loading the data -structure. - -[`TokenTree`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/disk/TokenTree.java)s provide the means to iterate a tokens, and file -positions, that match a given term, and to skip forward in that -iteration, an operation used heavily at query time. - -#### IndexMemtable - -The -[`IndexMemtable`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/memory/IndexMemtable.java) -handles indexing the in-memory data held in the memtable. The -[`IndexMemtable`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/memory/IndexMemtable.java) -in turn manages either a -[`TrieMemIndex`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/memory/TrieMemIndex.java) -or a -[`SkipListMemIndex`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/memory/SkipListMemIndex.java) -per-column. The choice of which index type is used is data -dependent. The -[`TrieMemIndex`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/memory/TrieMemIndex.java) -is used for literal types. `AsciiType` and `UTF8Type` are literal -types by defualt but any column can be configured as a literal type -using the `is_literal` option at index creation time. For non-literal -types the -[`SkipListMemIndex`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/memory/SkipListMemIndex.java) -is used. The -[`TrieMemIndex`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/memory/TrieMemIndex.java) -is an implementation that can efficiently support prefix queries on -character-like data. The -[`SkipListMemIndex`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/memory/SkipListMemIndex.java), -conversely, is better suited for Cassandra other data types like -numbers. - -The -[`TrieMemIndex`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/memory/TrieMemIndex.java) -is built using either the `ConcurrentRadixTree` or -`ConcurrentSuffixTree` from the `com.goooglecode.concurrenttrees` -package. The choice between the two is made based on the indexing -mode, `PREFIX` or other modes, and `CONTAINS` mode, respectively. - -The -[`SkipListMemIndex`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/memory/SkipListMemIndex.java) -is built on top of `java.util.concurrent.ConcurrentSkipListSet`. - -### Querying - -Responsible for converting the internal `IndexExpression` -representation into SASI's -[`Operation`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/Operation.java) -and -[`Expression`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/Expression.java) -tree, optimizing the tree to reduce the amount of work done, and -driving the query itself the -[`QueryPlan`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/QueryPlan.java) -is the work horse of SASI's querying implementation. To efficiently -perform union and intersection operations SASI provides several -iterators similar to Cassandra's `MergeIterator` but tailored -specifically for SASIs use, and with more features. The -[`RangeUnionIterator`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/utils/RangeUnionIterator.java), -like its name suggests, performs set union over sets of tokens/keys -matching the query, only reading as much data as it needs from each -set to satisfy the query. The -[`RangeIntersectionIterator`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/utils/RangeIntersectionIterator.java), -similar to its counterpart, performs set intersection over its data. - -#### QueryPlan - -The -[`QueryPlan`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/QueryPlan.java) -instantiated per search query is at the core of SASIs querying -implementation. Its work can be divided in two stages: analysis and -execution. - -During the analysis phase, -[`QueryPlan`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/QueryPlan.java) -converts from Cassandra's internal representation of -`IndexExpression`s, which has also been modified to support encoding -queries that contain ORs and groupings of expressions using -parentheses (see the -[Cassandra Internal Changes](#cassandra-internal-changes) -section below for more details). This process produces a tree of -[`Operation`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/Operation.java)s, which in turn may contain [`Expression`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/Expression.java)s, all of which -provide an alternative, more efficient, representation of the query. - -During execution the -[`QueryPlan`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/QueryPlan.java) -uses the `DecoratedKey`-generating iterator created from the -[`Operation`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/Operation.java) tree. These keys are read from disk and a final check to -ensure they satisfy the query is made, once again using the -[`Operation`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/Operation.java) tree. At the point the desired amount of matching data has -been found, or there is no more matching data, the result set is -returned to the coordinator through the existing internal components. - -The number of queries (total/failed/timed-out), and their latencies, -are maintined per-table/column family. - -SASI also supports concurrently iterating terms for the same index -accross SSTables. The concurrency factor is controlled by the -`cassandra.search_concurrency_factor` system property. The default is -`1`. - -##### QueryController - -Each -[`QueryPlan`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/QueryPlan.java) -references a -[`QueryController`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/QueryController.java) -used throughout the execution phase. The -[`QueryController`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/QueryController.java) -has two responsibilities: to manage and ensure the proper cleanup of -resources (indexes), and to strictly enforce the time bound for query, -specified by the user via the range slice timeout. All indexes are -accessed via the -[`QueryController`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/QueryController.java) -so that they can be safely released by it later. The -[`QueryController`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/QueryController.java)'s -`checkpoint` function is called in specific places in the execution -path to ensure the time-bound is enforced. - -##### QueryPlan Optimizations - -While in the analysis phase, the -[`QueryPlan`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/QueryPlan.java) -performs several potential optimizations to the query. The goal of -these optimizations is to reduce the amount of work performed during -the execution phase. - -The simplest optimization performed is compacting multiple expressions -joined by logical intersection (`AND`) into a single [`Operation`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/Operation.java) with -three or more [`Expression`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/Expression.java)s. For example, the query `WHERE age < 100 AND -fname = 'p*' AND first_name != 'pa*' AND age > 21` would, -without modification, have the following tree: - - ┌───────┐ - ┌────────│ AND │──────┐ - │ └───────┘ │ - ▼ ▼ - ┌───────┐ ┌──────────┐ - ┌─────│ AND │─────┐ │age < 100 │ - │ └───────┘ │ └──────────┘ - ▼ ▼ - ┌──────────┐ ┌───────┐ - │ fname=p* │ ┌─│ AND │───┐ - └──────────┘ │ └───────┘ │ - ▼ ▼ - ┌──────────┐ ┌──────────┐ - │fname!=pa*│ │ age > 21 │ - └──────────┘ └──────────┘ - -[`QueryPlan`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/QueryPlan.java) -will remove the redundant right branch whose root is the final `AND` -and has leaves `fname != pa*` and `age > 21`. These [`Expression`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/Expression.java)s will -be compacted into the parent `AND`, a safe operation due to `AND` -being associative and commutative. The resulting tree looks like the -following: - - ┌───────┐ - ┌────────│ AND │──────┐ - │ └───────┘ │ - ▼ ▼ - ┌───────┐ ┌──────────┐ - ┌───────────│ AND │────────┐ │age < 100 │ - │ └───────┘ │ └──────────┘ - ▼ │ ▼ - ┌──────────┐ │ ┌──────────┐ - │ fname=p* │ ▼ │ age > 21 │ - └──────────┘ ┌──────────┐ └──────────┘ - │fname!=pa*│ - └──────────┘ - -When excluding results from the result set, using `!=`, the -[`QueryPlan`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/QueryPlan.java) -determines the best method for handling it. For range queries, for -example, it may be optimal to divide the range into multiple parts -with a hole for the exclusion. For string queries, such as this one, -it is more optimal, however, to simply note which data to skip, or -exclude, while scanning the index. Following this optimization the -tree looks like this: - - ┌───────┐ - ┌────────│ AND │──────┐ - │ └───────┘ │ - ▼ ▼ - ┌───────┐ ┌──────────┐ - ┌───────│ AND │────────┐ │age < 100 │ - │ └───────┘ │ └──────────┘ - ▼ ▼ - ┌──────────────────┐ ┌──────────┐ - │ fname=p* │ │ age > 21 │ - │ exclusions=[pa*] │ └──────────┘ - └──────────────────┘ - -The last type of optimization applied, for this query, is to merge -range expressions across branches of the tree -- without modifying the -meaning of the query, of course. In this case, because the query -contains all `AND`s the `age` expressions can be collapsed. Along with -this optimization, the initial collapsing of unneeded `AND`s can also -be applied once more to result in this final tree using to execute the -query: - - ┌───────┐ - ┌──────│ AND │───────┐ - │ └───────┘ │ - ▼ ▼ - ┌──────────────────┐ ┌────────────────┐ - │ fname=p* │ │ 21 < age < 100 │ - │ exclusions=[pa*] │ └────────────────┘ - └──────────────────┘ - -#### Operations and Expressions - -As discussed, the -[`QueryPlan`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/QueryPlan.java) -optimizes a tree represented by -[`Operation`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/Operation.java)s -as interior nodes, and -[`Expression`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/Expression.java)s -as leaves. The -[`Operation`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/Operation.java) -class, more specifically, can have zero, one, or two -[`Operation`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/Operation.java)s -as children and an unlimited number of expressions. The iterators used -to perform the queries, discussed below in the -"Range(Union|Intersection)Iterator" section, implement the necessary -logic to merge results transparently regardless of the -[`Operation`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/Operation.java)s -children. - -Besides participating in the optimizations performed by the -[`QueryPlan`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/QueryPlan.java), -[`Operation`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/Operation.java) -is also responsible for taking a row that has been returned by the -query and making a final validation that it in fact does match. This -`satisfiesBy` operation is performed recursively from the root of the -[`Operation`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/Operation.java) -tree for a given query. These checks are performed directly on the -data in a given row. For more details on how `satisfiesBy` works see -the documentation -[in the code](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/Operation.java#L87-L123). - -#### Range(Union|Intersection)Iterator - -The abstract `RangeIterator` class provides a unified interface over -the two main operations performed by SASI at various layers in the -execution path: set intersection and union. These operations are -performed in a iterated, or "streaming", fashion to prevent unneeded -reads of elements from either set. In both the intersection and union -cases the algorithms take advantage of the data being pre-sorted using -the same sort order, e.g. term or token order. - -The -[`RangeUnionIterator`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/utils/RangeUnionIterator.java) -performs the "Merge-Join" portion of the -[Sort-Merge-Join](https://en.wikipedia.org/wiki/Sort-merge_join) -algorithm, with the properties of an outer-join, or union. It is -implemented with several optimizations to improve its performance over -a large number of iterators -- sets to union. Specifically, the -iterator exploits the likely case of the data having many sub-groups -of overlapping ranges and the unlikely case that all ranges will -overlap each other. For more details see the -[javadoc](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/utils/RangeUnionIterator.java#L9-L21). - -The -[`RangeIntersectionIterator`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/utils/RangeIntersectionIterator.java) -itself is not a subclass of `RangeIterator`. It is a container for -several classes, one of which, `AbstractIntersectionIterator`, -sub-classes `RangeIterator`. SASI supports two methods of performing -the intersection operation, and the ability to be adaptive in choosing -between them based on some properties of the data. - -`BounceIntersectionIterator`, and the `BOUNCE` strategy, works like -the -[`RangeUnionIterator`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/utils/RangeUnionIterator.java) -in that it performs a "Merge-Join", however, its nature is similar to -a inner-join, where like values are merged by a data-specific merge -function (e.g. merging two tokens in a list to lookup in a SSTable -later). See the -[javadoc](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/utils/RangeIntersectionIterator.java#L88-L101) -for more details on its implementation. - -`LookupIntersectionIterator`, and the `LOOKUP` strategy, performs a -different operation, more similar to a lookup in an associative data -structure, or "hash lookup" in database terminology. Once again, -details on the implementation can be found in the -[javadoc](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/utils/RangeIntersectionIterator.java#L199-L208). - -The choice between the two iterators, or the `ADAPTIVE` strategy, is -based upon the ratio of data set sizes of the minimum and maximum -range of the sets being intersected. If the number of the elements in -minimum range divided by the number of elements is the maximum range -is less than or equal to `0.01`, then the `ADAPTIVE` strategy chooses -the `LookupIntersectionIterator`, otherwise the -`BounceIntersectionIterator` is chosen. - -### The SASIIndex Class - -The above components are glued together by the -[`SASIIndex`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/SASIIndex.java) -class which implements `Index`, and is instantiated -per-table containing SASI indexes. It manages all indexes for a table -via the -[`sasi.conf.DataTracker`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/conf/DataTracker.java) -and -[`sasi.conf.view.View`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/conf/view/View.java) -components, controls writing of all indexes for an SSTable via its -[`PerSSTableIndexWriter`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/disk/PerSSTableIndexWriter.java), and initiates searches with -`Searcher`. These classes glue the previously -mentioned indexing components together with Cassandra's SSTable -life-cycle ensuring indexes are not only written when Memtable's flush -but also as SSTable's are compacted. For querying, the -`Searcher` does little but defer to -[`QueryPlan`](https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/plan/QueryPlan.java) -and update e.g. latency metrics exposed by SASI. - -### Cassandra Internal Changes - -To support the above changes and integrate them into Cassandra a few -minor internal changes were made to Cassandra itself. These are -described here. - -#### SSTable Write Life-cycle Notifications - -The `SSTableFlushObserver` is an observer pattern-like interface, -whose sub-classes can register to be notified about events in the -life-cycle of writing out a SSTable. Sub-classes can be notified when a -flush begins and ends, as well as when each next row is about to be -written, and each next column. SASI's `PerSSTableIndexWriter`, -discussed above, is the only current subclass. - -### Limitations and Caveats - -The following are items that can be addressed in future updates but are not -available in this repository or are not currently implemented. - -* The cluster must be configured to use a partitioner that produces - `LongToken`s, e.g. `Murmur3Partitioner`. Other existing partitioners which - don't produce LongToken e.g. `ByteOrderedPartitioner` and `RandomPartitioner` - will not work with SASI. -* Not Equals and OR support have been removed in this release while - changes are made to Cassandra itself to support them. - -### Contributors - -* [Pavel Yaskevich](https://github.com/xedin) -* [Jordan West](https://github.com/jrwest) -* [Michael Kjellman](https://github.com/mkjellman) -* [Jason Brown](https://github.com/jasobrown) -* [Mikhail Stepura](https://github.com/mishail) diff --git a/doc/cql3/CQL.css b/doc/cql3/CQL.css deleted file mode 100644 index 601c01364007..000000000000 --- a/doc/cql3/CQL.css +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/* Default (and example) style sheet for CQL.html */ - -pre.sample { - padding: 1ex; - padding-left: 4ex; - border: 1px solid #ada; - background-color: #fafffa; -} - -pre.syntax { - padding: 1ex; - padding-left: 4ex; - border: 1px solid #aaf; - background-color: #fafaff; -} - -p.banner { - padding: 1ex; - padding-left: 4ex; - border-top: 1px solid #faa; - border-bottom: 1px solid #faa; - background-color: #fffafa; - color: #b33; - text-align: center; -} - -table { - margin-left: 4ex; - /* width: 80%; */ - border-collapse: collapse; - border: 2px solid #bbb; -} - -td, th { - padding: 2px 1ex; - border: 1px solid #bbb; -} - -th { - background-color: #f0f0f0; -} - -body { - background-color: white; - padding: 0 2ex; -} - -h1 { - text-align: center; - margin-bottom: 3ex; -} - -h2 { - text-align: center; - border-top: 1px solid #aaa; - border-bottom: 1px solid #aaa; - background-color: #eee; - margin-top: 5ex; -} - -h3 { - padding-top: 3ex; -} - -a { - color:#333; - font-size:90%; - text-decoration:none; - font-weight:bold; -} - -a:link {color:#333;} -a:visited {color:#111;} -a:hover { - color:#777; - text-decoration: underline; -} - -span#tableOfContents { - border: 1px solid #bbb; - background-color: #fafafa; - display: inline-block; - padding-right: 6ex; -} diff --git a/doc/cql3/CQL.textile b/doc/cql3/CQL.textile deleted file mode 100644 index 8c7c3ab1b50d..000000000000 --- a/doc/cql3/CQL.textile +++ /dev/null @@ -1,2574 +0,0 @@ - - -h1. Cassandra Query Language (CQL) v3.4.3 - - - - - -{toc:maxLevel=3} - - - -h2. CQL Syntax - -h3. Preamble - -This document describes the Cassandra Query Language (CQL) version 3. CQL v3 is not backward compatible with CQL v2 and differs from it in numerous ways. Note that this document describes the last version of the languages. However, the "changes":#changes section provides the diff between the different versions of CQL v3. - -CQL v3 offers a model very close to SQL in the sense that data is put in _tables_ containing _rows_ of _columns_. For that reason, when used in this document, these terms (tables, rows and columns) have the same definition than they have in SQL. But please note that as such, they do *not* refer to the concept of rows and columns found in the internal implementation of Cassandra and in the thrift and CQL v2 API. - - -h3. Conventions - -To aid in specifying the CQL syntax, we will use the following conventions in this document: - -* Language rules will be given in a "BNF":http://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form -like notation: - -bc(syntax). ::= TERMINAL - -* Nonterminal symbols will have @@. -* As additional shortcut notations to BNF, we'll use traditional regular expression's symbols (@?@, @+@ and @*@) to signify that a given symbol is optional and/or can be repeated. We'll also allow parentheses to group symbols and the @[]@ notation to represent any one of @@. -* The grammar is provided for documentation purposes and leave some minor details out. For instance, the last column definition in a @CREATE TABLE@ statement is optional but supported if present even though the provided grammar in this document suggest it is not supported. -* Sample code will be provided in a code block: - -bc(sample). SELECT sample_usage FROM cql; - -* References to keywords or pieces of CQL code in running text will be shown in a @fixed-width font@. - -h3(#identifiers). Identifiers and keywords - -p. The CQL language uses _identifiers_ (or _names_) to identify tables, columns and other objects. An identifier is a token matching the regular expression @[a-zA-Z]@@[a-zA-Z0-9_]@@*@. - -p. A number of such identifiers, like @SELECT@ or @WITH@, are _keywords_. They have a fixed meaning for the language and most are reserved. The list of those keywords can be found in "Appendix A":#appendixA. - -p. Identifiers and (unquoted) keywords are case insensitive. Thus @SELECT@ is the same than @select@ or @sElEcT@, and @myId@ is the same than @myid@ or @MYID@ for instance. A convention often used (in particular by the samples of this documentation) is to use upper case for keywords and lower case for other identifiers. - -p. There is a second kind of identifiers called _quoted identifiers_ defined by enclosing an arbitrary sequence of characters in double-quotes(@"@). Quoted identifiers are never keywords. Thus @"select"@ is not a reserved keyword and can be used to refer to a column, while @select@ would raise a parse error. Also, contrarily to unquoted identifiers and keywords, quoted identifiers are case sensitive (@"My Quoted Id"@ is _different_ from @"my quoted id"@). A fully lowercase quoted identifier that matches @[a-zA-Z]@@[a-zA-Z0-9_]@@*@ is equivalent to the unquoted identifier obtained by removing the double-quote (so @"myid"@ is equivalent to @myid@ and to @myId@ but different from @"myId"@). Inside a quoted identifier, the double-quote character can be repeated to escape it, so @"foo "" bar"@ is a valid identifier. - -p. *Warning*: _quoted identifiers_ allows to declare columns with arbitrary names, and those can sometime clash with specific names used by the server. For instance, when using conditional update, the server will respond with a result-set containing a special result named @"[applied]"@. If you've declared a column with such a name, this could potentially confuse some tools and should be avoided. In general, unquoted identifiers should be preferred but if you use quoted identifiers, it is strongly advised to avoid any name enclosed by squared brackets (like @"[applied]"@) and any name that looks like a function call (like @"f(x)"@). - -h3(#constants). Constants - -CQL defines the following kind of _constants_: strings, integers, floats, booleans, uuids and blobs: -* A string constant is an arbitrary sequence of characters characters enclosed by single-quote(@'@). One can include a single-quote in a string by repeating it, e.g. @'It''s raining today'@. Those are not to be confused with quoted identifiers that use double-quotes. -* An integer constant is defined by @'-'?[0-9]+@. -* A float constant is defined by @'-'?[0-9]+('.'[0-9]*)?([eE][+-]?[0-9+])?@. On top of that, @NaN@ and @Infinity@ are also float constants. -* A boolean constant is either @true@ or @false@ up to case-insensitivity (i.e. @True@ is a valid boolean constant). -* A "UUID":http://en.wikipedia.org/wiki/Universally_unique_identifier constant is defined by @hex{8}-hex{4}-hex{4}-hex{4}-hex{12}@ where @hex@ is an hexadecimal character, e.g. @[0-9a-fA-F]@ and @{4}@ is the number of such characters. -* A blob constant is an hexadecimal number defined by @0[xX](hex)+@ where @hex@ is an hexadecimal character, e.g. @[0-9a-fA-F]@. - -For how these constants are typed, see the "data types section":#types. - -h3. Comments - -A comment in CQL is a line beginning by either double dashes (@--@) or double slash (@//@). - -Multi-line comments are also supported through enclosure within @/*@ and @*/@ (but nesting is not supported). - -bc(sample). --- This is a comment -// This is a comment too -/* This is - a multi-line comment */ - -h3(#statements). Statements - -CQL consists of statements. As in SQL, these statements can be divided in 3 categories: -* Data definition statements, that allow to set and change the way data is stored. -* Data manipulation statements, that allow to change data -* Queries, to look up data - -All statements end with a semicolon (@;@) but that semicolon can be omitted when dealing with a single statement. The supported statements are described in the following sections. When describing the grammar of said statements, we will reuse the non-terminal symbols defined below: - -bc(syntax).. - ::= any quoted or unquoted identifier, excluding reserved keywords - ::= ( '.')? - - ::= a string constant - ::= an integer constant - ::= a float constant - ::= | - ::= a uuid constant - ::= a boolean constant - ::= a blob constant - - ::= - | - | - | - | - ::= '?' - | ':' - ::= - | - | - | '(' ( (',' )*)? ')' - - ::= - | - | - ::= '{' ( ':' ( ',' ':' )* )? '}' - ::= '{' ( ( ',' )* )? '}' - ::= '[' ( ( ',' )* )? ']' - - ::= - - ::= (AND )* - ::= '=' ( | | ) -p. -Please note that not every possible productions of the grammar above will be valid in practice. Most notably, @@ and nested @@ are currently not allowed inside @@. - -p. A @@ can be either anonymous (a question mark (@?@)) or named (an identifier preceded by @:@). Both declare a bind variables for "prepared statements":#preparedStatement. The only difference between an anymous and a named variable is that a named one will be easier to refer to (how exactly depends on the client driver used). - -p. The @@ production is use by statement that create and alter keyspaces and tables. Each @@ is either a _simple_ one, in which case it just has a value, or a _map_ one, in which case it's value is a map grouping sub-options. The following will refer to one or the other as the _kind_ (_simple_ or _map_) of the property. - -p. A @@ will be used to identify a table. This is an identifier representing the table name that can be preceded by a keyspace name. The keyspace name, if provided, allow to identify a table in another keyspace than the currently active one (the currently active keyspace is set through the USE statement). - -p. For supported @@, see the section on "functions":#functions. - -p. Strings can be either enclosed with single quotes or two dollar characters. The second syntax has been introduced to allow strings that contain single quotes. Typical candidates for such strings are source code fragments for user-defined functions. - -__Sample:__ - -bc(sample).. - 'some string value' - - $$double-dollar string can contain single ' quotes$$ -p. - -h3(#preparedStatement). Prepared Statement - -CQL supports _prepared statements_. Prepared statement is an optimization that allows to parse a query only once but execute it multiple times with different concrete values. - -In a statement, each time a column value is expected (in the data manipulation and query statements), a @@ (see above) can be used instead. A statement with bind variables must then be _prepared_. Once it has been prepared, it can executed by providing concrete values for the bind variables. The exact procedure to prepare a statement and execute a prepared statement depends on the CQL driver used and is beyond the scope of this document. - -In addition to providing column values, bind markers may be used to provide values for @LIMIT@, @TIMESTAMP@, and @TTL@ clauses. If anonymous bind markers are used, the names for the query parameters will be @[limit]@, @[timestamp]@, and @[ttl]@, respectively. - - -h2(#dataDefinition). Data Definition - -h3(#createKeyspaceStmt). CREATE KEYSPACE - -__Syntax:__ - -bc(syntax).. - ::= CREATE KEYSPACE (IF NOT EXISTS)? WITH -p. -__Sample:__ - -bc(sample).. -CREATE KEYSPACE Excelsior - WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 3}; - -CREATE KEYSPACE Excalibur - WITH replication = {'class': 'NetworkTopologyStrategy', 'DC1' : 1, 'DC2' : 3} - AND durable_writes = false; -p. -The @CREATE KEYSPACE@ statement creates a new top-level _keyspace_. A keyspace is a namespace that defines a replication strategy and some options for a set of tables. Valid keyspaces names are identifiers composed exclusively of alphanumerical characters and whose length is lesser or equal to 32. Note that as identifiers, keyspace names are case insensitive: use a quoted identifier for case sensitive keyspace names. - -The supported @@ for @CREATE KEYSPACE@ are: - -|_. name |_. kind |_. mandatory |_. default |_. description| -|@replication@ | _map_ | yes | | The replication strategy and options to use for the keyspace. | -|@durable_writes@ | _simple_ | no | true | Whether to use the commit log for updates on this keyspace (disable this option at your own risk!). | - -The @replication@ @@ is mandatory. It must at least contains the @'class'@ sub-option which defines the replication strategy class to use. The rest of the sub-options depends on that replication strategy class. By default, Cassandra support the following @'class'@: -* @'SimpleStrategy'@: A simple strategy that defines a simple replication factor for the whole cluster. The only sub-options supported is @'replication_factor'@ to define that replication factor and is mandatory. -* @'NetworkTopologyStrategy'@: A replication strategy that allows to set the replication factor independently for each data-center. The rest of the sub-options are key-value pairs where each time the key is the name of a datacenter and the value the replication factor for that data-center. -* @'OldNetworkTopologyStrategy'@: A legacy replication strategy. You should avoid this strategy for new keyspaces and prefer @'NetworkTopologyStrategy'@. - -Attempting to create an already existing keyspace will return an error unless the @IF NOT EXISTS@ option is used. If it is used, the statement will be a no-op if the keyspace already exists. - -h3(#useStmt). USE - -__Syntax:__ - -bc(syntax). ::= USE - -__Sample:__ - -bc(sample). USE myApp; - -The @USE@ statement takes an existing keyspace name as argument and set it as the per-connection current working keyspace. All subsequent keyspace-specific actions will be performed in the context of the selected keyspace, unless "otherwise specified":#statements, until another USE statement is issued or the connection terminates. - -h3(#alterKeyspaceStmt). ALTER KEYSPACE - -__Syntax:__ - -bc(syntax).. - ::= ALTER KEYSPACE WITH -p. -__Sample:__ - -bc(sample).. -ALTER KEYSPACE Excelsior - WITH replication = {'class': 'SimpleStrategy', 'replication_factor' : 4}; - -p. -The @ALTER KEYSPACE@ statement alters the properties of an existing keyspace. The supported @@ are the same as for the "@CREATE KEYSPACE@":#createKeyspaceStmt statement. - - -h3(#dropKeyspaceStmt). DROP KEYSPACE - -__Syntax:__ - -bc(syntax). ::= DROP KEYSPACE ( IF EXISTS )? - -__Sample:__ - -bc(sample). DROP KEYSPACE myApp; - -A @DROP KEYSPACE@ statement results in the immediate, irreversible removal of an existing keyspace, including all column families in it, and all data contained in those column families. - -If the keyspace does not exists, the statement will return an error, unless @IF EXISTS@ is used in which case the operation is a no-op. - - -h3(#createTableStmt). CREATE TABLE - -__Syntax:__ - -bc(syntax).. - ::= CREATE ( TABLE | COLUMNFAMILY ) ( IF NOT EXISTS )? - '(' ( ',' )* ')' - ( WITH