Skip to content

Commit aad8eef

Browse files
Create README.md
1 parent 23a55ae commit aad8eef

1 file changed

Lines changed: 86 additions & 0 deletions

File tree

README.md

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# interference
2+
simple distributed persistent layer for java applications
3+
(c) 2019 head systems, ltd
4+
5+
current revision: 2019.3
6+
for detailed information see docs/InterferenceManual.pdf
7+
8+
https://github.com/interference-project/inteference
9+
10+
Concepts & features
11+
12+
- supports Base JPA annotations
13+
- supports distributed SQL queries
14+
- supports transactions
15+
- runs in the same JVM with local application
16+
- can be used as a local or distributed SQL database
17+
- can be used as persistent layer for a distributed application
18+
- operates with simple objects (POJOs), annotated primarily
19+
according to the JPA specification
20+
- allows you to make changes to data and query data from any node
21+
included in the cluster
22+
- does not contain any coordination nodes and does not require
23+
the launch of any additional coordinators. All cluster nodes are equivalent.
24+
- supports complex event processing and streaming SQL (in next release)
25+
26+
27+
Quick Start Application
28+
29+
The interference-test application shows example of using the basic
30+
interference use cases. Before starting and using, read the manual.
31+
32+
Consider a basic example when the interference service used as a
33+
local persistent layer of the application and runs in the same JVM
34+
with the application.
35+
36+
To get started with interference, you need to include the interference.jar
37+
library in your project configuration. For maven pom.xml, this might look
38+
like this:
39+
40+
<dependencies>
41+
<dependency>
42+
<groupId>su.interference</groupId>
43+
<artifactId>interference</artifactId>
44+
<version>2019.3</version>
45+
</dependency>
46+
...
47+
</dependencies>
48+
49+
Next, specify the necessary set of keys in the project
50+
(application) settings (jmxremote settings is optional):
51+
52+
-Dsu.interference.config=interference.properties
53+
-Dcom.sun.management.jmxremote
54+
-Dcom.sun.management.jmxremote.port=8888
55+
-Dcom.sun.management.jmxremote.local.only=false
56+
-Dcom.sun.management.jmxremote.authenticate=false
57+
-Dcom.sun.management.jmxremote.ssl=false
58+
59+
To run a single local interference node, you can use the standard
60+
supplied interference.properties configuration. Note that file
61+
interference.properies should be within /config subdirectory.
62+
Next, see the configuration section.
63+
64+
Then, add following code into initializing section of your java application:
65+
66+
Instance instance = Instance.getInstance();
67+
Session session = Session.getSession();
68+
instance.startupInstance(session);
69+
70+
where Instance is su.inteference.core.Instance
71+
and Session is su.interference.persistent.Session.
72+
73+
74+
Service as standalone
75+
76+
This option can be used when the cluster node is used solely for the purpose of further horizontal scaling of the data retrieving mechanism:
77+
78+
java -cp interference.jar
79+
-Dsu.interference.config=interference.properties
80+
-Dcom.sun.management.jmxremote
81+
-Dcom.sun.management.jmxremote.port=8888
82+
-Dcom.sun.management.jmxremote.local.only=false
83+
-Dcom.sun.management.jmxremote.authenticate=false
84+
-Dcom.sun.management.jmxremote.ssl=false
85+
su.interference.standalone.Start
86+

0 commit comments

Comments
 (0)