NEWS
EXPERIMENTELL: JsonL Datenbank für js-controller
-
@crunchip sagte in EXPERIMENTELL: JsonL Datenbank für js-controller:
für das ständige neu schreiben der object.json,
seit dem lief alles sehr ruhig und die cpu lag im schnitt bei 15%.
Durchs ändern auf jsonl, stieg somit die cpu um mehr als das doppelt an, auf fast 35% im Scnitt.Das macht für mich Sinn. JSONL merkt sich jede Änderung und dedupliziert dann erst beim Komprimieren. Das heißt aber auch, dass jede dieser Objekt-Änderungen ein
JSON.stringify
verursacht, dessen Ergebnis dann bis zum nächsten Schreibvorgang im Puffer landet. Wenn das ständig passiert, erzeugt das schon ordentlich Last, da Objekte deutlich mehr Arbeit fürsstringify
bedeuten als einfache States.
objects-file hat die unnötigen Änderungen einfach im Speicher überschrieben und dann einmal beim Rausschreibenstringified
.
Ggf. könnte hier auch noch ein wenig schlauer gearbeitet werden - ich mach mir mal ein Issue zum Experimentieren.Wäre ggf. dennoch einen Versuch wert, die Verursacher mal etwas zu gängeln, das dauerhafte Schreiben abzustellen.
-
Moin @ All
Bevor ich das mal teste.
Wie wird die Datenbank denn gesichert?
Wird die bei einem normalen Backup z.B. über Backitup mit gesichert? -
@malleralle Ja
-
@alcalzone sagte in EXPERIMENTELL: JsonL Datenbank für js-controller:
Ggf. könnte hier auch noch ein wenig schlauer gearbeitet werden - ich mach mir mal ein Issue zum Experimentieren.
Gibt es schon neue Erkenntnisse/Fortschritte?
-
Es gibt ab jetzt den neuen js-controller 3.3 im Latest (https://forum.iobroker.net/topic/44624/js-controller-3-3-jetzt-im-latest) ... Bei Nutzung einer JSONL-Datenbank sollte das Update nach bisherigen Tests problemlos funktionieren ... Falls nicht bitte lasst uns das hier diskutieren.
Bitte in JEDEM FALL ein Backup vorher haben!
-
Hi. Wie sehe ich eigentlich, welche Version von JSONL ich aktuell einsetze und wenn, wie mache ich einen Update?
-
@msauer Das ist nur relevant mit js-controller 3.2 und hier sollte es jsonl@1.1.x sein. Ab js-controller 3.3 kommen die Libraries schon mit dem Controller mit.
Sehen der Version geht per
npm ls --all |grep "iobroker/db"
-
@apollon77 sagte in EXPERIMENTELL: JsonL Datenbank für js-controller:
Sehen der Version geht per npm ls --all |grep "iobroker/db"
Ausgabe des Commands ist leer!?
-
@msauer Ausgeführt in /opt/iobroker ??
-
@apollon77 Natürlich nicht.
... mea culpa
-
@apollon77 sagte in EXPERIMENTELL: JsonL Datenbank für js-controller:
Ab js-controller 3.3 kommen die Libraries schon mit dem Controller mit.
das verstehe ich dann aber nicht:
"Users that use the experimental jsonl database classes need to manually update the jsonl packages"
-
@msauer Habe mich gestern abend vor release anders entschieden. Fixe changelog gleich
-
@apollon77 sagte in EXPERIMENTELL: JsonL Datenbank für js-controller:
npm ls --all |grep "iobroker/db"
hab ich testweise mal eingegeben, Ausgabe mit einigen npm ERR, rein informativ, ist das so ok?
Host ist noch auf 3.2.16npm ERR! extraneous: @types/request@2.48.1 /opt/iobroker/node_modules/@types/request npm ERR! extraneous: alcalzone-shared@2.3.0 /opt/iobroker/node_modules/alcalzone-shared npm ERR! extraneous: alexa-remote2@2.5.3 /opt/iobroker/node_modules/alexa-remote2 npm ERR! extraneous: anyproxy@4.1.0 /opt/iobroker/node_modules/anyproxy npm ERR! extraneous: bottleneck@2.19.2 /opt/iobroker/node_modules/bottleneck npm ERR! extraneous: castv2-player@2.0.5 /opt/iobroker/node_modules/castv2-player npm ERR! extraneous: coffee-compiler@0.3.2 /opt/iobroker/node_modules/coffee-compiler npm ERR! extraneous: coffee-script@1.12.7 /opt/iobroker/node_modules/coffee-script npm ERR! extraneous: express-fileupload@0.4.1 /opt/iobroker/node_modules/express-fileupload npm ERR! extraneous: iobroker-react-components@1.0.0 /opt/iobroker/node_modules/iobroker-react-components npm ERR! extraneous: js2xmlparser@3.0.0 /opt/iobroker/node_modules/js2xmlparser npm ERR! extraneous: mongodb@3.2.7 /opt/iobroker/node_modules/mongodb npm ERR! extraneous: node-hue-api@2.4.6 /opt/iobroker/node_modules/node-hue-api npm ERR! extraneous: node-inspect@2.0.0 /opt/iobroker/node_modules/node-inspect npm ERR! extraneous: node-red@0.20.7 /opt/iobroker/node_modules/node-red npm ERR! extraneous: node-red-contrib-aggregator@1.5.0 /opt/iobroker/node_modules/node-red-contrib-aggregator npm ERR! extraneous: node-red-contrib-os@0.1.7 /opt/iobroker/node_modules/node-red-contrib-os npm ERR! extraneous: node-red-contrib-polymer@0.0.21 /opt/iobroker/node_modules/node-red-contrib-polymer npm ERR! extraneous: node-red-dashboard@2.15.5 /opt/iobroker/node_modules/node-red-dashboard npm ERR! extraneous: portfinder@1.0.20 /opt/iobroker/node_modules/portfinder npm ERR! extraneous: rpi-gpio@2.1.3 /opt/iobroker/node_modules/rpi-gpio npm ERR! extraneous: sync-exec@0.6.2 /opt/iobroker/node_modules/sync-exec npm ERR! extraneous: systeminformation@4.14.4 /opt/iobroker/node_modules/systeminformation npm ERR! extraneous: typescript@3.5.1 /opt/iobroker/node_modules/typescript npm ERR! extraneous: virtual-device-sdk@1.5.18 /opt/iobroker/node_modules/virtual-device-sdk npm ERR! extraneous: virtual-tsc@0.6.1 /opt/iobroker/node_modules/virtual-tsc npm ERR! extraneous: vm2@3.8.1 /opt/iobroker/node_modules/vm2 npm ERR! extraneous: wake_on_lan@1.0.0 /opt/iobroker/node_modules/wake_on_lan npm ERR! extraneous: zigbee-herdsman-converters@14.0.110 /opt/iobroker/node_modules/zigbee-herdsman-converters npm ERR! extraneous: zigbee-shepherd@0.3.0 /opt/iobroker/node_modules/zigbee-shepherd npm ERR! extraneous: zigbee-shepherd-converters@10.1.9 /opt/iobroker/node_modules/zigbee-shepherd-converters npm ERR! extraneous: @alcalzone/release-script@1.8.3 /opt/iobroker/node_modules/iobroker.javascript/node_modules/@alcalzone/release-script npm ERR! extraneous: chai@4.3.4 /opt/iobroker/node_modules/iobroker.javascript/node_modules/chai npm ERR! extraneous: del@6.0.0 /opt/iobroker/node_modules/iobroker.javascript/node_modules/del npm ERR! extraneous: eslint@7.23.0 /opt/iobroker/node_modules/iobroker.javascript/node_modules/eslint npm ERR! extraneous: gulp@4.0.2 /opt/iobroker/node_modules/iobroker.javascript/node_modules/gulp npm ERR! extraneous: gulp-rename@2.0.0 /opt/iobroker/node_modules/iobroker.javascript/node_modules/gulp-rename npm ERR! extraneous: gulp-replace@1.0.0 /opt/iobroker/node_modules/iobroker.javascript/node_modules/gulp-replace npm ERR! extraneous: mocha@8.3.2 /opt/iobroker/node_modules/iobroker.javascript/node_modules/mocha npm ERR! extraneous: timekeeper@2.2.0 /opt/iobroker/node_modules/iobroker.javascript/node_modules/timekeeper npm ERR! peer dep missing: date-fns@^2.0.0, required by @date-io/date-fns@1.3.13 npm ERR! peer dep missing: @material-ui/core@^4.0.0, required by @material-ui/pickers@3.2.10 npm ERR! peer dep missing: react@^16.8.4, required by @material-ui/pickers@3.2.10 npm ERR! peer dep missing: react-dom@^16.8.4, required by @material-ui/pickers@3.2.10 npm ERR! peer dep missing: react@>=16.6.0, required by react-transition-group@4.4.1 npm ERR! peer dep missing: react@>=16.8, required by rifm@0.7.0 npm ERR! peer dep missing: react-dom@>=16.6.0, required by react-transition-group@4.4.1 npm ERR! peer dep missing: typescript@3.9.x || 4.0.x || 4.1.x, required by typedoc@0.20.28 npm ERR! extraneous: @babel/cli@7.13.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/@babel/cli npm ERR! extraneous: @babel/preset-env@7.13.9 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/@babel/preset-env npm ERR! extraneous: @babel/preset-typescript@7.13.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/@babel/preset-typescript npm ERR! extraneous: @types/debounce@1.2.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/@types/debounce npm ERR! extraneous: @types/debug@4.1.5 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/@types/debug npm ERR! extraneous: @types/jest@26.0.20 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/@types/jest npm ERR! extraneous: @types/nedb@1.8.11 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/@types/nedb npm ERR! extraneous: @types/serialport@8.0.1 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/@types/serialport npm ERR! extraneous: @typescript-eslint/eslint-plugin@4.16.1 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/@typescript-eslint/eslint-plugin npm ERR! extraneous: @typescript-eslint/parser@4.16.1 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/@typescript-eslint/parser npm ERR! extraneous: eslint@7.21.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/eslint npm ERR! extraneous: jest@26.6.3 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/jest npm ERR! extraneous: typedoc@0.20.28 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/typedoc npm ERR! extraneous: typedoc-plugin-markdown@3.6.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/typedoc-plugin-markdown npm ERR! extraneous: typedoc-plugin-no-inherit@1.2.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/typedoc-plugin-no-inherit npm ERR! extraneous: typedoc-plugin-sourcefile-url@1.0.6 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman/node_modules/typedoc-plugin-sourcefile-url npm ERR! extraneous: eslint@7.24.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/eslint npm ERR! extraneous: eslint-config-google@0.14.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/eslint-config-google npm ERR! extraneous: eslint-plugin-jest@24.3.5 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/eslint-plugin-jest npm ERR! extraneous: jest@26.6.3 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/jest npm ERR! peer dep missing: typescript@3.9.x || 4.0.x || 4.1.x, required by typedoc@0.20.28 npm ERR! extraneous: @babel/cli@7.13.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/@babel/cli npm ERR! extraneous: @babel/preset-env@7.13.9 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/@babel/preset-env npm ERR! extraneous: @babel/preset-typescript@7.13.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/@babel/preset-typescript npm ERR! extraneous: @types/debounce@1.2.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/@types/debounce npm ERR! extraneous: @types/debug@4.1.5 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/@types/debug npm ERR! extraneous: @types/jest@26.0.20 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/@types/jest npm ERR! extraneous: @types/nedb@1.8.11 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/@types/nedb npm ERR! extraneous: @types/serialport@8.0.1 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/@types/serialport npm ERR! extraneous: @typescript-eslint/eslint-plugin@4.16.1 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/@typescript-eslint/eslint-plugin npm ERR! extraneous: @typescript-eslint/parser@4.16.1 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/@typescript-eslint/parser npm ERR! extraneous: eslint@7.21.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/eslint npm ERR! extraneous: jest@26.6.3 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/jest npm ERR! extraneous: typedoc@0.20.28 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/typedoc npm ERR! extraneous: typedoc-plugin-markdown@3.6.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/typedoc-plugin-markdown npm ERR! extraneous: typedoc-plugin-no-inherit@1.2.0 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/typedoc-plugin-no-inherit npm ERR! extraneous: typedoc-plugin-sourcefile-url@1.0.6 /opt/iobroker/node_modules/iobroker.zigbee/node_modules/zigbee-herdsman-converters/node_modules/zigbee-herdsman/node_modules/typedoc-plugin-sourcefile-url │ ├─┬ @iobroker/db-objects-file@1.1.4 │ │ ├─┬ @iobroker/db-base@1.1.4 │ │ ├── @iobroker/db-objects-redis@1.1.4 deduped │ ├─┬ @iobroker/db-objects-jsonl@1.1.5 │ │ ├─┬ @iobroker/db-base@1.1.4 │ │ ├─┬ @iobroker/db-objects-file@1.1.4 │ │ │ ├── @iobroker/db-base@1.1.4 deduped │ │ │ ├── @iobroker/db-objects-redis@1.1.4 deduped │ │ ├─┬ @iobroker/db-objects-redis@1.1.4 │ │ │ ├── @iobroker/db-base@1.1.4 deduped │ ├─┬ @iobroker/db-objects-redis@1.1.4 │ │ ├── @iobroker/db-base@1.1.4 deduped │ ├─┬ @iobroker/db-states-file@1.1.4 │ │ ├── @iobroker/db-base@1.1.4 deduped │ │ └── @iobroker/db-states-redis@1.1.4 deduped │ ├─┬ @iobroker/db-states-jsonl@1.1.5 │ │ ├── @iobroker/db-base@1.1.4 deduped │ │ ├─┬ @iobroker/db-states-file@1.1.4 │ │ │ ├── @iobroker/db-base@1.1.4 deduped │ │ │ └── @iobroker/db-states-redis@1.1.4 deduped │ │ └─┬ @iobroker/db-states-redis@1.1.4 │ │ ├── @iobroker/db-base@1.1.4 deduped │ ├─┬ @iobroker/db-states-redis@1.1.4 │ │ ├── @iobroker/db-base@1.1.4 deduped
-
@crunchip Auf 3.2.16 sind die 1.1.x der DB Klassen vollkommen korrekt. Update auf js-controller 3.3 aktualisiert das auch1.2.x
-
Wird josnL der neue Standard beim js controller 3.3? Falls ja wann kommt der?
-
@saeft_2003 schau mal hier: https://forum.iobroker.net/topic/42053/experimentell-jsonl-datenbank-für-js-controller/1
ich nutze das Format bereits erfolgreich:Objects type: jsonl States type: jsonl
-
was ich nicht kapiert habe was ich hier machen muss? Weil ich habe auch einen Slave...
dann Wählen (beim mster bzw single host sowieso) das er migriert (Bei Slaves natürlich keine Migration)
-
Würde es auch reichen in der iobroker.json unter states und objects den Typ von file auf jsonl zu ändern?
}, "objects": { "type": "file", "typeComment": "Possible values: 'file' - [port 9001], redis - [port 6379], couch - [port 5984].", "host": "0.0.0.0", "port": 9001, "user": "", "pass": "", "noFileCache": false, "connectTimeout": 2000, "options": { "auth_pass": null, "enableReadyCheck": true, "host": "0.0.0.0", "port": 9001, "db": 0, "family": 0, "password": null, "autoResubscribe": false, "connectionName": "host.iobroker" }, "maxQueue": 1000 }, "states": { "type": "file", "typeComment": "Possible values: 'file' - [port 9000], 'redis' - [port 6379].", "host": "0.0.0.0", "port": 9000, "maxQueue": 1000, "writeFileInterval": 360000, "options": { "auth_pass": null, "enableReadyCheck": true, "host": "0.0.0.0", "port": 9000, "db": 0, "family": 0, "password": null, "autoResubscribe": false, "connectionName": "host.iobroker" }
-
@saeft_2003
Bitte nicht falsch verstehen, aber wenn du nicht genau verstehst was hier gemacht werden muss würde ich es lassen. -
Ich hab schon öfter was gemacht was ich nicht genau verstanden habe, aber mit Hilfe hier aus dem Forum hat das bis jetzt sehr gut geklappt. Dafür ist es ja da.
Und bitte nicht falsch verstehen, aber dein Kommentar hilft nicht wirklich weiter.