- Posts: 13648
- Thank you received: 2491
Welcome to the LimeSurvey Community Forum
Ask the community, share ideas, and connect with other LimeSurvey users!
Humongous sessions
- DenisChenu
- Offline
- LimeSurvey Community Team
Dependbruce78 wrote:
DenisChenu wrote: Not currently. And remind : we still use $_SESSIOn : it's one of the reason the first pacge can take a long long long time to call.
Interesting... btw, do you think disk sessions are faster/more reliable than db sessions, all things being equal?
If you can set session save path on a SSD or better in RAM ! file session is quickest sure.
If both are in HHD : file or SQL : i think file still quick ? because we use SQL for other than session
=> Maybe alternative soluton is to use another DB for session, for example a SQLite db (saved in RAM/SSD)
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
- bruce78
- Offline
- Senior Member
- Posts: 77
- Thank you received: 4
DenisChenu wrote: => Maybe alternative soluton is to use another DB for session, for example a SQLite db (saved in RAM/SSD)
That's a neat idea... do you think something like that might reduce my first page load time from 10 seconds to something less?
- DenisChenu
- Offline
- LimeSurvey Community Team
- Posts: 13648
- Thank you received: 2491
Not tested, the no idea ....bruce78 wrote:
DenisChenu wrote: => Maybe alternative soluton is to use another DB for session, for example a SQLite db (saved in RAM/SSD)
That's a neat idea... do you think something like that might reduce my first page load time from 10 seconds to something less?
But think the best solution is to save session in RAM only or SSD. Maybe in a SQLite DB on RAM is the better way.
Denis
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
- bruce78
- Offline
- Senior Member
- Posts: 77
- Thank you received: 4
- bruce78
- Offline
- Senior Member
- Posts: 77
- Thank you received: 4
DenisChenu wrote: But think the best solution is to save session in RAM only or SSD. Maybe in a SQLite DB on RAM is the better way.
Denis
Ok, so I've been trying to get the sessions info to write to a sqlite db... I've been editing the config file but I've not had much luck, even though sqlite3 is running fine on the machine. Extracts from the config file are below but in brief...
If I leave
'class' => 'application.core.web.DbHttpSession',
'db_sqlite' => array(
Property "DbHttpSession.file" is not defined.
However, if I comment out
//'class' => 'application.core.web.DbHttpSession',
Object configuration must be an array containing a "class" element.
Below is the relevant extract of config.php and I've attached the full version in case I've missed anything else.
Do you know what I'm doing wrong or is LS not compatible with SQLite?
This thread suggests SQLite can be made to work as a core DB but these other threads ( one , two ) suggest SQLite isn't compatibe, but I suspect both are talking about using SQLite as the primary db and not for the session table...
Here's the extract from the config file...
return array( 'components' => array( 'db' => array( 'connectionString' => 'mysql:host=localhost;port=3306;dbname=dbname;', 'emulatePrepare' => true, 'username' => 'user', 'password' => 'pass', 'charset' => 'utf8mb4', 'tablePrefix' => 'lime_', ), // Uncomment the following line if you need table-based sessions 'session' => array ( 'class' => 'application.core.web.DbHttpSession', 'connectionID' => 'db_sqlite', 'sessionTableName' => '{{sessions}}', ), 'db_sqlite' => array( 'file' => '/home/test.db', 'connectionString' => 'sqlite:/home/test.db', // 'class' => 'application.core.web.DbHttpSession', 'emulatePrepare' => true, 'username' => '', 'password' => '', // 'charset' => 'utf8mb4', // 'tablePrefix' => 'lime_', ),
- DenisChenu
- Offline
- LimeSurvey Community Team
- Posts: 13648
- Thank you received: 2491
github.com/LimeSurvey/LimeSurvey/blob/ma...bHttpSession.php#L20
Did you try a var dump/die here ? To see if it's the good session ?
Seems OK according to Yii doc : www.yiiframework.com/doc/api/1.1/CDbHttp...#connectionID-detail
I don't see 'file' => '/home/test.db', in Yii doc about www.yiiframework.com/doc/api/1.1/CDbConnection : what did you add it ? You already have it in connectionString
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
- bruce78
- Offline
- Senior Member
- Posts: 77
- Thank you received: 4
DenisChenu wrote: github.com/LimeSurvey/LimeSurvey/blob/ma...bHttpSession.php#L20
Did you try a var dump/die here ? To see if it's the good session ?
I don't understand how to try a var dump/die - can you help me out?
DenisChenu wrote: I don't see 'file' => '/home/test.db', in Yii doc about www.yiiframework.com/doc/api/1.1/CDbConnection : what did you add it ? You already have it in connectionString
I've removed 'file' => '/home/test.db' and I still get the same errors...
Would you suggest anything else at all?
- DenisChenu
- Offline
- LimeSurvey Community Team
- Posts: 13648
- Thank you received: 2491
I do some test : OK, seem to using another db is broken with this configuration. I do some more test.
BUT : there are a solution .
'session' => array ( 'class' => 'application.core.web.DbHttpSession', 'connectionID' => null, 'sessionTableName' => '{{sessions}}', ),
Unsure you need application.core.web.DbHttpSession, maybe you can test with system.web.CDbHttpSession too here.
Actually : if 'connectionID' => null, : Yii app create a sqlite db in /tmp/runtime/session-1.1.17.db
To put it elsewhere, currently usage of symbolic link but can be try with this solution.
I think LS don't try to create the db componenent, then use it but don't create . I take a look.
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
- jelo
- Offline
- Platinum Member
- Posts: 5033
- Thank you received: 1257
10 seconds? Stick to SSD storage in combination with sessions-files. Wouldn't use Limesurvey without SSD. Till LimeSurvey is mostly use in small surveys with not many concurrent probands the session misdesign will be last for a long time.bruce78 wrote: That's a neat idea... do you think something like that might reduce my first page load time from 10 seconds to something less?
There are other code parts which won't be technically challenged for a long time since not many users use the stuff. E.g. export functions crumble when handling bigger amount of data. Still waiting to see a big LSA export working. Perhaps I need 128 GB RAM on a webserver to do it
The meaning of the word "stable" for users
www.limesurvey.org/forum/development/117...ord-stable-for-users
- bruce78
- Offline
- Senior Member
- Posts: 77
- Thank you received: 4
DenisChenu wrote:
Actually : if 'connectionID' => null, : Yii app create a sqlite db in /tmp/runtime/session-1.1.17.dbCode:'session' => array ( 'class' => 'application.core.web.DbHttpSession', 'connectionID' => null, 'sessionTableName' => '{{sessions}}', ),
Ok, thanks Denis, this worked as you said but sqlite didn't speed up the loading of the survey... if anything it was a bit slower and I'm also worried about using RAM for sessions as this won't allow people to save their responses if the machine needs to be rebooted, so I'm back to square one in that regard.
SSD is the next idea, as is going back to the 2.06 version....
- bruce78
- Offline
- Senior Member
- Posts: 77
- Thank you received: 4
jelo wrote: 10 seconds? Stick to SSD storage in combination with sessions-files. Wouldn't use Limesurvey without SSD.
This is the plan... the survey was also noticeably faster on 2.06 on the same hardware...
jelo wrote: Till LimeSurvey is mostly use in small surveys with not many concurrent probands the session misdesign will be last for a long time.
Sure, I can imagine that... I guess there are no plans to speed up the session design in version 3?
- DenisChenu
- Offline
- LimeSurvey Community Team
- Posts: 13648
- Thank you received: 2491
Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.