25
1
mirror of https://github.com/processone/ejabberd.git synced 2024-11-26 16:26:24 +01:00
Go to file
Pablo Polvorin 1b85310f1a Support for roster versioning (EJAB-964)
Introduces two options for mod_roster and mod_roster_odbc:
- {versioning, true | false}   Enable or disable roster versioning on ejabberd.
- {store_current_id, true | false}   If true, the current roster version is stored on DB (internal or odbc). Otherwise it is calculated on the fly each time.

Performance:
Setting store_current_id to true should help in reducing the load for both ejabberd and the DB.

Details: 
If store_current_id is false,  the roster version is a hash of the entire roster. If store_current_id is true, the roster version is a hash, but of the current time
(this has to do with transactional semantics; we need to perform both the roster update and the version update on the same transaction, but we don't   
have the entire roster when we are changing a single item on DB. Loading it there requires significant changes to be introduced, so I opted for this simpler approach).

In either case, there is no difference for the clients, the roster version ID is opaque.

IMPORTANT:
mod_shared_roster is not compatible with the option 'store_current_id'.  Shared roster and roster versioning can be both enabled, but store_current_id MUST be set to false.

SVN Revision: 2428
2009-08-06 15:45:13 +00:00
contrib Add permanent section about mod_http_fileserver to the Guide. Example config. 2009-06-16 18:28:01 +00:00
doc Support XEP-0227 Portable Import/Export (EJAB-993) 2009-08-05 18:23:54 +00:00
examples Do not include mod_irc, it can be found in ejabberd-modules SVN. Iconv not required. (EJAB-954) 2009-06-16 11:27:33 +00:00
src Support for roster versioning (EJAB-964) 2009-08-06 15:45:13 +00:00
tools Add -hidden flag when calling Debug or Ctl 2009-07-06 14:11:31 +00:00
COPYING * src/msgs/nl.msg: Updated (thanks to Sander Devrieze) 2004-10-09 20:15:49 +00:00
README ejabberd 3.0.0 will require Erlang/OTP R12B-4 or higher, or R13B or higher (EJAB-997) 2009-07-30 18:29:46 +00:00

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

ejabberd - High-Performance Enterprise Instant Messaging Server 

Quickstart guide


0. Requirements

To compile ejabberd you need:
 - GNU Make
 - GCC
 - Erlang/OTP R12B-4 or higher, R13B or higher.
 - exmpp 0.9.1 or higher
 - OpenSSL 0.9.6 or higher, for STARTTLS, SASL and SSL
   encryption. Optional, highly recommended.
 - Zlib 1.2.3 or higher, for Stream Compression support
   (XEP-0138). Optional.
 - Erlang mysql library. Optional. MySQL authentication/storage.
 - Erlang pgsql library. Optional. PostgreSQL authentication/storage.
 - PAM library. Optional. For Pluggable Authentication Modules (PAM).
 - ImageMagicks Convert program. Optional. For CAPTCHA challenges.


1. Compile and install on *nix systems

To compile ejabberd, go to the directory src/ and execute the commands:
  ./configure
  make

To install ejabberd, run this command with system administrator rights
(root user):

  sudo make install

These commands will:
 - Install the configuration files in /etc/ejabberd/
 - Install ejabberd binary, header and runtime files in /lib/ejabberd/
 - Install the administration script: /sbin/ejabberdctl
 - Install ejabberd documentation in /share/doc/ejabberd/
 - Create a spool directory: /var/lib/ejabberd/
 - Create a directory for log files: /var/log/ejabberd/


2. Start ejabberd

You can use the ejabberdctl command line administration script to
start and stop ejabberd. For example:
  ejabberdctl start


For detailed information please refer to the
ejabberd Installation and Operation Guide