Page 1 of 1

Sqlite Client Server - SQLitening Database System

Posted: Wed Jan 12, 2011 1:15 am
by AndyP
I've been searching around for Sqlite server solutions and came across this:

http://www.sqlitening.com/support/index.php

you need a login to get the files.

Looks very promising, here's the introduction text from the help files.

'SQLitening Database System
SQLitening is a client/server implementation of the very popular SQLite
database.
SQLitening is a programmer's library in standard Win32 DLL form. It is installed
as a standard Windows Service. In addition to client/server mode, the library
allows the programmer to also access SQLite databases in local mode. In either
mode (local or client/server), the database is extremely fast and robust.
Installation is a breeze - you simply copy a couple of DLL's to the folder where
your application resides. If you work in client/server mode, you create a folder on
your server and start the SQLitening Windows Service from the Administration
program. You may need to modify the standard configuration text file to set
permissions and port numbers/host names. Simple.'

Very detailed documentation and examples are included.

The project is public domain:

'PUBLIC DOMAIN SOFTWARE
The author or authors of this code dedicate any and all copyright interest in this
code to the public domain. Anyone is free to copy, modify, publish, use, compile,
sell, or distribute the original code, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any means.
Fred Meier - July 2010'

-------------------------------

Now you may be asking why use Sqlite in client/server situations when MySql or PostgreSQL could be employed out of the box with LiveCode?

Sqlite as you know is great for local storage but multi user over a network (Lan) is troublesome as Sqlite uses the operating systems own file locking system to control writes to the db. Sqlite 3.* is good at multiple reads and file locking is not required for reading. It is however fast and very easy to deploy, one just requires the file path to the db file.

MySql is out for commercial projects as a quite hefty licence fee is required (you only get to use it free on open source projects).

My target audience for the project I'm working on at the moment is small companies which would use the product on no more than 20 clients. Experience tells me that this size of company normally do not have dedicated IT staff so deployment has to be simple with minimal setup, this for the moment discards PostgreSQL.

Up to now I've been using the product as an in-house solution for upto 5 client machines which do low volume writes to the db. I've used a lock file technique where if a write is to be performed then a check is done to see if a lock file exists (same directory as db file) if it does then the client waits, continuously polling until there is no lock file. When no lock file exists the polling client creates a new lock file, does it's writes and then deletes the lock file.

This has worked well for the low volume traffic and number of clients but I suspect will give problems when client numbers and write volumes are scaled up.

The SQLitening Database System looks like a good solution. I've only just found this and will be doing LiveCode interface and load testing and will post the results and experiences here later.

If others from the community could do the same we may between us be able to provide a fairly definitive statement on the use of LiveCode and the SQLitening Database System. Hopefully this will lead to new uses for Sqlite and LiveCode.

Anyway it's 14 minutes past midnight here now so time for some shuteye!

Re: Sqlite Client Server - SQLitening Database System

Posted: Wed Jan 12, 2011 4:35 am
by kray
Sounds great, Andy... thanks for posting that. I've been looking at way to do low volume multiuser db work, and although I'm most familiar with MySQL, SQLLite is w better alternative for deployment, IMHO.