See all blog posts

ScyllaDB release: version 1.1

The ScyllaDB team is pleased to announce the release of ScyllaDB 1.1, the second production-ready ScyllaDB release. ScyllaDB is an open source NoSQL database compatible with Apache Cassandra, with superior performance and consistent low latency.
From now on, only critical bugs (showstoppers) will be fixed in branch-1.1.x. We will continue to fix bugs and add features on the master branch toward 1.2 and beyond. Followup minor releases (1.2, 1.3 etc) will be time-based releases, closed at the end of each month; ScyllaDB 1.2 is due in early June.

Get started with ScyllaDB 1.1 here. Upgrade instructions from 1.0 to 1.1 here
Please let us know if you encounter any problem.

New features

Alter Table

ScyllaDB now supports the CQL operation ALTER TABLE, #428

ALTER TABLE myFamily
ALTER id TYPE uuid;

ALTER TABLE myFamily
ADD location varchar;

ALTER TABLE myFamily
WITH comment = 'a table'
 AND read_repair_chance = 0.1;

This feature was previously available in ScyllaDB 1.0 when the –experimental flag was used.

User Defined Types (UDT)

ScyllaDB now supports the CQL operations:
CREATE TYPE,
ALTER TYPE,
DROP TYPE
Which allow creating, altering and dropping user defined types. #426

Example:

CREATE TYPE employee (
    id int,
    name text,
    salary int
)

CREATE TYPE pair (
    first employee,
    second employee
)

Authentication

ScyllaDB now supports authentication and user management CQL operations, #1121
CREATE USER
ALTER USER
DROP USER
LIST USERS

Example:

CREATE USER alice WITH PASSWORD 'password_alice' SUPERUSER;
CREATE USER bob WITH PASSWORD 'password_bob' NOSUPERUSER;

ALTER USER alice WITH PASSWORD 'ecila';
ALTER USER bob SUPERUSER;

DROP USER alice;
DROP USER IF EXISTS bob;

Authorization

ScyllaDB now support authorization operations, compatible with Cassandra 2.1, #1138
GRANT PERMISSIONS
LIST PERMISSIONS
REVOKE PERMISSIONS

Example:

GRANT SELECT ON ALL KEYSPACES TO viewers;
GRANT MODIFY ON KEYSPACE keyspace1 TO writers;

REVOKE SELECT ON ALL KEYSPACES FROM viewers;

LIST ALL PERMISSIONS OF bob;

New SSTable Loader tool

ScyllaDB now comes with sstableloader a CQL-based tool for bulk import of existing sstables into a running ScyllaDB cluster.

Encryption support for server-to-server and client-to-server connection

Supports secure SSL/TLS communication for both server-to-server and client connection. More on setting up ScyllaDB encryption here

ScyllaDB Setup Script

scylla_setup is an all-in-one script to set up your ScyllaDB environment for production usage.
It will guide you through a list of recommended setup steps including:

  • Disabling SELinux
  • Setting up RAID 0 and XFS
  • Setting up NTP
  • Running scylla_io_setup to tune IO queues for best performance

You can run scylla_setup multiple times, skipping steps you do not want to execute.

Additional Nodetool operations:

  • nodetool disablebinary #1137
  • nodetool removenode force #1135
  • nodetool removenode status #1135
  • nodetool snapshot -kc #1133
  • Nodetools cfstats SSTable Compression Ratio (#636)

Additional metrics

  • PreparedStatementsRatio #1068

Bug fixes and minor improvements

  • scylla_setup and other scripts are now in the execution path by default #1187
  • Adding nodes to a cluster may fail or freeze the cluster if streaming causes throttling #1144
  • Fix corner cases of migration from Cassandra to ScyllaDB, including merging range tombstones #1136, #1125
  • Fix performance issues caused by having all NIC interrupts routed to cpu0 by default, reducing its performance #1126
  • Fix potential overflow in Linux’s syn backlog. tcp_syncookies resulting from opening a lot of connections simultaneously #1118
  • Do not allow ScyllaDB to run if scylla_io_setup did not complete #1091
  • ScyllaDB docker image did not run JMX proxy #1090
  • Fix potential file system errors found by CharybdeFS error injections #705, #706, #707, #709, #710, #711, #712
  • Respect configuration options for shutting down communications after I/O errors
  • Improve I/O performance on AWS i2 instances
  • Provide default metrics for scyllatop
  • Add sums and means to scyllatop
  • Support PostgreSQL-style string literal (#1078)
  • Improve error messages for failed compactions (#1123)
  • Ignore commitlog segments generated by Cassanadra-derived tools (#1112)
  • Replay batch logs during node decommission (#1085)
  • Improve leveled compaction strategy efficiency when small sstables are present
  • Fix incorrect sstable sizes with leveled compaction strategy if compression is enabled (#1177)
  • Allow specifying maximum sstable size with leveled compaction strategy
  • Fix level mismatch with leveled compaction strategy (#1180)
  • Prevent data resurrection due to non-atomic deletion of sstables shared across shards after data import from Cassandra (#1181)
  • Seastar fixes for better latency response
  • Seastar rpc protocol fixes
  • Fix build with older gnutls versions
  • Per-data-center collectd counters
  • Unofficial debian 8.4 support

ScyllaDB 1.1 contributions

Amnon Heiman (1):
      api: set the api_doc before registering any api

Asias He (33):
      tests: Fix stop of storage_service in cql_test_env
      streaming: Handle cf is deleted after the deletion check
      streaming: Move ranges in stream_plan
      gossip: Handle unknown application_state when printing
      gossip: Sync gossip_digest.idl.hh and application_state.hh
      streaming: Simplify session completion logic
      messaging_service: Take reference of ms in send_message_timeout_and_retry
      streaming: Start to send mutations after PREPARE_DONE_MESSAGE
      streaming: Complete receive task after the flush
      Revert "Revert "streaming: Simplify session completion logic""
      Revert "Revert "streaming: Start to send mutations after PREPARE_DONE_MESSAGE""
      streaming: Harden keep alive timer
      streaming: Fix log of plan_id and session address in stream_session
      batchlog_manager: Allow user initiated bachlog replay operation
      batchlog_manager: Avoid stopping batchlog_manager more than once
      storage_service: Do batch log replay in decommission
      storage_service: Shutdown batchlog_manager after decommission
      conf: Drop duplicated section for endpoint_snitch
      gossip: Add SUPPORTED_FEATURES application_state
      gossip: Introduce get_supported_features
      gossip: Introduce wait_for_feature_on_{all}_node
      db: Add supported_features column in system.local and system.peers table
      gossip: Add supported_features helper in versioned_value
      storage_service: Introduce get_config_supported_features
      system_keyspace: Add supported_features into system.local table
      storage_service: Add supported_features into system.peers table
      storage_service: Advertise supported_features into cluster
      token_metadata: Do not assert in get_host_id
      storage_service: Add print info in confirm_replication
      storage_service: Add get_removal_status
      storage_service: Add force_remove_completion
      storage_service: Rename remove_node to removenode
      api: Wire up storage_service removal_status and force_remove_completion

Avi Kivity (32):
      Merge seastar upstream
      Update scylla-ami submodule
      Merge "Ubuntu based AMI support" from Takuya
      Merge "Make apply() exception-safe" from Tomasz
      Merge "CQL syntax extension to handle sstable loader lists" from Calle
      Merge "Merge "iotune packaging fix" from Takuya
      Update scylla-ami submodule
      Merge "Fix row_cache_alloc_stress test" from Tomasz
      Merge seastar upstream
      Merge "Bring back simplify session completion logic" from Asias
      Initial github issue template
      dist: ami: fix AMI_OPT receiving no value
      schema_tables: fix deadlock in cross-node communications
      dist/ubuntu: specify kill timeout
      dist/ubuntu: improve handling of bad command line options
      commitlog: ignore commitlog segments generated by Cassandra-derived tools
      cql: unlock ALTER TABLE syntax
      Merge "Fix query digest mismatch" from Tomasz
      Merge seastar upstream
      sstables: filter sstables single-row read using first_key/last_key
      sstables: add delete_atomically(), for atomically deleting multiple sstables
      main: cancel pending atomic deletions on shutdown
      sstables: convert sstable::mark_for_deletion() to atomic deletion infrastructure
      db: delete compacted sstables atomically
      Merge seastar upstream
      Merge
      Merge seastar upstream
      dist/redhat: package scylla_kernel_check
      Merge seastar upstream
      Point seastar submodule at scylla-seastar repository
      Backport seastar iotune fixes
      Update seastar submodule

Benoît Canet (6):
      exception: Optionally shutdown communication on I/O errors.
      exceptions: Shutdown communications on non file I/O errors
      dist/ubuntu: Fix the init script variable sourcing
      collectd: Write to the network to get rid of spurious log messages
      scylla_setup: Check if scylla-jmx is installed
      scylla_dev_mode_setup: Unify --developer-mode prompt and parsing

Calle Wilund (55):
      cql3::lists: Add setter_by_uuid operation
      cql3::operation: Allow set_element to be "by uuid" (for lists)
      Cql.g: Add extension function SCYLLA_TIMEUUID_LIST_INDEX
      sstables: Add delete func to rename TOC ensuring table is marked dead
      database: Use disk-marking delete function in discard_sstables
      lists.cc: setter_by_uuid does not require read before execute
      auth::authenticator: option<->string
      authenticated_user: implement "is_super"
      client_state : Add ensure_not_anonymous method
      client_state: Propagate login user in merge
      client_state: break up setting login/validation
      cql3::user_options: Add options wrapper type
      cql3::authentication_statement: cql auth base class
      cql3::create_user_statement: Initial conversion
      cql3::alter_user_statement: Initial conversion
      cql3::drop_user_statement: Initial conversion
      cql3::list_users_statement: Initial conversion
      Cql.g: Add create/drop/alter/list user parsing
      auth::data_resource: Move declaration of "resource_ids"
      auth::data_resource: Fix to_string to match origin
      auth::permission: Add stringizers + move sets into namespace
      auth::permission_set: Add < operator
      auth::authenticated_user: Add copy/move constructors
      log: Add output operator for std::exception&/std::system_error&
      cql3::untyped_result_set: Add get_set<> method
      data_value: Add constructor from unordered_set<>
      tuple_hash: Add convinence operator for two arguments (non-pair)
      auth::authorizer: Initial conversion
      auth::authenticator: Change "protected_resources" to return reference
      utils::loading_cache: Version of the LoadingCache type used in origin
      tests::cql_test_env: Fake logged in user in case test requires is.
      auth::auth: Add authorizer initialization + permissions getter
      db::config: Add permissions cache entries/mark auth/perm as used
      validation: Add KS validation + convinence methods
      service::client_state: Add authorization checkers
      cql3::statements: Change check_access to future<> + implement
      cql3::statements::authorizarion_statement: Initial conversion
      cql3::statements::permission_altering_statement: Inital conversion
      cql3::statements::list_permissions_statement: Initial conversion
      cql3::statements::grant_statement: Initial conversion
      cql3::statements::revoke_statement: Initial conversion
      cql3::statements::drop_user_statement: Drop all permissions for user
      Cql.g: Permission statements parsing
      scylla.yaml: Move authorizer/authenticator options to supported section
      cql3/drop_table_statement: Fix exception handling in access check
      database.cc: Fix compilation error with boost 1.55
      sstables: Fix compilation error on boost 1.55
      client_state: Remove unwarranted keyspace check
      messaging_service: Change init to use per-shard tls credentials
      auth: Make auth.* schemas use deterministic UUIDs
      messaging_service: Add logging to match origin
      storage_service: Add logging to match origin
      messaging_service: Change tls init to use credentials_builder
      cql_server: Use credentials_builder to init tls
      transport::server: Do not treat accept exception as fatal

Duarte Nunes (32):
      init: Trim spaces in seeds list
      cql: Add support for pg-style string literal
      cql3: Disable pg-style string format test
      cql: Fix antlr3 missing token leak
      udt: Fix user type compatibility check
      udt: Implement to_string() for selectable
      cql3: Implement contains relation
      types: Don't wrap tombstone in an std::optional
      udt: Parse user types system table
      udt: Remove user_types field from keyspace
      udt: Take name by ref when querying for an UDT
      udt: Add migration notifications
      udt: Add mutations for user defined types
      udt: Announce UDT migrations
      schema: Replace ad hoc func with indirect_equal_to
      udt: Implement equals() for user_type_impl
      types: Add operator== for abstract_types
      map_difference: Allow on unordered_map
      udt: Fix user type compatibility check
      udt: Merge user defined type mutations
      udt: Complete create_type_statement
      udt: Implement as_cql3_type for user_type_impl
      udt: Add is_user_type function to abstract_type
      udt: Add references_user_type to abstract_type
      udt: Add drop type statement
      udt: Add grammar for dropping user types
      udt: Add capability to replace a user_type
      udt: Add alter type statement
      udt: Add grammar for altering user types
      udt: Add unit test for user type schema changes
      udt: type_parser handles user defined types
      udt: Enable user type query test case

Glauber Costa (32):
      sstables: do not assume mutation_reader will be kept alive
      stream_session: remove duplicated debug message
      stream_session: print debug message for STREAM_MUTATION
      fix small typo
      database: create a class for memtable_list
      database: move active_memtable to memtable_list
      database: move add_memtable as a method of the memtable_list
      database: make seal_on_overflow a method of the memtable_list
      priority manager: separate streaming reads from writes
      streaming: add incoming streaming mutations to a different sstable
      streaming memtables: coalesce incoming writes
      database: keep streaming memtables in their own region group
      repair: rework repair code so we can limit parallelism
      sanity check Seastar's I/O queue configuration
      commitlog: initialize sync period with actual sync period
      compaction: be verbose about which table is causing an exception
      sstables: fix exception printouts in check_marker
      do not re-read the summary
      make get_sstable_key_range an instance method
      index reader: make index_consumer a template parameter
      sstables: avoid passing schema unnecessarily
      sstables: allow read_toc to be called more than once
      summary: generate one if it is not present
      index_reader: avoid misleading parent name
      clear components if reading toc fail
      review fixes for generate_summary
      be robust against broken summary files
      sstable_tests: make sure the generation of the Summary is sane
      move information about memtables' region group inside memtable list
      unnest throttle_state
      memtable_list: make sure at least two memtables are available
      throttle: always release at least one request if we are below the limit

Gleb Natapov (23):
      avoid invoke_on_all during developer-mode application if possible
      messaging: do not delete client during messaging service shutdown
      messaging: do not admit new requests during messaging service shutdown.
      init: make more initialization threaded
      config: enable truncate_request_timeout_in_ms option
      commitlog, sstables: enlarge XFS extent allocation for large files
      storage_proxy: cleanup data_read_resolver::resolve()
      storage_proxy: move hack to make coordinator most preferable node for read into sorting function
      cl: enable logging for insufficient LOCAL_QUORUM consistency
      storage_proxy: add logging for mutation write path
      storage_proxy: add logging to read executor creation path
      query: add lazy printer to query::result
      query: add calculate_row_count function to query::result
      storage_proxy: cleanup query logging.
      storage_proxy: move verbose query result printing into separate logger
      storage_proxy: add query result row count to brief format
      udt: fix error generation if accessed type is not udt
      storage_proxy: add logging for range query row count estimation
      storage_proxy: fix calculation of concurrency queried ranges
      query: put live row count into query::result
      storage_proxy: stop range query with limit after the limit is reached
      query: fix result row counting for results with multiple partitions
      tests: test for result row counting

Nadav Har'El (12):
      Fix out-of-range exception when uncompressing 0 bytes
      Allow uncompression at end of file
      sstable: fix use-after-free of temporary ioclass copy
      sstable: fix read failure of certain sstables
      sstables: merge range tombstones if possible
      sstables: overhaul range tombstone reading
      sstables: Move check_marker() to source file
      sstables: another test for range tombstone merging
      stable: overhaul (again) range tombstone merging
      sstable_mutation_test: strengthen tombstone_merging test
      sstable_mutation_test: another test for range tombstone merging
      stables_mutation_test: more compare keys not representations

Paweł Dziepak (15):
      lsa: update _closed_occupancy after freeing all segments
      tests/lsa: do not leak memory in large allocation test
      tests/lsa: add test for region groups
      sstables: remove HyperLogLog throw() specifier
      storage_proxy: catch all exceptions in read executor
      commitlog: make sure that segment destructor doesn't throw
      log: ignore logging exceptions
      database: remove throw() specifiers
      transport: retry do_accept() in case of bad_alloc
      storage_proxy: catch all errors in abstract_read_executor::execute()
      log: try to report logger failure
      gossiper: handle failures in gossiper thread creation
      transport: ignore errors during connection shutdown
      exceptions: make exception constructors noexcept
      storage_proxy: mark hint_to_dead_endpoints() noexcept

Pekka Enberg (40):
      tests/gossip_test: Fix messaging service stop
      Merge "Fix debug messages for streaming session" from Glauber
      main: Defer API server hooks until commitlog replay
      dist: Fix '--developer-mode' parsing in scylla_io_setup
      main: Fix broadcast_address and listen_address validation errors
      dist/ubuntu: Install wget package if it's not available
      build: Invoke Seastar build only once
      dist/ubuntu: Use tilde for release candidate builds
      Merge seastar upstream
      service/migration_manager: Simplify verb unregistration
      Revert "streaming: Start to send mutations after PREPARE_DONE_MESSAGE"
      Revert "streaming: Simplify session completion logic"
      Merge "Make sure repairs do not cripple incoming load" from Glauber
      Revert "dist: re-enable clocksource=tsc on AMI"
      Revert "dist: move setup scripts to /usr/sbin"
      Update scylla-ami submodule
      dist/docker/ubuntu: Use bash in start-scylla script
      Merge "Random exception safety fixes" from Paweł
      Merge "Do batch log replay in decommission" from Asias
      Fix pre-ScyllaDB copyright statements
      Merge "gossip: Introduce SUPPORTED_FEATURES" from Asias
      Merge "Fixes for mutation querying" from Tomek
      Merge "Be able to boot without a Summary" from Glauber
      cql3: Make lexer and parser error messages compatible with Cassandra
      Merge "CQL authentication implementation" from Calle
      Merge "More exception safety fixes" from Paweł
      Merge "Fixes for the reading of missing Summary" from Glauber
      dist/docker/redhat: Make sure image builds against latest ScyllaDB
      dist/docker/redhat: Start up JMX proxy and include tools
      Merge "Support nodetool removenode force and status" from Asias
      Merge "Delete compacted sstables atomically" from Avi
      Merge "Fix query of collection cell with all items deleted" from Tomek
      Merge seastar upstream
      Merge "Authorizer support" from Calle
      Merge "Add support for User Defined Types" from Duarte
      cql3: Fix DROP KEYSPACE error message when keyspace does not exist
      Merge "Additional mutations/queries related collectd metrics" from Vlad
      Merge "Fix for systemd support on Ubuntu, add Ubuntu 16.04 support" from Takuya
      release: prepare for 1.1.rc1
      release: prepare for 1.1.0

Piotr Jastrzebski (3):
      Add more info to wrong RPC address error
      Implement tuple_type_impl::from_string
      sstables: Remove unused code from mp_row_consumer

Raphael Carvalho (4):
      db: better handling of failure in column_family::populate
      service: fix refresh
      Fix corner-case in refresh
      sstables: fix deletion of sstable with temporary TOC

Raphael S. Carvalho (9):
      api: Add support to get column family compression ratio
      sstables: enable leveled strategy feature to prevent L0 from falling behind
      sstables: fix incorrect sstable size when compression is enabled
      sstables: allow user to specify max sstable size with leveled strategy
      sstables: Fix leveled compaction strategy
      tests: test that leveled strategy was fixed
      sstables: move compaction strategy code to a new source file
      sstables: kill unused code from size tiered strategy
      tests: fix use-after-free in sstable test

Shlomi Livne (4):
      fix centos local ami creation (revert some changes)
      dist/ami: Use the actual number of disks instead of AWS meta service
      scylla_io_setup import scylla-server env args
      fix a collision betwen --ami command line param and env

Takuya ASADA (49):
      dist: do not auto-start scylla-server job on Ubuntu package install time
      dist: add scylla-gdb.py on Ubuntu dbg package
      dist: On scylla_sysconfig_setup, don't disable cpu0 on non-AMI environments
      dist: follow sysconfig setting when counting number of cpus on scylla_io_setup
      dist: Ubuntu based AMI support
      dist: prevent to show up dialog on apt-get in scylla_raid_setup
      dist: fix broken scylla_install_pkg --local-pkg and --unstable on Ubuntu
      dist: launch scylla_ami_setup on Ubuntu AMI
      dist: allow to run 'sudo scylla_ami_setup' for Ubuntu AMI
      dist: allow more requests for i2 instances
      dist: stop using '-p' option on lsblk since Ubuntu doesn't supported it
      dist: enable collectd on scylla_setup by default, to make scyllatop usable
      dist: introduce dev-mode.conf and scylla_dev_mode_setup
      dist: on scylla_io_setup print out message both for stdout and syslog
      dist: remove scylla-io-setup.service and make it standalone script
      dist: on scylla_io_setup, SMP and CPUSET should be empty when the parameter not present
      dist: drop -j2 option on .spec, make build_rpm.sh able to specify -j option
      dist/ami: use tilde for release candidate builds
      dist: move setup scripts to /usr/sbin
      dist: re-enable clocksource=tsc on AMI
      dist: re-enable clocksource=tsc on AMI
      dist/redhat: prevent 'yum: command not found' on some Fedora environment
      dist/ubuntu: drop classical sysv init script, only support Upstart for Ubuntu 14.04LTS
      dist/common/scripts: prevent misinterpret blank input as '/dev/', show error when inputted device path is not found
      dist: add setup scripts symlink to /usr/sbin
      dist/common/scripts: update SET_NIC when --setup-nic passed to scylla_sysconfig_setup
      dist/redhat: drop very old %pre script
      dist: fix build error at copy symlinks
      dist/ubuntu: drop unused scripts
      dist: Support systemd for Ubuntu 15.10
      dist: #!/bin/bash for all scripts
      dist/ami: fix incorrect service name on .bash_profile
      dist/ami: Show correct login message when scylla-ami-setup.service is still running
      utils: fix compilation error on utils/exceptions.hh
      main: add tcp_syncookies sanity check
      dist/common/scripts: Add kernel version check
      dist/common/scripts: On scylla_setup, skip showing 'lo' interface on sysconfig prompt
      dist/common/scripts: Fix incorrect order to run scylla_sysconfig_setup on scylla_setup
      configure.py: configure.py: add --static-thrift option to link libthrift statically
      dist/ubuntu: Drop dependency to libthrift0, link it statically
      dist/common/scripts: notice restart required after changing bootparameters
      dist/common/scripts: show knowledge base URL when kernel is too old
      dist/ubuntu/dep: use distribution's thrift-compiler-0.9.1 on newer versions of Ubuntu
      dist/ubuntu/dep: Drop python-support on Ubuntu 16.04
      dist/ubuntu: skip dh_installinit --upstart-only on recent versions of Ubuntu
      dist/ubuntu: add dependency for libsystemd-dev to handle startup correctly on recent versions of Ubuntu
      dist/ubuntu: don't use ubuntu-toolchain-r/test ppa repo on recent versions of Ubuntu, since it has newer g++
      dist/ubuntu: support 16.04
      dist/ubuntu: unofficial support Debian 8.4

Tomasz Grabiec (61):
      Merge branch 'pdziepak/fix-lsa-memory-accounting/v1' from seastar-dev.git
      mutation_partition: Unmark cell_entry's copy constructor as noexcept
      mutation_partition: Make row::vector_to_set() exception-safe
      mutation_partition: Add cell_entry constructor which makes an empty cell
      modificiation_statement: Use result_view::do_with()
      mutation: Add copy assignment operator
      managed_bytes: Make linearization_context::forget() noexcept
      managed_bytes: Make copy assignment exception-safe
      managed_bytes: Mark move-assignment noexcept
      mutation_partition: Make row::merge() tolerate empty row
      mutation_partition: row: Allow storing empty cells internally
      mutation_partition: row: Add empty()
      Introduce the concept of ReversiblyMergeable
      tombstone: Make ReversiblyMergeable
      atomic_cell: Add REVERT flag
      atomic_cell_hash: Specialize appending_hash<> for atomic_cell and collection_mutation
      atomic_cell_or_collection: Introduce as_atomic_cell_ref()
      mutation_partition: Make row ReversiblyMergeable
      mutation_partition: Make row_marker ReversiblyMergeable
      mutation_partition: Make rows_entry ReversiblyMergeable
      mutation_partition: Make row_tombstones_entry ReversiblyMergeable
      mutation_partition: Make intrusive sets ReversiblyMergeable
      mutation_partition: Make apply() atomic even in case of exception
      mutation_partition: Fix friend declarations
      mutation_test: Fix use-after-free
      mutation_test: Make make_blob() return different blob each time
      mutation_test: Hoist make_blob() to a function
      mutation_test: Add more apply() tests
      mutation_test: Add allocation failure stress test for apply()
      perf_simple_query: Make duration configurable
      managed_bytes: Make operator[] work for large blobs as well
      logalloc: Rename tracker::occupancy() to region_occupancy()
      logalloc: Introduce tracker::occupancy()
      Fix assertion in row_cache_alloc_stress
      cql3: batch_statement: Execute statements sequentially
      cql_test_env: Make initialization exception-safe
      schema_tables: Wait for notifications to be processed.
      storage_service: Fix typos
      tests: sstable_mutation_test: Compare keys not representations
      mutation_query: Extract main part of mutation_query() into more generic querying_reader
      database: Compact mutations when executing data queries
      tests: result_set_assertions: Add and_only_that()
      partition_slice_builder: Add new setters
      tests: mutation_test: Add test case for querying of expired cells
      tests: mutation_test: Move mutation generator to mutation_source_test.hh
      tests: mutation_source: Include random mutations in generate_mutation_sets() result
      tests: Add test for query digest calculation
      mutation_partition: Fix reversed trim_rows()
      mutation_partition: Fix static row being returned when paginating
      tests: cql_query_test: Add test for slicing in reverse
      types: Add default argument values to is_any_live()
      mutation_partition: Fix collection emptiness check
      tests: Add test for query of collection with deleted item
      Merge branch 'dev/gleb/logging'
      Merge branch 'glommer/issue-1144-v5'
      api: Fix error message
      query: Do not take arguments via ... in the visitor
      migration_manager: Invalidate prepared statements on every schema change
      migration_manager: Fix schema syncing with older version
      schema_registry: Fix possible hang in maybe_sync() if syncer doesn't defer
      tests: Add unit tests for schema_registry

Vlad Zolotarov (7):
      conf: resurrect the important text related to endpoint_snitch configuration
      storage_proxy: add counters for received and forwarded mutations
      storage_proxy: add split counters for writes
      storage_proxy: add read requests split counters
      database: add metrics for total writes and reads
      batchlog_manager: add a counter for a total number of write attempts
      query_processor: account unprepared statements executions

Yoav Kleinberger (4):
      tools/scyllatop: some sensible default metrics
      tools/scyllatop: defend against unexpected strings from collectd
      tools/scyllatop: add sums to aggregate view
      scyllatop: differentiate metrics coming from different hosts

yan cui (2):
      dist: add ubuntu docker file
      dist/docker: refine docker file for ubuntu

ScyllaDB JMX 1.1 contributions

Amnon Heiman (5):
      ProcessingException was changed to IllegalStateException
      ApiClient: Add getReverseMapStrValue method
      StorageService: Get the broadcast address from the API
      EndpointState: log and ignore not supported states
      StorageService: Add takeMultipleColumnFamilySnapshot support

Pekka Enberg (6):
      APIClient: Make API server errors human readable
      StorageService: Fix scrub() variant API wiring
      dist/ubuntu: Relax Java dependencies
      dist/ubuntu: Use tilde for release candidate builds
      release: prepare for 1.1.rc1
      release: prepare for 1.1.0

Takuya ASADA (6):
      dist: do not auto-start scylla-server job on Ubuntu package install time
      dist/ubuntu: drop classical sysv init script, only support Upstart for Ubuntu 14.04LTS
      dist: #!/bin/bash for all scripts
      dist/ubuntu: generate correct distribution codename on debian/changelog
      dist/ubuntu: resolve build time dependency by mk-build-deps command
      dist/ubuntu: fix build error on Ubuntu 16.04

About ScyllaDB Team

ScyllaDB is the world’s fastest wide-column store database: the functionality of Apache Cassandra with the speed of a light key/value store.