A.06.30 Release Notes
Eloquence A.06.30 requires new license keys. The default license
file includes a new license key for the Eloquence Personal Edition.
Please request a new permanent license key using the form included
with the delivery or refer to the Eloquence web site
at URL
http://eloquence.marxmeier.com/license.
Eloquence for the Linux platform is available in separate packages
for libc5 and libc6 (also known as glibc 2.0) based systems.
Eloquence A.06.30 has been compiled with egcs-1.1.2 for the libc6
version and egcs-1.1.1 for the libc5 version and requires the
libstdc++.so.2.9.0 shared library. Since this version may not be easily
available with older distributions it is included with Eloquence.
If your system comes with a libstdc++.so.2.9.0 you have the option to
remove the one in the /opt/eloquence6/lib directory to avoid loading the
same library twice (which takes additional memory).
Linux kernel version
While Eloquence should work with any Linux kernel version 2.0 and
above (currently 2.4 is about to be released shortly) you are encouraged
to use the latest stable kernel version which fits for your installed
system. New kernel versions include bug fixes, updated drivers and
security fixes. Your distribution should provide an updated kernel package
which fits for your base system.
For new installations, a recent glibc2.1 based distribution (such as
SuSE 6.3 or RedHat 6.1) is recommended.
The following kernel versions are recommended:
2.0 |
Kernel version 2.0.37 and above is recommended. These kernel
versions include a patch to the fsync() system call which is
essential when using the eloqdb6 database server with sync
writing mode (see below).
|
2.2 |
Kernel version 2.2.14 and above is recommended. Since the
kernel version is related to your base system, you should
check the web site of your Linux distribution for a kernel
update.
|
2.4 |
Kernel version 2.4 has not been released yet.
Please check the Eloquence web site for notes or updates.
|
Future Eloquence release are likely to no longer support libc5
based systems and Linux kernel versions below 2.2.
Installation
Eloquence is available as a rpm package. The rpm package is not
specific to a particuar Linux distribution however it has only been
tested against SuSE and RedHat distributions. If you encounter a
problem during installation, please send us a notice at
mailto:support@marxmeier.com.
Please check the Eloquence web site for
updates and patches.
To install Eloquence execute the command below:
rpm -i B1368B-A.06.30.libc6-*.i386.rpm
Please note if you get an error installing this archive (error -2
reading header: Unknown error) you need to update your rpm to a
more recent version.
To update an existing Eloquence installation, please shut down
Eloquence and execute the command below:
- SuSE Linux:
/sbin/init.d/eloq6 stop
rpm -U B1368B-A.06.30.libc6-*.i386.rpm
/sbin/init.d/eloq6 start
- RedHat Linux:
/etc/rc.d/init.d/eloq6 stop
rpm -U B1368B-A.06.30.libc6-*.i386.rpm
/etc/rc.d/init.d/eloq6 stop
Installation of automatic startup of Eloquence servers during boot
is only performed for SuSE and RedHat distributions. If you are using
another Linux distribution, you need to add the start and shut scripts
manually. Template files are provided in the directory
/opt/eloquence6/newconfig/startup.
Updating from a previous Eloquence version
When updating from a previous Eloquence release the following
actions should be performed in additon to updating the software.
License key
If you are using the commercial Eloquence version, please request
your new A.06.30 license key before updating Eloquence.
Currently no temporary license key is generated on the Linux platform
during installation.
The new license key can be requested by either submitting the Form
enclosed with your software update or on-line at the Eloquence
web site:
http://eloquence.marxmeier.com/license.
Please comment out the previous license key when adding the new A.06.30
license key to your license file /etc/opt/eloquence6/license.
Otherwise the new license may not be recognized and chklic might
output the following messages:
A.06.20: Bad license key revision.
Duplicate sequence number: Ignoring license
Eloquence Personal Edition
With the Eloquence Personal Edition, please copy the A.06.30
license file template to /etc/opt/eloquence6/license. The new
license file includes an updated license key for the Eloquence
Personal Edition.
cp /opt/eloquence6/newconfig/config/license /etc/opt/eloquence6/license
Startup configuration on SuSE Linux
The A.06.30 startup script provides additional configuration options.
Updating /etc/rc.config is optional.
Please check file /opt/eloquence6/newconfig/startup/suse/config.eloq6
and update your /etc/rc.config manually.
New startup config options:
# The following settings are related to starting Eloquence
# automatically during system boot.
#
# Start Eloquence daemons? ("yes" or "no")
START_ELOQ="yes"
#
# The following settings allow specifying startup for specific
# daemons and daemon commandline arguments. They are all optional.
#
# Set START_ELOQSD to 1 to start the eloqsd daemon.
#START_ELOQSD=1
#ELOQSD_ARGS=""
#
# Set START_ELOQDB6 to 1 to start the eloqdb6 daemon.
#START_ELOQDB6=1
#ELOQDB6_ARGS=""
Ext2 filesytem performance in sync write mode
The algorithm used by the ext2 filesystem for syncing buffers to disk
is inefficient for big files (this is a known problem but not
easy to change). When using the eloqdb6 in sync write mode (which
is the default now) this may cause delays and the system may seem
to stall for a few seconds when eloqdb6 performs a checkpoint
operation (default every 60 seconds). This gets noticeable when the
database volume files grow beyound 300 MB and gets worse the bigger
the files get.
For Linux kernel version 2.0.3x a patch is available which works around
this problem.
--- linux-2.0.36/fs/ext2/fsync.c.orig Mon Feb 1 03:35:25 1999
+++ linux-2.0.36/fs/ext2/fsync.c Mon Feb 1 03:42:04 1999
@@ -10,6 +10,8 @@
*
* ext2fs fsync primitive
+ *
+ * Fast 'fsync' on large files (Scott Laird <laird@pacificrim.net>)
*/
#include <asm/segment.h>
@@ -172,6 +174,13 @@
* Don't sync fast links!
*/
goto skip;
+
+ /* fsync on large files is *slow*, so fall back to sync() if
+ * the file's over 10M */
+ if (inode->i_size>10000000) {
+ file_fsync(inode,file);
+ goto skip;
+ }
for (wait=0; wait<=1; wait++)
{
This workaround has been included in kernel version 2.0.37 and above.
The patch should apply to all recent 2.0.3x kernels.
To apply this patch:
cd /usr/src/linux
patch -s -p1 < /path/to/fast-fsync-patch
Afterwards rebuild your kernel.
For Linux kernel version 2.2.x or if you don't want to apply the
patch above to your 2.0.3x kernel, the option is to use a larger
block size for the ext2 filesystem which holds the database.
File system block size
The eloqdb6 database server always accesses the volume
files in 8 KB blocks. Often those read or write requests are
combined to access up to 64 KB at a time.
UNIX file systems are usually organized in blocks. The file system
block size can be choosen at file system creation time (eg. on Linux by
using the -b 4096 command line argument to mk2efs would result in a 4KB
block size). For the Linux ext2 file system, the default block size is 1 KB.
In order to maintain your data on the disk, the operating system
maintains additional information where your data is located on disk.
When files get bigger so does the overhead to keep track where your
data is located.
Enlarging the file system block size greatly reduces the amount of
overhead required to maintain your data if you use big files (as
eloqdb6 does) at the expense of using slightly more disk space for
small files.
Background: In addition to the data blocks (holding the file contents)
additional information is maintained where the data blocks are actually
located on the disk. When the file size exceeds a trivial size, the
location of the data blocks is also maintained in a separate block
on disk (indirect blocks - which the OS also needs to keep track of).
At some point (depending on file size and block size) you need blocks
that specify the location of blocks that specify the location of your
data on disk (double indirection). At this point maintaining this
information becomes a factor when reading or writing the database.
While a block size of 8 KB would be a "perfect fit", the max. usable
block size depends on the architecture (processor). On the x86 this is 4 KB.
We recommend to specify a block size of 4 KB for the Linux platform
to create a file system dedicated to hold your database.
|