CII 4.0 ####### CII ships a reworked OLDB implementation, a reworked Logging system, and several other changes. For some of the changes, backward-incompatibilty could not be avoided. Features and Fixes ================== Config-NG --------- - alternative file finder algorithm. when enabled, allows to: - switch off search over CFGPATH (ECII-591) - save a document to a URI (ECII-656) - list the available documents (ECII-716) OLDB ---- - no more use of minio and elastic - binary encoding of values changed - default values (coming from metadata) now always go as "bad" quality. (ECII-636) - CreateDataPointByValue takes optional argument quality (default: good) (ECII-636) - No more modified-event is sent to oldb-listeners when a dp is inited to its default value (ECII-636) - New datatype for oldb datapoints: YAML (ECII-702) - oldb datapoints can be linked to from alias datapoints (ECII-818) - Modified datatype for oldb datapoints: CiiMatrix2D (ECII-249) - oldb-cli supports creation and deletion of datapoints - oldb-cli accepts short uris, i.e. "cii.oldb://" can be omitted. - new tool oldbReset to put the OLDB back into a clean state OLDB-CE ------- - now based on python - no longer uses octave OLDB-GUI -------- - Datapoint Table-View (ECII-762) - Values can be edited inline without launching an edit pane - Commandline options: --quiet-logs-output, --verbose-logs-output - Menu option: automatically update datapoint-timestamp on write Logging ------- - now uses rsyslog - no longer uses filebeat, logstash, elastic - no longer supports local "logsink" directory - no longer needs or wants CII_LOGS variable LogViewer --------- - better support for multi-lines / long lines - filtering is faster and can query by column - other smaller improvements: ECII-488, ECII-529, ECII-692, ECII-693, ECII-772, ECII-773, ECII-774, ECII-775, ECII-776, ECII-844 - not required any more to run in follow mode MAL-DDS ------- - added property "dds.qos.participant.name" (ECII-847) IntConfig --------- - configImpex tool (substitutes Config GUI) Tooling ------- - the "cii-services info" command now includes a function check - the "cii-services status" command is deprecated, please migrate to "cii-services info function" Optionals --------- New: Optional CII RPMs are available in the RPM repository. These are not part of the official release and do not get installed by default. They contain unstable tools for which we give only limited warranty, and we reserve the right to make API changes and functional changes. - cii-incubation: oldb-cluster-ctl, redis-cluster, config-edit, config-history - cii-benchmarks: oldb benchmark clients, sys-stat tools (cii-pidmon etc.) Removed Features ================ Config-NG --------- - Document caching is no longer active by default (ECII-896) ICD --- - removed java language (ECII-678) MAL-MUDPI --------- - MAL MUDPI is deprecated, will not be supported in the next version (CII v5) Alarm ----- - Alarm Config GUI is no longer supported - Alarm System is not included in this release Telem ----- - Telemetry System is not included in this release IntConfig --------- - Config GUI is no longer supported OLDB ---- - elasticsearch is no longer used - accordingly, oldb-initEs was removed - minio is no longer used - oldb-cli replaces oldbRead, oldbWrite, oldbSubscribe Logging ------- - elasticsearch is no longer used - kibana service is no longer used - logtrail service is no longer used - logstash service is no longer used Knowledge Base Articles ======================= New --- - Less or More Logs [OLDB Log] - Adjust CII Log Levels [Log] - Topic History a.k.a late joiners [MAL DDS] - Using DDS Monitor [MAL DDS] - Request-Reply Python Snippets [Mal Python] - wscript packages for CII Log [Log] - Too many files errors [Log] Updated ------- - Command Line Tools and Python Snippets [OLDB] Porting Instructions ==================== Config-NG --------- - To use document caching (instead of reloading them from disk), explicitly enable it: - cpp: ::elt::configng::CiiConfigClient::SetCacheState(true); - py : elt.configng.CiiConfigClient.set_cache_state(True) - To switch off file-finding, enable saving to URI, enable document listing (see ECII-591, ECII-656, ECII-716): - cpp: ::elt::configng::CiiConfigClient::SetDefaultFileProviderName("cii.config://root"); - py : elt.configng.CiiConfigClient.set_default_file_provider_name('cii.config://root') OLDB ---- - oldb default values now have bad quality. - thus, clients will more often encounter values with bad quality. - porting: "dp->ReadValue()->GetValue()" -> a) dp->ReadValue(false)->GetValue() b) try { dp->ReadValue()->GetValue() } catch (CiiOldbDpQualityWithValueException ) { … } - clients that use CreateDataPointByValue should choose if the value they set should be regarded a default value. If so, they should also pass CiiOldbDpQuality::BAD (new optional argument). - porting of matrix datatypes (see ECII-249): - old: ''' std::vector my_matrix_data{1.0, 2.0, 3.0, 4.0, 5.0, 6.0}; auto data_point = client->CreateDataPointByValue(uri, my_matrix_data, true); auto value = data_point->ReadValue()->GetValue(); auto width = data_point->GetMetadata()->get_width(); std::cout << "Value at [1][2]: " << value[1*width + 2] << std::endl; ''' - new: ''' std::vector my_matrix_data{1.0, 2.0, 3.0, 4.0, 5.0, 6.0}; auto my_matrix = ::elt::oldb::datatypes::Matrix2D(my_matrix_data.data(), 2 /* rows */, 3 /* columns */); auto data_point = client->CreateDataPointByValue(uri, my_matrix); auto value = data_point->ReadValue()->GetValue(); std::cout << "Value at [1][2]: " << value[1][2] << std::endl; std::vector vector_value; vector_value.assign(value.GetData(), value.GetData() + value.GetSize()); ''' - store large datapoints on extredis With removal of the remote fs (minio), large datapoints should/can no longer be stored on the main redis. To learn how to create datapoints on an extredis instance, see the OLDB user manual 7.5.7 Defining the Storage Location of a Data Point. Logging ------- - add syslog as handler - remove declarations of CII_LOGS - renamed: cii-services-log-cli -> ciiLogSend - renamed: logSend -> ciiLogSend - removed: cii-services-log-sample - removed: concept of a local file logsink directory plus automatic file name generation. where you previously logged to "CII_LOGSINK_FILENAME" you now have to explicitly specify a filename now in your log config (to a directory where you have write-permissions) - see Logging user manual 9.4. Logging Library Usage