Pricing Try it now
Professional Edition
Getting Started Documentation Guides
Architecture API FAQ
On this page

SENTIENT Professional Edition v3.0.x upgrade instructions for Ubuntu

Prepare for upgrading SENTIENT

Stop SENTIENT Check if SENTIENT and database services are running Initially SENTIENT, check status to ensure it is stopped and then databases.

1
sudo systemctl stop sentient
1
sudo systemctl status sentient

Backup Database

Make a backup of the database before upgrading.

PostgreSQL

Check PostgreSQL status. It is unnecessary to stop PostgreSQL for the backup.

1
sudo systemctl status postgresql

Make sure you have enough space to place a backup of the database Check database size

1
sudo -u postgres psql -c "SELECT pg_size_pretty( pg_database_size('sentient') );"

Check free space

1
df -h /

If there is enough free space - make a backup.

1
sudo -Hiu postgres pg_dump sentient > sentient.sql.bak

Check backup file being created.

Cassandra

Check Cassandra status. It is necessary to stop Cassandra for the backup.

1
sudo systemctl status cassandra

Flush all memtables from the node to SSTables on disk.

1
nodetool drain

Stop Cassandra.

1
sudo systemctl stop cassandra

And you have to check the status again to ensure they are surely stopped.

1
sudo systemctl status cassandra

Make sure you have enough space to place a backup of the database Check database size.

1
du -h /var/lib/cassandra/ | tail -1

Check free space.

1
df -h /

Make a backup of Cassandra database.

1
2
mkdir backup
sudo tar -cvf backup/cassandra.tar /var/lib/cassandra

Check archive being created

Start Database

Cassandra

1
sudo systemctl start cassandra

PostgreSQL Do nothing, postgresql is already running.

Upgrading SENTIENT Professional Edition to 3.0.1

NOTE: These upgrade steps are applicable for SENTIENT version 3.0PE. In order to upgrade to 3.0.1PE you need to upgrade to 3.0PE first. Prepare for upgrading SENTIENT.


Doc info icon

Important note before upgrading to SENTIENT 3.0

  • SENTIENT UI was rewritten from AngularJS 1.5.8 to use Angular 9.
    • What does it mean?
      • Generally speaking, it means: state of the art application, easier development of front-end elements, performance improvements and more flexibility with UI customizations.
    • How to upgrade?
      • You are safe to upgrade if you do NOT use custom widgets or custom actions in the dashboards.
      • New JS framework may not support your current code — custom widgets and custom actions, so they need to be refactored a bit. Thus we encourage you to test your customizations using our cloud environments or your dev instances.
  • Migration from pure Cassandra to Hybrid DB Approach
    • We still support Cassandra for storing telemetry data but not the entities like devices, customers, tenants, etc.
    • What does it mean?
      • This will simplify maintenance and future improvements that will enable advanced search capabilities in v3.1.
    • How to upgrade?
      • If you are using pure PostgreSQL setup or PostgreSQL (for entities) + Cassandra (for telemetry), you are not affected.
      • If you are using pure Cassandra - the upgrade procedure is automatic but takes some time. The downtime depends on the number of devices, attributes, alarms and relations. If you have less than 10 million of those entities the upgrade should take a few minutes and depends on the database performance.
Doc info icon

Since SENTIENT 3.0PE only PostgreSQL database is supported for entities data

SENTIENT Professional Edition package download

1
wget https://dist.sentient.invenia.in/sentient-3.0.1pe.deb

SENTIENT Professional Edition service upgrade

  • Stop SENTIENT service if it is running.
1
sudo service sentient stop
  • Install Sentient Web Report component as described here.
1
sudo dpkg -i sentient-3.0.1pe.deb

NOTE: Package installer will ask you to merge your sentient configuration. It is preferred to use merge option to make sure that all your previous parameters will not be overwritten.
Please make sure that you set database.ts.type parameter value (in the file /etc/sentient/conf/sentient.yml) to “cassandra” instead of “sql” if you are using Cassandra database for timeseries data:

1
2
3
4
database:
  ts_max_intervals: "${DATABASE_TS_MAX_INTERVALS:700}" # Max number of DB queries generated by single API call to fetch telemetry records
  ts:
    type: "${DATABASE_TS_TYPE:sql}" # cassandra, sql, or timescale (for hybrid mode, DATABASE_TS_TYPE value should be cassandra, or timescale)

NOTE: If you were using Cassandra database for entities data execute the following migration script:

1
2
# Execute migration script from Cassandra to PostgreSQL
sudo /usr/share/sentient/bin/install/upgrade.sh --fromVersion=2.5.0PE-cassandra

Otherwise execute regular upgrade script:

1
sudo /usr/share/sentient/bin/install/upgrade.sh --fromVersion=2.5.0

Start the service

Doc info icon

If you use Redis for caching, you need to flush all stored keys before starting the SENTIENT.

Connect to your Redis instance (or container/pod, depending on your setup) and run the command:

redis-cli flushall

Please note that this command is applicable only if you use Redis exclusively for SENTIENT. If other applications use Redis, you need to locate the SENTIENT database and flush only that. The default database index is 0, configurable with REDIS_DB SENTIENT environment value.

redis-cli

select 0

flushdb

1
sudo service sentient start

Upgrading SENTIENT Professional Edition to 3.0

Doc info icon

Since SENTIENT 3.0PE only PostgreSQL database is supported for entities data

Prepare for upgrading SENTIENT.

SENTIENT Professional Edition package download

1
wget https://dist.sentient.invenia.in/sentient-3.0pe.deb

SENTIENT Professional Edition service upgrade

  • Stop SENTIENT service if it is running.
1
Sudo service sentient stop
  • Install Sentient Web Report component as described here.
1
sudo dpkg -i sentient-3.0pe.deб

NOTE: Package installer will ask you to merge your sentient configuration. It is preferred to use merge option to make sure that all your previous parameters will not be overwritten.
Please make sure that you set database.ts.type parameter value (in the file /etc/sentient/conf/sentient.yml) to “cassandra” instead of “sql” if you are using Cassandra database for timeseries data:

1
2
3
4
    database:
      ts_max_intervals: "${DATABASE_TS_MAX_INTERVALS:700}" # Max number of DB queries generated by single API call to fetch telemetry records
      ts:
        type: "${DATABASE_TS_TYPE:sql}" # cassandra, sql, or timescale (for hybrid mode, DATABASE_TS_TYPE value should be cassandra, or timescale)

NOTE: If you were using Cassandra database for entities data execute the following migration script:

1
2
# Execute migration script from Cassandra to PostgreSQL
sudo /usr/share/sentient/bin/install/upgrade.sh --fromVersion=2.5.0PE-cassandra

Otherwise execute regular upgrade script:

1
sudo /usr/share/sentient/bin/install/upgrade.sh --fromVersion=2.5.0

Start the service

1
sudo service sentient start

Next steps