StoreMate-API

Data types needed for service abstraction, used by both server and client components.

License

License

GroupId

GroupId

com.fasterxml.storemate
ArtifactId

ArtifactId

storemate-api
Last Version

Last Version

0.5.1
Release Date

Release Date

Type

Type

jar
Description

Description

StoreMate-API
Data types needed for service abstraction, used by both server and client components.
Project Organization

Project Organization

fasterxml.com

Download storemate-api

How to add to project

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

Dependencies

compile (2)

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

test (2)

Group / Artifact Type Version
com.fasterxml.storemate : storemate-shared test-jar 0.5.1
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.5.1