Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/naver/arcus-java-client
ARCUS Java client
https://github.com/naver/arcus-java-client
arcus arcus-java-client spymemcached
Last synced: about 3 hours ago
JSON representation
ARCUS Java client
- Host: GitHub
- URL: https://github.com/naver/arcus-java-client
- Owner: naver
- License: apache-2.0
- Created: 2014-04-29T09:55:01.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2024-10-25T05:02:14.000Z (14 days ago)
- Last Synced: 2024-10-25T07:43:19.949Z (14 days ago)
- Topics: arcus, arcus-java-client, spymemcached
- Language: Java
- Homepage:
- Size: 4.25 MB
- Stars: 50
- Watchers: 20
- Forks: 47
- Open Issues: 22
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog
- License: LICENSE
- Authors: AUTHORS
Awesome Lists containing this project
README
## arcus-java-client: Arcus Java Client [![CI][ciBadge]][ciLink] [![License][liBadge]][liLink]
This is a fork of [spymemcached][spymemcached] with the following modifications
to support Arcus memcached cloud.- Collection data types
- List: A doubly-linked list.
- Set: An unordered set of unique data.
- Map: An unordered set of .
- B+Tree: A B+Tree structure similar to sorted map.
- ZooKeeper based clustering[spymemcached]: https://code.google.com/p/spymemcached/ "spymemcached"
## JDK Requirements
Compatible with jdk version
- runtime requirements : At least 1.6
- build requirements : At least 1.8## Getting Started
The Maven artifact for arcus java client is in the central Maven repository.
To use it, add the following dependency to your pom.xml.```xml
com.navercorp.arcus
arcus-java-client
1.14.0
```
- [Getting Started Guide (in Korean)][getting-started-guide]
[getting-started-guide]: docs/arcus-java-client-getting-started.md "guide"
## Building
To build your own library, simply run the following maven command:
```
$ mvn clean install# Test cases may not run properly if you do not already have memcached
# and ZooKeeper installed on the local machine. To skip tests, use skipTests.$ mvn clean install -DskipTests=true
```## Running Test Cases
Before running test cases, make sure to set up a local ZooKeeper and run
an Arcus memcached instance. Several Arcus specific test cases assume that
there is an Arcus instance running, along with ZooKeeper.First, make a simple ZooKeeper configuration file. By default, tests assume
ZooKeeper is running at localhost:2181.
```
$ cat test-zk.conf
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/home1/openarcus/zookeeper_data
# the port at which the clients will connect
clientPort=2181
maxClientCnxns=200
```Second, create znodes for one memcached instance running at localhost:11211.
ZooKeeper comes with a command line tool. The following script uses it to
set up the directory structure.
```
$ cat setup-test-zk.bashZK_CLI="./zookeeper/bin/zkCli.sh"
ZK_ADDR="-server localhost:2181"$ZK_CLI $ZK_ADDR create /arcus 0
$ZK_CLI $ZK_ADDR create /arcus/cache_list 0
$ZK_CLI $ZK_ADDR create /arcus/cache_list/test 0
$ZK_CLI $ZK_ADDR create /arcus/client_list 0
$ZK_CLI $ZK_ADDR create /arcus/client_list/test 0
$ZK_CLI $ZK_ADDR create /arcus/cache_server_mapping 0
$ZK_CLI $ZK_ADDR create /arcus/cache_server_log 0
$ZK_CLI $ZK_ADDR create /arcus/cache_server_mapping/127.0.0.1:11211 0
$ZK_CLI $ZK_ADDR create /arcus/cache_server_mapping/127.0.0.1:11211/test 0
$ZK_CLI $ZK_ADDR create /arcus/cache_server_mapping/127.0.0.1:11212 0
$ZK_CLI $ZK_ADDR create /arcus/cache_server_mapping/127.0.0.1:11212/test 0
```Now start the ZooKeeper instance using the configuration above.
```
$ ZOOCFGDIR=$PWD ./zookeeper/bin/zkServer.sh start test-zk.conf
```And, start the memcached instance.
```
$ /home1/openarcus/bin/memcached -E /home1/openarcus/lib/default_engine.so -p 11211 -z localhost:2181
```Finally, run test cases.
```
$ mvn test
[...]
Results :Tests run: 722, Failures: 0, Errors: 0, Skipped: 8
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3:17.308s
[INFO] Finished at: Thu Mar 06 13:42:58 KST 2014
[INFO] Final Memory: 9M/722M
[INFO] ------------------------------------------------------------------------
```## API Documentation
Please refer to [Arcus Java Client User Guide](docs/user_guide/README.md)
for the detailed usage of Arcus java client.## Issues
If you find a bug, please report it via the GitHub issues page.
https://github.com/naver/arcus-java-client/issues
## Arcus Contributors
In addition to those who had contributed to the original libmemcached, the
following people at NAVER have contributed to arcus-java-client.Chisu Yu (netspider) ;
Hoonmin Kim (harebox) ;
YeaSol Kim (ngleader) ;
SeongHwa Ahn ;
HyongYoub Kim## License
Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0
## Patents
Arcus has patents on b+tree smget operation.
Refer to PATENTS file in this directory to get the patent information.Under the Apache License 2.0, a perpetual, worldwide, non-exclusive,
no-charge, royalty-free, irrevocable patent license is granted to any user for any usage.
You can see the specifics on the grant of patent license in LICENSE file in this directory.[ciBadge]: https://github.com/naver/arcus-java-client/actions/workflows/ci.yml/badge.svg
[ciLink]: https://github.com/naver/arcus-java-client/actions/workflows/ci.yml
[liBadge]: https://img.shields.io/badge/License-Apache_2.0-blue.svg
[liLink]: https://github.com/naver/arcus-java-client/blob/master/LICENSE