PageRenderTime 47ms CodeModel.GetById 17ms RepoModel.GetById 1ms app.codeStats 0ms

/content/riak/ts/1.5.0/releasenotes.md

https://github.com/basho/basho_docs
Markdown | 151 lines | 125 code | 26 blank | 0 comment | 0 complexity | fbe0fb24e02c71fb8c74b2045ff5f46d MD5 | raw file
  1. ---
  2. title: "Riak TS Release Notes"
  3. description: "Riak TS 1.5.0 Release Notes"
  4. menu:
  5. riak_ts-1.5.0:
  6. name: "Release Notes"
  7. identifier: "release_notes"
  8. weight: 101
  9. parent: "introduction"
  10. project: "riak_ts"
  11. project_version: "1.5.0"
  12. toc: true
  13. aliases:
  14. - /riakts/1.5.0/releasenotes
  15. canonical_link: "https://docs.basho.com/riak/ts/latest/releasenotes"
  16. ---
  17. Released December 20, 2016.
  18. Riak TS 1.5.0 expands its SQL implementation. It includes additional SELECT query clauses: `ORDER BY` and `LIMIT`. It also includes `DELETE` for a single record. TS 1.5 also includes `ASC` and `DESC` keywords in table schema definition, and better usage of the `NULL` keyword in `WHERE` clause conditions and INSERT statements.
  19. TS 1.5.0 adds `SHOW CREATE TABLE` to review the SQL statement used to create the table. This statement is useful for re-creating your table from a testing to a deployment cluster, or to another data-center.
  20. Data storage of unstructured (binary) or opaque (JSON) data has also gotten a little easier in TS 1.5 with the introduction of a BLOB data type.
  21. Updates in TS 1.5 include multi-line paste functionality, built-in help for SQL commands, and enhanced error handling in riak shell.
  22. Riak TS has significantly improved performance, thanks to streamlining of the on-disk encoding format and increased parallelization of record decoding. These updates have focused on improvement of SQL query latency, and result in typical speedups of 2-4x for large queries, particularly for data sets that are distributed around the cluster.
  23. ## New Features
  24. * `ASC` and `DESC` have been added to the CREATE TABLE statement. Adding the ASC/DESC keywords to your local key during `CREATE TABLE` means you can have your data pre-sorted in ascending or descending order as it's input into your TS table. You can read more about `ASC`/`DESC` in the local key [here](/riak/ts/1.5.0/using/planning).
  25. * [[PR 1427](https://github.com/basho/riak_kv/pull/1427)]
  26. * [[PR 1500](https://github.com/basho/riak_kv/pull/1500)]
  27. * [[PR 1558](https://github.com/basho/riak_kv/pull/1558 )]
  28. * [[PR 1560](https://github.com/basho/riak_kv/pull/1560 )]
  29. * [[riak_ql PR 117](https://github.com/basho/riak_ql/pull/117 )]
  30. * [[riak_ql PR 162](https://github.com/basho/riak_ql/pull/162 )]
  31. * [[riak_test PR 1200](https://github.com/basho/riak_test/pull/1200)]
  32. * [[riak_test PR 1081](https://github.com/basho/riak_test/pull/1081)]
  33. * [[riak_test PR 1201](https://github.com/basho/riak_test/pull/1201 )]
  34. * The ORDER BY statement has been added to `SELECT`, allowing you to sort the results of your query in various ways, including: ascending or descending order, or nulls first or last. You can learn about `ORDER BY` [here](/riak/ts/1.5.0/using/querying/select/order-by).
  35. * [[PR 1479](https://github.com/basho/riak_kv/pull/1479)]
  36. * [[riak erlang client PR 321](https://github.com/basho/riak-erlang-client/pull/321)]
  37. * [[riak_pb PR 208](https://github.com/basho/riak_pb/pull/208)]
  38. * [[riak_test PR 1152](https://github.com/basho/riak_test/pull/1152)]
  39. * `LIMIT` allows you to specify that you only want a specific number of records from your query, and it can be expanded by `OFFSET`. You can read about how to use the LIMIT statement [here](/riak/ts/1.5.0/using/querying/select/limit).
  40. * [[PR 1479](https://github.com/basho/riak_kv/pull/1479)]
  41. * [[riak erlang client PR 321](https://github.com/basho/riak-erlang-client/pull/321)]
  42. * [[riak_pb PR 208](https://github.com/basho/riak_pb/pull/208)]
  43. * [[riak_test PR 1152](https://github.com/basho/riak_test/pull/1152)]
  44. * You can now use `DELETE` from riak shell to remove a record from your TS table. Learn all about `DELETE` [here](/riak/ts/1.5.0/using/querying/delete).
  45. * [[PR 1552](https://github.com/basho/riak_kv/pull/1552)]
  46. * [[riak_ql PR 145](https://github.com/basho/riak_ql/pull/145)]
  47. * [[riak_shell PR 23](https://github.com/basho/riak_shell/pull/23)]
  48. * [[riak_test 1216](https://github.com/basho/riak_test/pull/1216)]
  49. * You can now use `INSERT NULL` to add null values. You can do so explicitly, by specifying NULL in the VALUES column, or implicitly, by omitting the column. This change also allows for column re-ordering within the INSERT statement. You can select records based on whether or not they contain NULL values in specific fields using `WHERE »field« IS [NOT] NULL`.
  50. * [[PR 1507](https://github.com/basho/riak_kv/pull/1507)]
  51. * [[PR 1496](https://github.com/basho/riak_kv/pull/1496)]
  52. * [[riak_ql PR 142](https://github.com/basho/riak_ql/pull/142)]
  53. * [[riak_ql PR 144](https://github.com/basho/riak_ql/pull/144)]
  54. * [[riak_shell PR 56](https://github.com/basho/riak_shell/pull/56)]
  55. * [[riak_test PR 1169](https://github.com/basho/riak_test/pull/1169)]
  56. * You can now run `SHOW CREATE TABLE` to review SQL definition and replication properties of existing Riak TS tables. You can read more about the SHOW CREATE TABLE statement [here](/riak/ts/1.5.0/using/querying/show-create-table).
  57. * [[PR 1536](https://github.com/basho/riak_kv/pull/1536)
  58. * [[riak_ql 155](https://github.com/basho/riak_ql/pull/155)]
  59. * [[riak_ql 159](https://github.com/basho/riak_ql/pull/159 )]
  60. * [[riak_shell PR 62](https://github.com/basho/riak_shell/pull/62)]
  61. * [[riak_test PR 1193](https://github.com/basho/riak_test/pull/1193)]
  62. * [[riak_test PR 1211](https://github.com/basho/riak_test/pull/1211)]
  63. * A BLOB data type is now available. BLOB allows the storage of unstructured data, binary or opaque (JSON), in a Riak TS column. Learn about BLOB data type [here](/riak/ts/1.5.0/using/writingdata/#blob-data).
  64. * [[PR 1540](https://github.com/basho/riak_kv/pull/1540)]
  65. * [[riak_pb PR 211](https://github.com/basho/riak_pb/issues/211)]
  66. * [[riak_ql PR 156](https://github.com/basho/riak_ql/issues/156)]
  67. * [[riak_ql PR 143](https://github.com/basho/riak_ql/pull/143)]
  68. * [[riak_shell PR 61](https://github.com/basho/riak_shell/pull/61 )]
  69. * [[riak_test PR 1212](https://github.com/basho/riak_test/pull/1212)]
  70. * Multi-line paste and in-line SQL help is now available in riak shell. SQL comments are supported in the following types: `/* blah multiline */` and `-- single line`. Riak shell has also been updated to better handle errors. And it now pretty print floats, as well.
  71. * [[riak_shell PR 60](https://github.com/basho/riak_shell/pull/60)]
  72. * [[riak_shell PR 58](https://github.com/basho/riak_shell/pull/58)]
  73. * [[riak_shell PR 57](https://github.com/basho/riak_shell/pull/57)]
  74. * [[riak_ql 154](https://github.com/basho/riak_ql/pull/154 )]
  75. * TTB has replaced msgpack as the on-disk encoding format. This replacement has demonstrated an improvement in latency reduction and efficiency.
  76. * [[PR 1510](https://github.com/basho/riak_kv/pull/1510)]
  77. * [[eleveldb PR 223](https://github.com/basho/eleveldb/pull/223)]
  78. * Query results are now decoded in a way that leverages parallelization across your TS cluster. This update speeds up large queries particularly for data residing on multiple nodes.
  79. * [[PR 1538](https://github.com/basho/riak_kv/pull/1538)]
  80. ## Additions
  81. * The timestamp type is now able to be used as an argument in aggregate functions. [[riak_ql PR 146](https://github.com/basho/riak_ql/pull/146) & [riak_ql PR 147](https://github.com/basho/riak_ql/pull/147)]
  82. * You can now see the Status field of your TS table when you use `SHOW TABLES`. [[PR 1514](https://github.com/basho/riak_kv/pull/1514 ) and
  83. [PR 1176](https://github.com/basho/riak_test/pull/1176 )]
  84. * Introduced the following new parameters in riak.conf. See the [TS configuration docs](/riak/ts/1.5.0/configuring/riakconf) for details. [[PR 1505](https://github.com/basho/riak_kv/pull/1505)]
  85. * riak_kv.query.timeseries.max_returned_data_size
  86. * riak_kv.query.timeseries.max_running_fsms
  87. * riak_kv.query.timeseries.qbuf_root_path
  88. * riak_kv.query.timeseries.maximum_query_queue_length
  89. ## Changes
  90. * Object size limitations, as set in riak.conf, have been decreased. `object.size.warning_threshold` has been decreased from a default of 5MB to 50kB. `object.size.maximum` has been decreased from 50MB to 500kB. [[PR 1505](https://github.com/basho/riak_kv/pull/1505) & [PR 1218](https://github.com/basho/riak_test/pull/1218/ )]
  91. * If a bucket type property contains a `ddl` property we infer that it's a time series table. New defaults have been also been added in the event they are not specified. [[riak_core PR 870](https://github.com/basho/riak_core/pull/870)]
  92. * The maximum number of index FSMs used to serve TS queries is now configurable. [[PR 1550](https://github.com/basho/riak_kv/pull/1550)]
  93. * Write-once conflict resolution has been changed to be more predictable. It is now based on timestamp rather than SHA-1 hash on value part. [[PR 1512](https://github.com/basho/riak_kv/pull/1512)]
  94. * LevelDB has been updated to version 2.0.33 [[eleveldb PR 231](https://github.com/basho/eleveldb/pull/231)]
  95. * LZ4 is now the default compression for LevelDB. [[leveldb PR 164](https://github.com/basho/leveldb/pull/164) & [eleveldb PR 208](https://github.com/basho/eleveldb/pull/208)]
  96. * Updated the default value for `riak_kv.query.timeseries.max_quanta_span`. See the [TS configuration docs](/riak/ts/1.5.0/configuring/riakconf) for details. **Note:** due to a bug in the code, the `max_quanta_span` is capped at 1000. [[PR 1505](https://github.com/basho/riak_kv/pull/1505)]
  97. * The default value for `OFFSET` is `[ ]`. [[PR 1546](https://github.com/basho/riak_kv/pull/1546)]
  98. ## Bugfixes
  99. * [[Issue 1418](https://github.com/basho/riak_kv/issues/1418)/[PR 1544](https://github.com/basho/riak_kv/pull/1544) & [PR 1204](https://github.com/basho/riak_test/pull/1204 )] A bad error atom type was causing the protobuf and TTB services to crash. Error reporting for overload and other types of error conditions have been added.
  100. * [[riak_shell Issue 33](https://github.com/basho/riak_shell/issues/33)/[riak_shell PR 59](https://github.com/basho/riak_shell/pull/59)] When unknown crashes occurred server-side, riak shell would get the report and crash itsef. Now, riak shell does not crash upon receiving unknown server-side crashes, and instead prompts you to report the bug to Basho.
  101. * [[riak_shell PR 68](https://github.com/basho/riak_shell/pull/68), [riak_shell PR 70](https://github.com/basho/riak_shell/pull/70), & [PR 1239](https://github.com/basho/riak_test/pull/1239 )] Unicode in SQL could crash riak shell.
  102. * [[riak_ql PR 148](https://github.com/basho/riak_ql/pull/148)] It was possible to create a Riak TS table without a local key. Doing so would result in the local key becoming an exact copy of the partition key, meaning the quantum would be listed in-full rather than in a plain field name. This caused many breaks and bugs. The local key is now required, and a table creation will be unsuccessful without it.
  103. * [[PR 1479](https://github.com/basho/riak_kv/pull/1479)] The length of the queue was supposed to be configurable, but was being overridden by supervisor. The queue is now actually configurable.
  104. * [[PR 1478](https://github.com/basho/riak_kv/pull/1478)] A rare error in the EXPLAIN statement was caused by a function_clause error in `riak_pb_ts_codec:encode_field_type/1` due to a typo in the code. The typo has been fixed.
  105. * [[Issue 1472](https://github.com/basho/riak_kv/issues/1472)/[PR 1474](https://github.com/basho/riak_kv/pull/1474)] The error message has been improved when selecting an empty time range.
  106. * [[PR 1516](https://github.com/basho/riak_kv/pull/1516)] The equality operator was not working correctly with timestamp. The timestamp can now be queried using equality operators.
  107. * [[PR 1545](https://github.com/basho/riak_kv/pull/1545 ) & [riak_test PR 1208](https://github.com/basho/riak_test/pull/1208)] Attempting to insert data into a non-existant table would cause crash.
  108. * [[PR 1130](https://github.com/basho/riak_ql/pull/148 )] It was possible to create a table without specifying a local key - the primary key would be copied over. This led to strange tables with no valid use. This now correctly returns an error.
  109. * [[PR 1286](https://github.com/basho/riak_ql/pull/147/files )] Aggregation functions like MAX, MIN etc would cast timestamps to sint64 by default. They now correctly return values of type timestamp which appear correctly as times in riak-shell.
  110. * [[PR 157](https://github.com/basho/riak_ql/pull/157 ) & [PR 1206](https://github.com/basho/riak_test/pull/1206 )] SQL insert statements of the form INSERT INTO mytable (field1, field2, field3) VALUES(val1, val2, val3) were buggy.
  111. ## Compatibility
  112. Riak TS is compatible with the following:
  113. * RHEL/CentOS 6
  114. * RHEL/CentOS 7
  115. * Ubuntu 14.04 (Trusty) LTS
  116. * Ubuntu 16.04 (Xenial) LTS*
  117. * Debian 7 "Wheezy"(development only)
  118. * Debian 8 "Jessie"
  119. * OS X 10.11+ (development only)
  120. * Amazon Linux 2016.09
  121. ## Known Issues
  122. * AAE must remain turned off.
  123. * You cannot use Bitcask with Riak TS tables.
  124. * `riak_kv.query.timeseries.max_quanta_span` is capped at 1000 due to a bug.
  125. You can see a table of KV and TS features [here](/riak/ts/1.5.0/using/core-fundamentals/).