Virtual Server Install
Richard Gaskin
ambassador at fourthworld.com
Fri May 31 14:58:09 EDT 2013
Mark Rauterkus wrote:
> http://livecode.com/how-it-works/platforms-and-devices/server/
>
> That info above is exciting, but there has to be more depth somewhere.
> Where?
The docs included in the package often describe all that one needs to
know. There are a few errors and omissions, but overall they're not a
bad starting point.
Once we get further along with community involvement we can of course
coordinate with the mother ship to enhance those docs - what would you
like to see done first?
stephen barncard wrote:
> I've been planning to send an email the CEO of Dreamhost and suggest
> they offer Livecode with their one click installs after the community
> edition is released. They are a pretty hip company and may already be
> planning this.
If they'd be receptive to a petition, I'd sign it.
It may be best to do that after the next version of LiveCode Server is
released.
The current version will fail with certain I/O routines on Dreamhost's
current system setup, for the reasons I described here earlier with
64-bit inodes.
But thankfully Mark Waddingham was able to find a way to reproduce the
issue on a test machine in their office, and the fix is now evident in
the v6.0.1 engine, confirmed by Mark and verified in my testing with a
standalone on Dreamhost.
So once the new LiveCode Server engine is released, we'll finally be
able to run in confidently on all Dreamhost servers (and a growing
number of others that are migrating to the XFS file system).
One good selling point speaks to the same reason they're migrating to
XFS: efficiency with regard to system load. With XFS they can save
enough energy to pay for an admin's salary. Similarly, LiveCode is an
unusually lean system for what it provides.
For example, I have a custom search engine written in LiveCode that is
able to do everything it needs to do in just 30% as much memory and 10%
as many CPU cycles as it takes Drupal just to open a page.
Even with the presumed inefficiencies of a non-threaded system, LiveCode
loads so fast* and is done in just milliseconds that overall use of
system resources is often lower than alternatives for equivalent tasks.
Of course one would want to frame that carefully in discussion with
them. For example, in all fairness to Drupal the reason it uses so much
RAM is that it's a really complex, flexible system. No doubt if one
wrote something that complex in LiveCode rather than PHP it would also
require a lot of RAM, possibly more because it can't take advantage of
any stay-resident options like mod_php offers.
That said, I'm not even sure DH uses mod_php; it may be that they're
running PHP in CGI mode (I'd have to check their wiki to make sure).
But either way, it's so easy to write custom stuff in LC that we don't
need complex frameworks as frequently, so I suspect that in the larger
view the message of resource efficiency is a sound one.
* Running LC as a CGI, as happens with LiveCode Server, places unusually
strong emphasis on runtime efficiency, since it needs to load,
initialize, run, and die in the time it takes to satisfy an HTTP request.
Accordingly, I've been exploring LC's boot sequence with strace on
Linux, and have found some redundant calls that can be removed, which
will boot its overall efficiency just a little bit more.
The biggest redundancy is unfortunately something that AFAIK only
affects standalones: it makes 93 attempts to open revDatabaseLibray,
looking for various permutations (no suffice, with ".rev", with ",mc",
etc.) and in various locations (CGI folder, one up, root, etc.).
If you're not using any database drives, all 93 of those calls are a
waste of clock cycles. They don't even add up to much, but with
multiple instances of the engine running as a CGI it can add up, so I
was glad the team was able to confirm my report and is looking into this.
It may be that this also happens with LC server, since of course it also
may sometimes need the DB lib, so this benefit may extend to that build
as well.
But along the way I also found other redundancies, like multiple calls
to getSystemTime, and others, and once those are trimmed back we may see
boot times shortened by a useful percentage, perhaps 20-30%.
Of course in real-time measurements those are trivial, amounting to less
than a millisecond. But thinking in terms of scalability, since each
call to LC Server instantiates a fresh copy, any reduction in load time
will help extend the value of a system driven by LC as its audience
grows, also likely to trim a bit of memory usage by having fewer calls
in the queue.
--
Richard Gaskin
Fourth World
LiveCode training and consulting: http://www.fourthworld.com
Webzine for LiveCode developers: http://www.LiveCodeJournal.com
Follow me on Twitter: http://twitter.com/FourthWorldSys
More information about the use-livecode
mailing list