Skip to content

RELEASE Scylla 0.14 Beta

Tzach Livyatan edited this page Jan 6, 2016 · 5 revisions

The Scylla team is pleased to announce the release of Scylla version 0.14

Scylla is an open source, Cassandra-compatible NoSQL database, with superior performance and consistent low latency This version is an incremental improvement release on the beta series, focus on stability and bug fix. Some of the noteworthy updates are:

  • Scylla does not consume 100% CPU when idle anymore
  • By default, Scylla will not run without XFS. Use --developer-mode true option to bypass this mechanism to run without XFS. Note that running in developer mode (without XFS) will result in inferior performance. The Docker image always use developer-mode.
  • CQL: TRUNCATE TABLE alias for TRUNCATE A full list of contributions below

Get started with Scylla 0.14 here.

If you have any questions about the new release, please post to the scylladb-users mailing list.

Scylla Contributions

Amnon Heiman (9):
      Add memory_footprint method to summary_ka
      sstable: Add get_summary function
      API: Add the implementation for index_summary_off_heap_memory
      API: Init value for cf_map reduce should be of type int64_t
      storage_service: describe_ring return full data
      load_broadcaster report negative size
      API: report the load map as an unformatted double
      main: start the http server in the first step
      API: repair to use documented params

Asias He (35):
      storage_service: Fix added node not showing up in nodetool in status joining
      storage_service: Simplify prepare_to_join with seastar thread
      storage_service: Fix decommissioned nodes are willing to rejoin the cluster if restarted
      storage_service: Make before_change and on_change log print more informative
      gossip: Pass const ref for versioned_value in on_change and before_change
      gossip: Kill default constructor for versioned_value
      gossip: Fix endless marking a node down
      gossip: Introduce get_gossip_status
      gossip: Simplify is_shutdown and friends.
      gossip: Print node status in handle_major_state_change
      token_metadata: Print Token changing ownership from
      system_keyspace: Flush system.peers in remove_endpoint
      token_metadata: Do nothing if tokens is empty.
      token_metadata: Add get_endpoint_to_token_map_for_reading
      storage_service: Enable commented out code in handle_state_normal
      storage_service: Log removing replaced endpoint from system.peers
      streaming: Add retransmit logic for streaming verbs
      streaming: Propagate fail to send PREPARE_DONE_MESSAGE exception
      storage_service: Fix default ring_delay time
      storage_service: Make bootstrapping/leaving/moving log more consistent
      database: Add non-const version of get_row_cache
      streaming: Remove transfer_files
      streaming: Add helper to get distributed<database> db
      streaming: Invalidate cache upon receiving of stream
      streaming: Print old state before setting the new state
      streaming: Retransmit COMPLETE_MESSAGE message
      streaming: Increase retry timeout
      streaming: Print All sessions completed after state change message
      streaming: Get stream_session in STREAM_MUTATION handler
      streaming: Introduce keep alive timer for each stream_session
      streaming: Fix session hang with maybe_completed: WAIT_COMPLETE -> WAIT_COMPLETE
      gossip: Print endpoint_state_map debug info in trace level
      storage_service: Add more debug info in decommission
      storage_service: Fix erase new_replica_endpoints in get_changed_ranges_for_leaving
      storage_service: Introduce ring_delay_ms option

Avi Kivity (37):
      allocation_strategy: expose preferred allocation size limit
      managed_bytes: conform to allocation_strategy's max_preferred_allocation_size
      atomic_cell_or_collection: linearize(), unlinearize()
      mutation_partition: work on linearized atomic_cell_or_mutation objects
      lsa: advertize our preferred maximum allocation size
      tests: test large blobs in memtables
      Merge "Fix replace_node support" from Asias
      Merge "Make LSA more large-allocation-friendly" from Paweł
      Merge seastar upstream
      Merge seastar upstream
      Merge seastar upstream
      Merge seastar upstream
      main: remove issue #417 (poll mode) warning
      release: copy version string into heap
      Merge seastar upstream
      mutation_partition: fix leak in move assignment operator
      Merge "compaction history support" from Raphael
      Merge " implement get_compactions API" from Raphael
      Merge
      Merge seastar upstream
      Merge seastar upstream
      Merge "background mutation throttling" from Gleb
      Merge "Preliminary changes for handling of schema changes" from Tomasz
      Merge seastar upstream
      logger: be robust when exceptions are thrown while stringifying args
      Merge "Make date parser more liberal" from Paweł
      Merge "Fixes for CentOS/RHEL support" from Takuya
      Merge "storage_service updates" from Asias
      Merge seastar upstream
      Merge "Introduce keep alive timer for stream_session" from Asias
      Merge "streaming: Invalidate cache upon receiving of stream" from Asias
      Merge "Messaging service TLS" from Calle
      Merge "CQL server SSL" from Calle
      db: provide more information on "Unrecognized error" while loading sstables
      lsa: disable constant_time_size in binomial_heap implementation
      init: bail out if running not on an XFS filesystem
      main: verify that the NOFILE rlimit is sufficient

Calle Wilund (14):
      commitlog: Add some comments about the IO flow
      mutation_partition: Do not return static row if CK range does not match
      data_output: specialize serialized_size for bool to ensure sync with write
      db/serializer: Add support for optional<T> to be serialized
      paging_state: Make clustering key optional
      query_pagers: Remove unneeded clustering + remove static workaround
      config: clean up some style + move method to cc file
      config: Modify/use server_encryption_options
      messaging_service: Optionally create SSL endpoints
      main/init: Use server_encryption_options
      scylla.conf: Modify server_encryption_options section
      scylla.conf: Update client_encryption_options with scylla syntax
      cql_server: Allow using SSL socket
      storage_service: Set up CQL server as SSL if specified

Glauber Costa (2):
      perf_sstable: use current scylla default directory
      main: check if options file can be read.

Gleb Natapov (3):
      storage_proxy: unfuturize send_to_live_endpoints()
      storage_proxy: throttle mutations based on ongoing background activity
      storage_proxy: provide timeout for send_mutation verb

Lucas Meneghel Rodrigues (2):
      utils/logalloc.cc - Declare member minimum_size from segment_zone struct
      scylla_coredump_setup: Don't call yum on scylla server spec file

Nadav Har'El (11):
      messaging_service: allow any self-serializing type
      messaging_service: drop unnecessary explicit templates
      murmur3 partitioner: fix midpoint() algorithm
      repair: job id must start at 1
      repair: log repair options
      repair: partial support for some options
      repair: fix missing default values
      repair: support "columnFamilies" parameter
      repair: add missing ampersand
      repair: check columnFamilies list
      murmur3 partitioner: remove outdated comment, and code

Paweł Dziepak (44):
      lsa: use bi::list to implement segment_stack
      tests/row_cache_alloc_stress: make sure that allocation fails
      lsa: maintain segment to region mapping
      utils: add dynamic_bitset
      tests: add tests for utils::dynamic_bitset
      lsa: avoid fragmenting memory
      lsa: add more counters
      scylla-gdb.py: print lsa zones
      tests/lsa: add large allocations test
      managed_bytes: fix copy size in move constructor
      cql3: do not assume that clustering key is full
      mutation_partition: remove unused find_entry()
      sstables: do not assume clustering_key has the proper format
      keys: allow creating partial views of prefixes
      keys: add prefix_equality_less_compare for prefixes
      db: make clustering_key a prefix
      tests/cql: add test for clustering keys with empty components
      managed_bytes: fix potentially unaligned accesses
      tests/lsa: reduce the size of large allocation
      thrift: let class_from_compound_type() accept prefixable types
      schema: remove _clustering_key_prefix_type
      compound: fix compare() of prefixable types
      tests/cql: add test for ordering clustering keys
      row_cache: add functions for invalidating entries in cache
      mutation_partition: do not move rows_entry::_link
      transport: ignore future when stopping the server
      storage_service: implement get_drain_progress()
      transport: wait for outstanding requests to end during shutdown
      database: add non-const getter for compaction_manager
      compaction_manager: check whether the manager is already stopped
      messaging_service: wait for outstanding requests
      messaging_service: restore indentation
      storage_service: implement drain()
      api: enable storage_service::drain()
      test.py: add missing tests
      tests/key_reader: make sure that the reader lives long enough
      sstables: respect range inclusiveness in key_reader
      test/sstables: add more key_reader tests
      sstables: respect range inclusiveness in key_reader
      test/sstables: add more key_reader tests
      types: catch parsing errors in timestamp_from_string()
      types: timestamp_from_string(): restore indentation
      types: timestamp_from_string: accept more date formats
      tests/types: add more tests for date and time parsing

Pekka Enberg (30):
      cql3: Implement maps::literal::test_assignment() function
      types: Fix frozen collection type names
      dist/docker: Enable SMP support
      sstables/compaction: Fix compilation error with GCC 4.9.2
      Merge "Add unit test for get_restricted_ranges()" from Tomek
      Merge "dist: provide generic Scylla setup script" from Takuya
      Merge "Implement nodetool drain" from Paweł
      Improve not implemented errors
      cql3: Move update_statement implementation to source file
      cql3: Move select_statement implementation to source file
      cql3: Move property_definitions implementation to source file
      cql3: Move parsed_statement implementation to source file
      cql3: Move modification_statement implementation to source file
      cql3: Move delete_statement implementation to source file
      cql3: Remove untranslated IMeasurableMemory code from column_identifier
      cql3: Remove some ifdef'd code
      Merge "cleanups and improvements" from Raphael
      cql3: Move update_statement implementation to source file
      cql3: Move select_statement implementation to source file
      cql3: Move property_definitions implementation to source file
      cql3: Move parsed_statement implementation to source file
      cql3: Move modification_statement implementation to source file
      cql3: Move delete_statement implementation to source file
      cql3: Remove untranslated IMeasurableMemory code from column_identifier
      cql3: Remove some ifdef'd code
      Merge "use steady_clock where monotonic clock is required" from Vlad
      main: Fix implicitly disabled client encryption options
      Merge "load report a negative value" from Amnon
      release: prepare for 0.14
      dist: Increase NOFILE rlimit to 200k

Raphael S. Carvalho (21):
      db: add missing sstable::mark_for_deletion call
      sstables: fix comment describing sstable::mark_for_deletion
      db: fix indentation
      sstables: remove outdated comment
      db: add method to update the system table COMPACTION_HISTORY
      db: add method to get compaction history
      sstables: update compaction history at the end of compaction
      api: add support to compaction history
      sstables: move compaction_stats to header file
      sstables: store keyspace and cf in compaction_stats
      db: add method to get compaction manager from cf
      compaction_manager: introduce list of compaction_stats
      compaction: register and deregister compaction_stats
      api: implement get_compactions
      fix cql_query_test
      db: fix build of sstable list in column_family::compact_sstables
      db: add missing sstable::mark_for_deletion call
      sstables: fix comment describing sstable::mark_for_deletion
      db: fix indentation
      sstables: remove outdated comment
      compaction: fix max_purgeable calculation

Shlomi Livne (1):
      Make sure the directory we are writting coredumps to exists

Takuya ASADA (25):
      dist: add package dependency to gnutls library
      dist: add scylla-gdb.py on scylla-server-debuginfo rpm package
      dist: add mdadm, xfsprogs on package dependencies
      dist: specify NIC ifname on sysconfig, pass it to posix_net_conf.sh
      dist: add SET_NIC entry on sysconfig
      dist: provide generic scylla setup script
      dist: enable coredump, save it to /var/lib/scylla/coredump
      dist: host gcc-5.1.1-4.fc22.src.rpm on our S3 account, since Fedora mirror deleted it
      dist: add hwloc as a dependency
      dist: downgrade g++ to 4.9 on Ubuntu
      dist: add missing building time dependencies for Ubuntu
      dist: add execute permission to build_ami_local.sh
      dist: skip mounting RAID if it's already mounted
      dist: use tsc clocksource on AMI
      dist: support CentOS yum repository
      dist: use $ID instead of $NAME to detect type of distribution
      dist: use /etc/os-release instead of /etc/redhat-release
      dist: support RHEL on scylla_install
      dist: setup ntpd on AMI
      dist: support non-ami boot parameter setup, add parameters for preallocate hugepages on boot-time
      dist: don't abort scylla_coredump_setup when 'yum remove abrt' failed
      dist: use readable time format on coredump file, instead of unix time
      dist: show usage and scylla-server status when login to AMI instance
      dist: fix .rpm build error (File not found: scylla_extlinux_setup)
      dist: apply limits settings correctly on Ubuntu

Tomasz Grabiec (36):
      Merge tag 'large-blobs/v3' from git@github.com:avikivity/scylla.git
      Merge branch 'dev/amnon/index_summary_size_v2' from seastar-dev.git
      Merge branch 'pdziepak/fix-partial-clustering-keys/v1' from seastar-dev.git
      Merge branch 'pdziepak/fix-clustering-key-comparison/v2' fom seastar-dev.git
      storage_proxy: Fix range splitting
      Abstract timestamp creation behind new_timestamp()
      frozen_mutation: Introduce decorated_key() helper
      Introduce ring_position_less_comparator
      range: Introduce equal()
      Remove dead code
      storage_proxy: Extract get_restricted_ranges() as a free function
      tests: Add test for get_restricted_ranges()
      scylla-gdb.py: Allow the script to be sourced multiple times
      tests: cql_query_env: Avoid exceptions during normal execution
      tests: sstable_test: Avoid throwing during expected conditions
      data_value: Make printable
      query_processor: Add trace-level logging of queries
      db/serializer: Introduce to_bytes/from_bytes helpers
      data_output: Introduce write_view() which matches data_input::read_view()
      messaging_service: Remove unused parameters from send_migration_request()
      query: Make query::result movable
      mutation_query: Make reconcilable_result printable
      tests: row_cache: Fix test_update()
      tests: mutation_assertions: Own the mutation which is checked
      tests: mutation_assertion: Allow chaining of assertions
      tests: mutation_assertion: Introduce has_schema()
      tests: mutation_reader_assertions: Introduce next_mutation()
      tests: mutation_assertions: Make is_equal_to() check symmetricity
      types: Make name() return const&
      compress: Add equality operators
      schema: Add equality operators
      schema: Remove dead code
      schema: Fix operator==() to include missing fields
      Merge branch 'pdziepak/fix-sstables-key_reader-663/v2'
      Merge branch 'penberg/cql-cleanups/v1' from seastar-dev.git
      Merge branch 'calle/paging_fixes' from seastar-dev.git

Vlad Zolotarov (3):
      core: use steady_clock where monotinic clock is required
      tests: use steady_clock where monotinic clock is required
      database: actually check that a snapshot directory exists

Scylla-jmx Contributions

Amnon Heiman (14):
      Do not add command line param by default
      StorageService: getLoadMap should format the load
      APIClient: snapshot details should align to the API
      Importing CompactionHistoryTabularData from origin
      CompactionManager: Switch to the update compaction history API
      Limit JVM maximum heap size to 256 MB
      StorageService: rename the dc parameter in rebuild
      FailureDetector: the ip address should have a leading slash
      StorageService: format the describering output
      StorageService: change repair to the updated API
      Clean the jmxproxy output
      APIClient: Fixing parsing long as int
      APIClient: Add a mapStringDouble method
      StorageService: Support the update getLoadMap API

Nadav Har'El (3):
      scylla-jmx: repairAsync: don't ignore options
      scylla-jmx: use ":", not "=", to build options list
      scylla-jmx: fix the forceRepairAsync() used by "nodetool repair"

Pekka Enberg (6):
      Merge "Update the get history to be compatible with the API" from Amnon
      dist/ubuntu: Remove unneeded startup parameters
      Rename urchin-mbean.jar to scylla-jmx.jar
      Rename "com.cloudius.urchin" package to "com.scylladb.jmx"
      Clean up after unused imports
      release: prepare for 0.14

Takuya ASADA (1):
      dist: remove unneeded parameters
Clone this wiki locally