Adding tests for composite keys
[csql.git] / README
blob0eacdf508aba83ca013706efb0b37efeff25a3c6
1 Introduction 
2 ------------
3         CSQL is a fast, multi-threaded SQL main memory database engine. It works in embedded mode, where database client and server run in the same host, avoiding network latency. It provides very high throughput of 100,000 selects/sec and 50,000 updates/sec. Applications shall access csql through standard interfaces,  ODBC or JDBC. It also provides proprietary APIs to access SQL engine and Storage engine directly.
4         It aids in the development of high performance, fault-resilent applications requiring concurrent access to the shared data.
6         CSQL shall also be used as client side caching mechanism for any database system without compromising on transactional properties and indexed access. This is achieved by using CSQL-main memory database to cache the data from the target database (any traditional disk based database system). 
7         This solution has been designed with modern database requirements in mind, and particularly for use within high-volume environment that requires high performance, while still supporting the transactional properties. Applications shall use this caching solution with no or minimal application code changes.
8         Perfomance benchmarking reveals that application throughput may increase by a factor of 20 to 100 by incorporating data caching in its architecture.
9         It is a free software, licensed with the GNU GENERAL PUBLIC LICENSE, http://www.gnu.org/. Refer COPYING file for Licensing information.
11 Platforms Supported
12 -------------------
13 Linux 
15 Compilers Supported
16 -------------------
17 g++ in linux
19 Compiling the source
20 --------------------
21 Go to the root directory and enter the following commands.
23 $ export JDK_HOME=<path of jdk home>
24 $ export PATH=$PATH:$JDK_HOME/bin
25 $ ./build.ksh
26 $ make
27 $ make install
28 $ ./csqlinstall.ksh
30 This will create "install" directory under the current directory and places all the executables created in bin directory and libraries in lib directory. 
31 If you want to install in some other directory then change the directory in --prefix option in build.ksh file before executing build.ksh script.
33 Available Documentation
34 -----------------------
35 1.User Manual is available under the docs directory
36 2.HTML API Reference for DB API under the docs/html directory (Refer next section)
37 3.DB API, SQL API, JDBC, ISQL  example programs under the examples directory
39 Generating API Reference
40 ------------------------
41 Go to the root directory and enter
42 $doxygen
44 This will create "docs/html" directory under which API Reference html files are stored. Refer index.html in that directory.
46 Starting the Server
47 -------------------
48 Note: kernel.shmmax should be set to more than 500 MB before starting the server
50 In linux for setting 1GB enter
51 $sysctl -w kernel.shmmax=1000000000
53 You should find csqlserver executable under the bin directory of the installation.
54 Change csql.conf file under the installation root directory if necessary.
55 Set the CSQL_CONFIG_FILE environment variable to absolute path of csql.conf file.
57 For example, if csql.conf is available at /tmp directory, then
58 $export CSQL_CONFIG_FILE=/tmp/csql.conf
60 Set the LD_LIBRARY_PATH environment variable to point to csql libraries
61 Let us say if you have installed csql under /home/csql/install, then
62 $export LD_LIBRARY_PATH=/home/csql/install/lib:$LD_LIBRARY_PATH
64 Note: 
65 setupenv.ksh script is available at the root directory which shall be used to
66 set the necessary environment variables.
68 Start the server using csqlserver executable
69 $./csqlserver
71 This starts the server and creates the database file.
73 Note:
74 Refer UserManual.pdf available in docs folder to know how to work with csql
76 Shutting down the Server
77 ------------------------
78 Pressing Ctrl-C on the terminal where csqlserver is running, 
79 is safe and will stop the server gracefully by removing the database file.