StoreMate-client-base

Building blocks for client libraries that access StoreMate-based service.

License

License

Categories

Categories

CLI User Interface
GroupId

GroupId

com.fasterxml.storemate
ArtifactId

ArtifactId

storemate-client-base
Last Version

Last Version

0.8.8
Release Date

Release Date

Type

Type

jar
Description

Description

StoreMate-client-base
Building blocks for client libraries that access StoreMate-based service.
Project Organization

Project Organization

fasterxml.com

Download storemate-client-base

How to add to project

<!-- https://jarcasting.com/artifacts/com.fasterxml.storemate/storemate-client-base/ -->
<dependency>
    <groupId>com.fasterxml.storemate</groupId>
    <artifactId>storemate-client-base</artifactId>
    <version>0.8.8</version>
</dependency>
// https://jarcasting.com/artifacts/com.fasterxml.storemate/storemate-client-base/
implementation 'com.fasterxml.storemate:storemate-client-base:0.8.8'
// https://jarcasting.com/artifacts/com.fasterxml.storemate/storemate-client-base/
implementation ("com.fasterxml.storemate:storemate-client-base:0.8.8")
'com.fasterxml.storemate:storemate-client-base:jar:0.8.8'
<dependency org="com.fasterxml.storemate" name="storemate-client-base" rev="0.8.8">
  <artifact name="storemate-client-base" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.fasterxml.storemate', module='storemate-client-base', version='0.8.8')
)
libraryDependencies += "com.fasterxml.storemate" % "storemate-client-base" % "0.8.8"
[com.fasterxml.storemate/storemate-client-base "0.8.8"]

Dependencies

compile (1)

Group / Artifact Type Version
com.fasterxml.storemate : storemate-shared jar 0.8.8

test (2)

Group / Artifact Type Version
com.fasterxml.storemate : storemate-shared test-jar 0.8.8
junit : junit jar 4.8.2

Project Modules

There are no modules declared in this project.

Overview

This project is a building block that implements a simple single-node store system to use as a building block for distributed storage systems.

Check out Project Wiki for complete description; here are some of the highlights:

  • Key/Value storage with optional opaque metadata (stored along with std metadata), where values can range from tiny to huge: smallest entries inlined in local database, larger offlined to disk
  • Last-modified index for building Change List - based synchronization between stores
  • Automatic, configurable auto-negotiated on-the-fly compression, decompression (GZIP, LZF, depending on payload size)
  • Pluggable DB storage backends. Current implementations include:
    • BDB-JE based: mature, default implementation
    • LevelDB/Java based: complete (as of 1.0), no known problems, but not as extensively used.
    • Other backends are planned for things like mdb (openLDAP / lighting) and Krati: let us know if you are interested in contributing other backends!

License

Good old Apache 2

Status

StoreMate is a mature component, and 1.0 version was recently released. It is used in production systems via inclusion in ClusterMate (see below)

Unit tests exist to verify basic functioning of the single-node data store, when accessed locally (not over network).

More documentation still needed.

Sub-modules

Project is a multi-module Maven project. Sub-modules are can be grouped in following categories:

  • Low-level utility libraries:
  • shared: data structures and utility methods for dealing with things like compression and hash code calculation
  • Single-node store implementation
  • store: Backend-independent single-node data store implementation that uses a backend implementation
  • Backends:
    • backend-bdb-je: Backend implementation that uses BDB-JE store (default choice)
    • backend-leveldb: Backend implementation that uses LevelDB store (new in 0.9.7)

More on design on Wiki.

Used In

  • ClusterMate uses StoreMate as its per-node Storage Layer

Versions

Version
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.0
0.5.1