Apache Cassandra 4.0 DBMS ื–ืžื™ืŸ

ืงืจืŸ ืชื•ื›ื ืช Apache ื”ืฆื™ื’ื” ืืช ื”ืฉื—ืจื•ืจ ืฉืœ ื”-DBMS ื”ืžื‘ื•ื–ืจ Apache Cassandra 4.0, ื”ืฉื™ื™ืš ืœืžื—ืœืงืช ืžืขืจื›ื•ืช noSQL ื•ื ื•ืขื“ ืœื™ืฆื•ืจ ืื—ืกื•ืŸ ืžื“ืจื’ื™ ื•ืืžื™ืŸ ื‘ื™ื•ืชืจ ืฉืœ ื›ืžื•ื™ื•ืช ืื“ื™ืจื•ืช ืฉืœ ื ืชื•ื ื™ื ื”ืžืื•ื—ืกื ื™ื ื‘ืฆื•ืจื” ืฉืœ ืžืขืจืš ืืกื•ืฆื™ืื˜ื™ื‘ื™ (hash). ื”ืžื”ื“ื•ืจื” ืฉืœ Cassandra 4.0 ื ื—ืฉื‘ืช ืžื•ื›ื ื” ืœื™ื™ืฉื•ื ื™ื™ืฆื•ืจ ื•ื›ื‘ืจ ื ื•ืกืชื” ื‘ืชืฉืชื™ื•ืช ืฉืœ ืืžื–ื•ืŸ, ืืคืœ, DataStax, Instaclustr, iland ื•-Netflix ืขื ืืฉื›ื•ืœื•ืช ืฉืœ ื™ื•ืชืจ ืž-1000 ืฆืžืชื™ื. ืงื•ื“ ื”ืคืจื•ื™ืงื˜ ื›ืชื•ื‘ ื‘-Java ื•ืžื•ืคืฅ ืชื—ืช ืจื™ืฉื™ื•ืŸ Apache 2.0.

ื”- Cassandra DBMS ืคื•ืชื— ื‘ืžืงื•ืจ ืขืœ ื™ื“ื™ ืคื™ื™ืกื‘ื•ืง ื•ื‘ืฉื ืช 2009 ื”ื•ืขื‘ืจ ื‘ื—ืกื•ืช ืงืจืŸ ืืคืืฆ'ื™. ืคืชืจื•ื ื•ืช ืชืขืฉื™ื™ืชื™ื™ื ื”ืžื‘ื•ืกืกื™ื ืขืœ ืงืกื ื“ืจื” ื ืคืจืกื• ืœืฉื™ืจื•ืชื™ ื—ืฉืžืœ ืฉืœ ื—ื‘ืจื•ืช ื›ืžื• ืืคืœ, ืื“ื•ื‘ื™, CERN, ืกื™ืกืงื•, ื™ื‘ืž, HP, Comcast, ื“ื™ืกื ื™, eBay, Huawei, Netflix, Sony, Rackspace, Reddit ื•ื˜ื•ื•ื™ื˜ืจ. ืœื“ื•ื’ืžื”, ืชืฉืชื™ืช ื”ืื—ืกื•ืŸ ืžื‘ื•ืกืกืช Apache Cassandra ืฉื ืคืจืกื” ืขืœ ื™ื“ื™ ืืคืœ ื›ื•ืœืœืช ื™ื•ืชืจ ืžืืœืฃ ืืฉื›ื•ืœื•ืช, ื›ื•ืœืœ 160 ืืœืฃ ืฆืžืชื™ื ื•ืื—ืกื•ืŸ ืฉืœ ื™ื•ืชืจ ืž-100 ืคื˜ื”-ื‘ื™ื™ื˜ ืฉืœ ื ืชื•ื ื™ื. Huawei ืžืฉืชืžืฉืช ื‘ื™ื•ืชืจ ืž-300 ืืฉื›ื•ืœื•ืช Apache Cassandra, ื”ื›ื•ืœืœื™ื 30 ืืœืฃ ืฆืžืชื™ื, ื•ื ื˜ืคืœื™ืงืก ืžืฉืชืžืฉืช ื‘ื™ื•ืชืจ ืž-100 ืืฉื›ื•ืœื•ืช, ื”ืžื›ืกื™ื 10 ืืœืฃ ืฆืžืชื™ื ื•ืžืขื‘ื“ื™ื ื™ื•ืชืจ ืžื˜ืจื™ืœื™ื•ืŸ ื‘ืงืฉื•ืช ื‘ื™ื•ื.

ื”- Cassandra DBMS ืžืฉืœื‘ ืžืขืจื›ืช Hash ืžื•ืคืฆืช ืžืœืื” ืฉืœ Dynamo, ื”ืžืกืคืงืช ืžื“ืจื’ื™ื•ืช ื›ืžืขื˜ ืœื™ื ื™ืืจื™ืช ื›ื›ืœ ืฉื ืคื— ื”ื ืชื•ื ื™ื ื’ื“ืœ. Cassandra ืžืฉืชืžืฉืช ื‘ืžื•ื“ืœ ืื—ืกื•ืŸ ื ืชื•ื ื™ื ื”ืžื‘ื•ืกืก ืขืœ ืžืฉืคื—ืช ืขืžื•ื“ื™ื (ColumnFamily), ื”ืฉื•ื ื” ืžืžืขืจื›ื•ืช ื›ืžื• memcachedb, ื”ืžืื—ืกื ื•ืช ื ืชื•ื ื™ื ืจืง ื‘ืฉืจืฉืจืช ืžืคืชื—/ืขืจืš, ื‘ื™ื›ื•ืœืช ืœืืจื’ืŸ ืื—ืกื•ืŸ ืฉืœ hashes ื‘ื›ืžื” ืจืžื•ืช ืฉืœ ืงื™ื ื•ืŸ. ื›ื“ื™ ืœืคืฉื˜ ืืช ื”ืื™ื ื˜ืจืืงืฆื™ื” ืขื ืžืกื“ ื”ื ืชื•ื ื™ื, ื ืชืžื›ืช ืฉืคืช ื”ืฉืื™ืœืชื•ืช ื”ืžื•ื‘ื ื™ืช CQL (Cassandra Query Language), ืฉืžื–ื›ื™ืจื” ืืช SQL, ืืš ืžื•ืคื—ืชืช ื‘ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช. ื”ืชื›ื•ื ื•ืช ื›ื•ืœืœื•ืช ืชืžื™ื›ื” ื‘ืžืจื—ื‘ื™ ืฉืžื•ืช ื•ืžืฉืคื—ื•ืช ืขืžื•ื“ื•ืช, ื•ื™ืฆื™ืจืช ืื™ื ื“ืงืกื™ื ื‘ืืžืฆืขื•ืช ื”ื‘ื™ื˜ื•ื™ "CREATE INDEX".

ื”-DBMS ืžืืคืฉืจ ืœืš ืœื™ืฆื•ืจ ืื—ืกื•ืŸ ืขืžื™ื“ ื‘ืคื ื™ ื›ืฉืœื™ื: ื ืชื•ื ื™ื ื”ืžื•ืฆื‘ื™ื ื‘ืžืกื“ ื”ื ืชื•ื ื™ื ืžืฉื•ื›ืคืœื™ื ืื•ื˜ื•ืžื˜ื™ืช ืœืžืกืคืจ ืฆืžืชื™ื ืฉืœ ืจืฉืช ืžื‘ื•ื–ืจืช, ืฉื™ื›ื•ืœื™ื ืœื”ืฉืชืจืข ืขืœ ืคื ื™ ืžืจื›ื–ื™ ื ืชื•ื ื™ื ืฉื•ื ื™ื. ื›ืืฉืจ ืฆื•ืžืช ื ื›ืฉืœ, ื”ืคื•ื ืงืฆื™ื•ืช ืฉืœื• ื ืงืœื˜ื•ืช ืชื•ืš ื›ื“ื™ ืชื ื•ืขื” ืขืœ ื™ื“ื™ ืฆืžืชื™ื ืื—ืจื™ื. ื”ื•ืกืคืช ืฆืžืชื™ื ื—ื“ืฉื™ื ืœืืฉื›ื•ืœ ื•ืขื“ื›ื•ืŸ ื’ืจืกืช ื”ืงืกื ื“ืจื” ื ืขืฉื™ื ืชื•ืš ื›ื“ื™ ืชื ื•ืขื”, ืœืœื ื”ืชืขืจื‘ื•ืช ื™ื“ื ื™ืช ื ื•ืกืคืช ืื• ื”ื’ื“ืจื” ืžื—ื“ืฉ ืฉืœ ืฆืžืชื™ื ืื—ืจื™ื. ืžื ื”ืœื™ ื”ืชืงื ื™ื ืขื ืชืžื™ื›ื” ื‘-CQL ืžื•ื›ื ื™ื ืขื‘ื•ืจ Python, Java (JDBC/DBAPI2), Ruby, PHP, C++ ื•-JavaScript (Node.js).

ื—ื™ื“ื•ืฉื™ื ืขื™ืงืจื™ื™ื:

  • ื‘ื™ืฆื•ืขื™ื ืžืฉื•ืคืจื™ื ื•ืžื“ืจื’ื™ื•ืช. ื”ื™ืขื™ืœื•ืช ืฉืœ ื—ื™ืœื•ืคื™ ื ืชื•ื ื™ื ื‘ืคื•ืจืžื˜ SSTable (Sorted Strings Table) ื‘ื™ืŸ ืฆืžืชื™ื ืฉื•ืคืจื”. ืคืจื•ื˜ื•ืงื•ืœ ื”ื”ื•ื“ืขื•ืช ืฉืœ Internode ืขื‘ืจ ืื•ืคื˜ื™ืžื™ื–ืฆื™ื”. ืžื”ื™ืจื•ืช ื”ืขื‘ืจืช ื–ืจืžื™ ื”ื ืชื•ื ื™ื ื‘ื™ืŸ ืฆืžืชื™ื ื’ื“ืœื” ืขื“ ืคื™ 5 (ื‘ืขื™ืงืจ ืขืงื‘ ื”ืฉื™ืžื•ืฉ ื‘ื˜ื›ื ื™ืงืช Zero Copy ื•ื”ืขื‘ืจืช SSTables ืฉืœืžื™ื), ื•ืชืคื•ืงืช ืคืขื•ืœื•ืช ื”ืงืจื™ืื” ื•ื”ื›ืชื™ื‘ื” ื’ื“ืœื” ืœ-25%. ืชื”ืœื™ืš ื”ื”ืชืื•ืฉืฉื•ืช ื”ืžืฆื˜ื‘ืจ ืขื‘ืจ ืื•ืคื˜ื™ืžื™ื–ืฆื™ื”. ื”ืฉื”ื™ื•ืช ืขืงื‘ ื”ืคืกืงืช ืื™ืกื•ืฃ ื”ืืฉืคื” ืžืฆื˜ืžืฆืžื•ืช ืœืžืกืคืจ ืืœืคื™ื•ืช ืฉื ื™ื•ืช.
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ื™ื•ืžืŸ ื‘ื™ืงื•ืจืช ื”ืžืืคืฉืจ ืœืš ืœืขืงื•ื‘ ืื—ืจ ืคืขื•ืœื•ืช ืื™ืžื•ืช ืžืฉืชืžืฉื™ื ื•ื›ืœ ืฉืื™ืœืชื•ืช CQL ืฉื‘ื•ืฆืขื•.
  • ื ื•ืกืคื” ืืช ื”ื™ื›ื•ืœืช ืœืฉืžื•ืจ ืขืœ ื™ื•ืžืŸ ื‘ืงืฉื•ืช ื‘ื™ื ืืจื™ ืžืœื, ื”ืžืืคืฉืจ ืœืš ืœืฉืžื•ืจ ืืช ื›ืœ ืชืขื‘ื•ืจืช ื”ื‘ืงืฉื•ืช ื•ื”ืชื’ื•ื‘ื”. ืœื ื™ื”ื•ืœ, ื”ืคืงื•ื“ื•ืช "nodetool enablefullquerylog|disablefullquerylog|resetfullquerylog" ืžื•ืฆืขื•ืช, ื•ื›ืœื™ ื”ืฉื™ืจื•ืช fqltool ืžืกื•ืคืง ืœื ื™ืชื•ื— ื™ื•ืžืŸ. ื ื™ืชื ื•ืช ืคืงื•ื“ื•ืช ืœื”ืžืจืช ื”ื™ื•ืžืŸ ืœืฆื•ืจื” ืงืจื™ื (Dump), ื”ืฉื•ื•ืืช ืคืจื•ืกื•ืช ืคืขื™ืœื•ืช (Compare) ื•ื‘ื™ืฆื•ืข ืžื—ื“ืฉ (Replay) ืœืฆื•ืจืš ื ื™ืชื•ื— ืœืฉื—ื–ื•ืจ ื”ืชื ืื™ื ื”ื’ืœื•ืžื™ื ื‘ืขื•ืžืก ื”ืืžื™ืชื™.
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ื˜ื‘ืœืื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ืฉืœื ืžืฉืงืคื•ืช ื ืชื•ื ื™ื ื”ืžืื•ื—ืกื ื™ื ื‘-SSTables, ืืœื ืคืœื˜ ืžื™ื“ืข ื“ืจืš ื”-API (ืžื“ื“ื™ ื‘ื™ืฆื•ืขื™ื, ืžื™ื“ืข ื”ื’ื“ืจื•ืช, ืชื•ื›ืŸ ืžื˜ืžื•ืŸ, ืžื™ื“ืข ืขืœ ืœืงื•ื—ื•ืช ืžื—ื•ื‘ืจื™ื ื•ื›ื•').
  • ื”ื™ืขื™ืœื•ืช ืฉืœ ืื—ืกื•ืŸ ื ืชื•ื ื™ื ื“ื—ื•ืก ืฉื•ืคืจื”, ืชื•ืš ื”ืคื—ืชืช ืฆืจื™ื›ืช ืฉื˜ื— ื“ื™ืกืง ื•ืฉื™ืคื•ืจ ื‘ื™ืฆื•ืขื™ ื”ืงืจื™ืื”.
  • ื ืชื•ื ื™ื ื”ืงืฉื•ืจื™ื ืœืžืจื—ื‘ ื”ืžืคืชื—ื•ืช ืฉืœ ื”ืžืขืจื›ืช (system.*) ืžืžื•ืงืžื™ื ื›ืขืช ื‘ืกืคืจื™ื™ื” ื”ืจืืฉื•ื ื” ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ื‘ืžืงื•ื ืœื”ื™ื•ืช ืžื•ืคืฆื™ื ืขืœ ืคื ื™ ื›ืœ ืกืคืจื™ื•ืช ื”ื ืชื•ื ื™ื, ืžื” ืฉืžืืคืฉืจ ืœืฆื•ืžืช ืœื”ื™ืฉืืจ ืคืขื™ืœ ืื ืื—ื“ ืžื”ื“ื™ืกืงื™ื ื”ื ื•ืกืคื™ื ื ื›ืฉืœ.
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื ื™ืกื™ื•ื ื™ืช ืขื‘ื•ืจ ืฉื›ืคื•ืœ ื—ื•ืœืฃ ื•ืงื•ื•ืจื•ื ื–ื•ืœ. ื”ืขืชืงื™ื ื–ืžื ื™ื™ื ืื™ื ื ืžืื—ืกื ื™ื ืืช ื›ืœ ื”ื ืชื•ื ื™ื ื•ืžืฉืชืžืฉื™ื ื‘ืฉื—ื–ื•ืจ ืžืฆื˜ื‘ืจ ื›ื“ื™ ืœื”ื™ื•ืช ืขืงื‘ื™ื™ื ืขื ื”ืขืชืงื™ื ืžืœืื™ื. ืžื ื™ื™ื ื™ื ืงืœื™ื ืžื™ื™ืฉืžื™ื ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ ื›ืชื™ื‘ื” ืฉื‘ื” ืœื ืžืชื‘ืฆืขื•ืช ื›ืชื™ื‘ื” ืœืขืชืงื™ื ื–ืžื ื™ื™ื ืขื“ ืฉืงื‘ื•ืฆื” ืžืกืคืงืช ืฉืœ ื”ืขืชืงื™ื ืžืœืื™ื ื–ืžื™ื ื”.
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื ื™ืกื™ื•ื ื™ืช ืขื‘ื•ืจ Java 11.
  • ื ื•ืกืคื” ืืคืฉืจื•ืช ื ื™ืกื™ื•ื ื™ืช ืœื”ืฉื•ื•ืืช ื›ืœ ืขืฆื™ ืžืจืงืœ. ืœื“ื•ื’ืžื”, ื”ืคืขืœืช ื”ืืคืฉืจื•ืช ื‘ืืฉื›ื•ืœ ื‘ืŸ 3 ืฆืžืชื™ื ืฉื‘ื• ืฉื ื™ ื”ืขืชืงื™ื ื–ื”ื™ื ื•ืื—ื“ ืžื™ื•ืฉืŸ, ืชื’ืจื•ื ืœืขื“ื›ื•ืŸ ืฉืœ ื”ืขื•ืชืง ื”ืžืขื•ืคืฉ ื‘ืืžืฆืขื•ืช ืคืขื•ืœืช ื”ืขืชืงื” ืื—ืช ื‘ืœื‘ื“ ืฉืœ ื”ืขืชืง ื”ื ื•ื›ื—ื™.
  • ื ื•ืกืคื• ืคื•ื ืงืฆื™ื•ืช ื—ื“ืฉื•ืช currentTimestamp, currentDate, currentTime ื•-currentTimeUUID.
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืคืขื•ืœื•ืช ืืจื™ืชืžื˜ื™ื•ืช ื‘ืฉืื™ืœืชื•ืช CQL.
  • ืžืกื•ืคืงืช ื”ื™ื›ื•ืœืช ืœื‘ืฆืข ืคืขื•ืœื•ืช ืืจื™ืชืžื˜ื™ื•ืช ื‘ื™ืŸ ื ืชื•ื ื™ื ืžืกื•ื’ื™ื "ื—ื•ืชืžืช ื–ืžืŸ"/"ืชืืจื™ืš" ื•"ืžืฉืš".
  • ื ื•ืกืฃ ืžืฆื‘ ืœืชืฆื•ื’ื” ืžืงื“ื™ืžื” ืฉืœ ื–ืจืžื™ ื ืชื•ื ื™ื ื”ื ื“ืจืฉื™ื ืœืฉื—ื–ื•ืจ (ืชื™ืงื•ืŸ nodetool โ€”ืชืฆื•ื’ื” ืžืงื“ื™ืžื”) ื•ื™ื›ื•ืœืช ืœื‘ื“ื•ืง ืืช ืชืงื™ื ื•ืช ื”ื ืชื•ื ื™ื ื”ืžืฉื•ื—ื–ืจื™ื (ืชื™ืงื•ืŸ nodetool โ€”validate).
  • ืœืฉืื™ืœืชื•ืช SELECT ื™ืฉ ื›ืขืช ืืช ื”ื™ื›ื•ืœืช ืœืขื‘ื“ ืจื›ื™ื‘ื™ Map ื•-Set.
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ื”ืงื‘ืœื” ืœืฉืœื‘ ื”ื‘ื ื™ื™ื” ื”ืจืืฉื•ื ื™ ืฉืœ ืชืฆื•ื’ื•ืช ืฉื”ืชืžืžืฉื• (cassandra.yaml:concurrent_materialized_view_builders).
  • ื”ืคืงื•ื“ื” "nodetool cfstats" ื”ื•ืกื™ืคื” ืชืžื™ื›ื” ืœืžื™ื•ืŸ ืœืคื™ ืžื“ื“ื™ื ืžืกื•ื™ืžื™ื ื•ื”ื’ื‘ืœืช ืžืกืคืจ ื”ืฉื•ืจื•ืช ื”ืžื•ืฆื’ื•ืช.
  • ื”ื’ื“ืจื•ืช ืžืกื•ืคืงื•ืช ื›ื“ื™ ืœื”ื’ื‘ื™ืœ ืืช ื”ื—ื™ื‘ื•ืจ ืฉืœ ื”ืžืฉืชืžืฉ ืœืžืจื›ื–ื™ ื ืชื•ื ื™ื ืžืกื•ื™ืžื™ื ื‘ืœื‘ื“.
  • ื ื•ืกืคื” ื”ื™ื›ื•ืœืช ืœื”ื’ื‘ื™ืœ ืืช ื”ืื™ื ื˜ื ืกื™ื‘ื™ื•ืช (ืžื’ื‘ืœืช ื”ืงืฆื‘) ืฉืœ ืคืขื•ืœื•ืช ื™ืฆื™ืจืช ื•ืกืœื™ืงื” ืฉืœ ืชืžื•ื ืช ืžืฆื‘.
  • cqlsh ื•-cqlshlib ืชื•ืžื›ื™ื ื›ืขืช ื‘-Python 3 (Python 2.7 ืขื“ื™ื™ืŸ ื ืชืžืš).
  • ื”ืชืžื™ื›ื” ื‘ืคืœื˜ืคื•ืจืžืช Windows ื”ื•ืคืกืงื”. ื›ื“ื™ ืœื”ืคืขื™ืœ ืืช Cassandra ืขืœ Windows, ืžื•ืžืœืฅ ืœื”ืฉืชืžืฉ ื‘ืกื‘ื™ื‘ื•ืช ืœื™ื ื•ืงืก ืฉื ื•ืฆืจื• ืขืœ ื‘ืกื™ืก ืชืช-ืžืขืจื›ืช WSL2 (Windows Subsystem for Linux 2) ืื• ืžืขืจื›ื•ืช ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื”.



ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”