OrientDB is the most versatile DBMS supporting Graph, Document, Reactive, Full-Text and Geospatial models in one Multi-Model product. OrientDB can run distributed (Multi-Master), supports SQL, ACID Transactions, Full-Text indexing and Reactive Queries.
insert into orole (mode, name, rules) values (0, 'useradmin', {"database.function.":2,"database.class.":3,"database.class.goal":7,"database.class.tag":15,"database.class.raw":7,"database.class.orole":2,"database.class.term":15,"database":2,"database.class.group":7,"database.schema":2,"database.class.stats":7,"database.cluster.*":15,"database.class.contact":7,"database.command":2,"database.class.ouser":2,"database.hook.record":15,"database.class.config":7,"database.class.insight":15,"database.class.dosage":15,"database.class.site":7,"database.class.hours":7,"database.class.dailyStats":7,"database.class.synclog":7,"database.class.report":15,"database.class.dose":7});
Users
insert into OUser set name = 'loadtest1', password = 'Passw0rd', status = 'ACTIVE', roles = [];
update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest1';
insert into OUser set name = 'loadtest2', password = 'Passw0rd', status = 'ACTIVE', roles = [];
update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest2';
insert into OUser set name = 'loadtest3', password = 'Passw0rd', status = 'ACTIVE', roles = [];
update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest3';
insert into OUser set name = 'loadtest4', password = 'Passw0rd', status = 'ACTIVE', roles = [];
update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest4';
insert into OUser set name = 'loadtest5', password = 'Passw0rd', status = 'ACTIVE', roles = [];
update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest5';
insert into OUser set name = 'loadtest6', password = 'Passw0rd', status = 'ACTIVE', roles = [];
update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest6';
insert into OUser set name = 'loadtest7', password = 'Passw0rd', status = 'ACTIVE', roles = [];
update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest7';
insert into OUser set name = 'loadtest8', password = 'Passw0rd', status = 'ACTIVE', roles = [];
update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest8';
insert into OUser set name = 'loadtest9', password = 'Passw0rd', status = 'ACTIVE', roles = [];
update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest9';
insert into OUser set name = 'loadtest10', password = 'Passw0rd', status = 'ACTIVE', roles = [];
update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest10';
insert into OUser set name = 'loadtest11', password = 'Passw0rd', status = 'ACTIVE', roles = [];
update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest11';
insert into OUser set name = 'loadtest12', password = 'Passw0rd', status = 'ACTIVE', roles = [];
update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest12';
insert into OUser set name = 'loadtest13', password = 'Passw0rd', status = 'ACTIVE', roles = [];
update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest13';
insert into OUser set name = 'loadtest14', password = 'Passw0rd', status = 'ACTIVE', roles = [];
update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest14';
insert into OUser set name = 'loadtest15', password = 'Passw0rd', status = 'ACTIVE', roles = [];
update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest15';
insert into OUser set name = 'loadtest16', password = 'Passw0rd', status = 'ACTIVE', roles = [];
update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest16';
insert into OUser set name = 'loadtest17', password = 'Passw0rd', status = 'ACTIVE', roles = [];
update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest17';
insert into OUser set name = 'loadtest18', password = 'Passw0rd', status = 'ACTIVE', roles = [];
update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest18';
insert into OUser set name = 'loadtest19', password = 'Passw0rd', status = 'ACTIVE', roles = [];
update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest19';
insert into OUser set name = 'loadtest20', password = 'Passw0rd', status = 'ACTIVE', roles = [];
update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest20';
insert into OUser set name = 'loadtest21', password = 'Passw0rd', status = 'ACTIVE', roles = [];
update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest21';
update ofunction content {"idempotent":true,"@class":"ofunction","name":"testlock","language":"Javascript","code":"return test.createSyncSum();","parameters":[]} upsert where name='testlock';
create index syncLogSum.userCmdStart on syncLogSum (user, cmdStartTime) NOTUNIQUE;
create index syncLogSum.userCmdEnd on syncLogSum (user, cmdEndTime) NOTUNIQUE;
create index syncLogSum.userRawStart on syncLogSum (user, rawStartTime) NOTUNIQUE;
create index syncLogSum.userRawEnd on syncLogSum (user, rawEndTime) NOTUNIQUE;
Unzip run.zip into any folder, and execute sh start.sh and check nohup.txt log, after running for a while, in my enviroment just few seconds, all the requests will hang and server locked cannot take any request.
DROP DATABASE plocal:../databases/pharos admin admin; CREATE DATABASE plocal:../databases/pharos admin admin plocal; connect plocal:../databases/pharos admin admin;
insert into orole (mode, name, rules) values (0, 'useradmin', {"database.function.":2,"database.class.":3,"database.class.goal":7,"database.class.tag":15,"database.class.raw":7,"database.class.orole":2,"database.class.term":15,"database":2,"database.class.group":7,"database.schema":2,"database.class.stats":7,"database.cluster.*":15,"database.class.contact":7,"database.command":2,"database.class.ouser":2,"database.hook.record":15,"database.class.config":7,"database.class.insight":15,"database.class.dosage":15,"database.class.site":7,"database.class.hours":7,"database.class.dailyStats":7,"database.class.synclog":7,"database.class.report":15,"database.class.dose":7});
Users
insert into OUser set name = 'loadtest1', password = 'Passw0rd', status = 'ACTIVE', roles = []; update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest1';
insert into OUser set name = 'loadtest2', password = 'Passw0rd', status = 'ACTIVE', roles = []; update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest2';
insert into OUser set name = 'loadtest3', password = 'Passw0rd', status = 'ACTIVE', roles = []; update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest3';
insert into OUser set name = 'loadtest4', password = 'Passw0rd', status = 'ACTIVE', roles = []; update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest4';
insert into OUser set name = 'loadtest5', password = 'Passw0rd', status = 'ACTIVE', roles = []; update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest5';
insert into OUser set name = 'loadtest6', password = 'Passw0rd', status = 'ACTIVE', roles = []; update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest6';
insert into OUser set name = 'loadtest7', password = 'Passw0rd', status = 'ACTIVE', roles = []; update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest7';
insert into OUser set name = 'loadtest8', password = 'Passw0rd', status = 'ACTIVE', roles = []; update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest8';
insert into OUser set name = 'loadtest9', password = 'Passw0rd', status = 'ACTIVE', roles = []; update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest9';
insert into OUser set name = 'loadtest10', password = 'Passw0rd', status = 'ACTIVE', roles = []; update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest10';
insert into OUser set name = 'loadtest11', password = 'Passw0rd', status = 'ACTIVE', roles = []; update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest11';
insert into OUser set name = 'loadtest12', password = 'Passw0rd', status = 'ACTIVE', roles = []; update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest12';
insert into OUser set name = 'loadtest13', password = 'Passw0rd', status = 'ACTIVE', roles = []; update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest13';
insert into OUser set name = 'loadtest14', password = 'Passw0rd', status = 'ACTIVE', roles = []; update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest14';
insert into OUser set name = 'loadtest15', password = 'Passw0rd', status = 'ACTIVE', roles = []; update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest15';
insert into OUser set name = 'loadtest16', password = 'Passw0rd', status = 'ACTIVE', roles = []; update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest16';
insert into OUser set name = 'loadtest17', password = 'Passw0rd', status = 'ACTIVE', roles = []; update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest17';
insert into OUser set name = 'loadtest18', password = 'Passw0rd', status = 'ACTIVE', roles = []; update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest18';
insert into OUser set name = 'loadtest19', password = 'Passw0rd', status = 'ACTIVE', roles = []; update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest19';
insert into OUser set name = 'loadtest20', password = 'Passw0rd', status = 'ACTIVE', roles = []; update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest20';
insert into OUser set name = 'loadtest21', password = 'Passw0rd', status = 'ACTIVE', roles = []; update OUser set roles = (select from orole where name = 'useradmin') where name = 'loadtest21';
update ofunction content {"idempotent":true,"@class":"ofunction","name":"testlock","language":"Javascript","code":"return test.createSyncSum();","parameters":[]} upsert where name='testlock';
create class syncLogSum; create property syncLogSum.rawStartTime DATETIME; create property syncLogSum.rawEndTime DATETIME; create property syncLogSum.cmdStartTime DATETIME; create property syncLogSum.cmdEndTime DATETIME; create property syncLogSum.user LINK OUser;
create index syncLogSum.userCmdStart on syncLogSum (user, cmdStartTime) NOTUNIQUE; create index syncLogSum.userCmdEnd on syncLogSum (user, cmdEndTime) NOTUNIQUE; create index syncLogSum.userRawStart on syncLogSum (user, rawStartTime) NOTUNIQUE; create index syncLogSum.userRawEnd on syncLogSum (user, rawEndTime) NOTUNIQUE;