ldlm

module
v1.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 4, 2025 License: Apache-2.0

README

ldlm logo

LDLM

LDLM is a Lightweight Distributed Lock Manager implemented over gRPC and REST.

Installation

Download and install the latest release from github for your platform. Packages for linux distributions are also available there.

For containerized environments, the docker image ian76/ldlm:latest is available from dockerhub.

user@host ~$ docker run -p 3144:3144 ian76/ldlm:latest
{"time":"2024-04-27T03:33:03.434075592Z","level":"INFO","msg":"loadState() loaded 0 client locks from state file"}
{"time":"2024-04-27T03:33:03.434286717Z","level":"INFO","msg":"IPC server started","socket":"/tmp/ldlm-ipc.sock"}
{"time":"2024-04-27T03:33:03.434402133Z","level":"WARN","msg":"gRPC server started. Listening on 0.0.0.0:3144"}

Usage

Full documentation is available at http://ldlm.readthedocs.io/

Clients

Native LDLM clients which have their own usage documented in their respective repos are available for

API clients can be created using any language supported by gRPC. If a native client is not available for your language, examples for other languages are available.

Contributing

See CONTRIBUTING.md for details.

License

Apache 2.0; see LICENSE for details.

Disclaimer

This project is not an official Google project. It is not supported by Google and Google specifically disclaims all warranties as to its quality, merchantability, or fitness for a particular purpose.

Directories

Path Synopsis
cmd
lock
main() is a simple wrapper around making ldlm IPC calls to manipulate locks in a running ldlm server
main() is a simple wrapper around making ldlm IPC calls to manipulate locks in a running ldlm server
server
main() is a simple wrapper around running server.Run()
main() is a simple wrapper around running server.Run()
stress
main() is a simple wrapper around running stresstest.Run()
main() is a simple wrapper around running stresstest.Run()
This file contains the Lock struct definition and its methods.
This file contains the Lock struct definition and its methods.
net
Package net contains the network configuration and a single Run() function which starts the configured server(s).
Package net contains the network configuration and a single Run() function which starts the configured server(s).
grpc
This file contains the gRPC server package's struct, Run() function, and helpers
This file contains the gRPC server package's struct, Run() function, and helpers
rest
This file contains the REST component that uses grpc-gateway to provide a REST gateway the the ldlm gRPC server.
This file contains the REST component that uses grpc-gateway to provide a REST gateway the the ldlm gRPC server.
security
This file contains generic security functions and types for networking components that interact with a lock server
This file contains generic security functions and types for networking components that interact with a lock server
Package protos is a reverse proxy.
Package protos is a reverse proxy.
This file contains the ldlm lock server.
This file contains the ldlm lock server.
clientlock
This file contains a Lock struct definition which represents a lock held by a lock server client.
This file contains a Lock struct definition which represents a lock held by a lock server client.
ipc
This file contains the IPC method definitions and implementations
This file contains the IPC method definitions and implementations
session
This file contains sessionManager struct definition and methods.
This file contains sessionManager struct definition and methods.
session/store
This file contains the store struct, its methods, and some helper functions related to serialization.
This file contains the store struct, its methods, and some helper functions related to serialization.
stresstest exposes a StressTest() function which can be used to stress test ldlm.
stresstest exposes a StressTest() function which can be used to stress test ldlm.
This file contains the timer manager struct and methods.
This file contains the timer manager struct and methods.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL