This repository has been archived by the owner on Jan 13, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathHEADER.html.in
100 lines (76 loc) · 6.22 KB
/
HEADER.html.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<h1 id="monetdbjavalite">MonetDBJavaLite</h1>
<blockquote>
<p>The following documentation of MonetDBJavaLite is brief. The full details of the documentation can be found on its
<a href="https://github.com/hannesmuehleisen/MonetDBLite-Java/blob/master/README.md">GitHub repository</a>.</p>
</blockquote>
<blockquote>
<p><strong>IMPORTANT</strong> Before any further reading, remember that this software might crash in JVM-native border crossing,
although testing has been made on it :) To be 100% safe you can run MonetDBJavaLite in a sub-process inside the JVM, so
if it crashes, your application in the main process will still be up!</p>
</blockquote>
<p>MonetDBJavaLite is a Java library that allows the integration of MonetDB, a column-wise and high-scale OLAP relational database in the JVM.</p>
<p>This library allows to retrieve results from SQL statements in plain Java primitives/objects, while being JDBC compliant, as well as
portable to other JVM programming languages.</p>
<p>Unlike a traditional socket connection between a database server and client, in an embedded connection, both the client and the server share
the same process. This approach allows the client to get the results immediately from the server without any serialization or IO, thus obtaining more
performance.</p>
<p>The embedded MonetDB database is loaded through a native C shared library by JNI at the bootstrap of the process, thus the database runs natively
for further performance.</p>
<p>At the same time, the existing JDBC driver for MonetDB was extended to accommodate both a MAPI (regular socket connection) and an embedded
connection, while aiming at the simplicity of the integration of both connections.</p>
<h2 id="deliveryandinstallation">Delivery and Installation</h2>
<blockquote>
<p>The current version for `monetdb-java-lite` is @MONETDBLITEJAVA_STABLE_MAJOR_VERSION@.@MONETDBLITEJAVA_STABLE_MINOR_VERSION@ and `monetdb-jdbc-new` is @NEW_JDBC_STABLE_MAJOR_VERSION@.@NEW_JDBC_STABLE_MINOR_VERSION@</p>
</blockquote>
<p>There are two jars distributed: The new MonetDB JDBC driver jar (<code>monetdb-jdbc-new-<version>.jar</code>), and the
MonetDBJavaLite jar (<code>monetdb-java-lite-<version>.jar</code>). The former can be used independently, if only MAPI JDBC
connections are desired. The latter contains the embedded server code. For both the Embedded API and the Embedded JDBC
connections, the second jar is also required in the <code>CLASSPATH</code>.</p>
<p>The <strong><code>monetdb-jdbc-new-<version>.jar</code> is still compatible with JVM 7</strong>, however the <strong><code>monetdb-java-lite-<version>.jar</code>
requires JVM 8 to run</strong>, as we found problems running in the JVM 8 when we compiled to target JVM 7
(the problem might be related to the JVM rather than us). Currently the <strong><code>monetdb-java-lite-<version>.jar</code>
only supports 64-bit architectures</strong>.</p>
<p>The <code>monetdb-jdbc-new-<version>.jar</code> is both CPU and Operating System independent. ON the other hand, the
<code>monetdb-java-lite-<version>.jar</code> contains the JNI code for 64-bit Linux, Windows and MacOS X.</p>
<p>Both jars can be obtained through the download section of our section of our
<a href="https://www.monetdb.org/downloads/Java-Experimental/">website</a>. </p>
<p>Starting on version <code>2.30</code>, both jars can be obtained from the Maven Central repository. Note that
<code>monetdb-java-lite</code> depends on <code>monetdb-jdbc-new</code>, so only the second one is required to list in
the project's dependencies.
<pre>
<dependency>
<groupId>monetdb</groupId>
<artifactId>monetdb-jdbc-new</artifactId>
<version>@NEW_JDBC_STABLE_MAJOR_VERSION@.@NEW_JDBC_STABLE_MINOR_VERSION@</version>
</dependency>
</pre>
<pre>
<dependency>
<groupId>monetdb</groupId>
<artifactId>monetdb-java-lite</artifactId>
<version>@MONETDBLITEJAVA_STABLE_MAJOR_VERSION@.@MONETDBLITEJAVA_STABLE_MINOR_VERSION@</version>
</dependency>
</pre>
</p>
<h2 id="libraries">Libraries</h2>
<p>Packed in the <code>src/main/resources/libs</code> directory of the <code>monetdb-java-lite-<version>.jar</code> there are several
directories, containing the C-library of MonetDB for each supported operating system. The extension of the library
should either be the default for a dynamic libraries on the user's OS or the generic (for JNI) <code>.jnilib</code>. For this
reason the <code>monetdb-java-lite-<version>.jar</code> size is much larger than the average size of a <code>.jar</code> file. If the user
wants to save space, he might delete the unwanted versions of the native library in the <code>src/main/resources/libs</code>
directory, although it's not recommended to do so.</p>
<p>In an IDE or when Maven runs tests from the command line, the application will use the unpacked library, already present
in the <code>src/main/resources/libs</code> directory (since there isn't a <code>.jar</code> yet). When running "in production" - from a <code>.jar</code>, the
application will stream copy the library to a temporary directory, and load the library from there. This is needed, since one
cannot use the packed libraries in a <code>.jar</code> directly.</p>
<h2 id="license">License</h2>
<p>This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not
distributed with this file, You can obtain one at <a href="https://mozilla.org/MPL/2.0/">https://mozilla.org/MPL/2.0/</a>.</p>
<p>Copyright 1997 - July 2008 CWI, August 2008 - 2018 MonetDB B.V.</p>
<h2 id="developerandsupport">Developer and support</h2>
<p>The MonetDBJavaLite is being supported by <a href="mailto://[email protected]">Pedro Ferreira</a>, a developer
at <a href="https://monetdbsolutions.com/">MonetDBSolutions</a>. Feel free to create an issue on
<a href="https://www.monetdb.org/bugzilla/">Bugzilla</a> or GitHub, create a pull request or
<a href="mailto://[email protected]">just send an email</a>. You can also create a question on
<a href="https://stackoverflow.com/">Stack Overflow</a> with the tag <code>monetdblite</code>.</p>
<p>As you could see I like emoticons! :) Just one more :)</p>