Skip to content

A prototype of the Group Membership Management Framework

License

Notifications You must be signed in to change notification settings

kjarosh/agh-gmmf-prototype

Repository files navigation

GMMF Prototype

A prototype of the Group Membership Management Framework. Implemented according to the concepts presented in the article entitled "Group Membership Management Framework for Decentralized Collaborative Systems".

The prototype simulates a P2P environment consisting of multiple so-called "zones", which represent autonomous organizations in a decentralized network.

Repository structure

  • config — exemplary application configurations,
  • tests-docker — scripts used to benchmark the prototype on bare Docker (customized for the specific setup used in the article),
  • tests-k8s — scripts and configuration used to benchmark the prototype in Kubernetes,
  • util — utility scripts,
  • gmmf-* — the application source code divided into modules,
  • gmmf-zone-simulator — the main module which represents the zone,
  • docker-compose.yml — Compose configuration with an exemplary 3-node setup,
  • docker-compose.util.yml — Compose configuration for utility images (neo4j, Postgres, etc.).

Main classes

  • ConstantLoadClientMain — a client used to generate a constant load on specified servers,
  • GraphGeneratorMain — graph generator,
  • KubernetesClient — a Kubernetes client used for management of the application,
  • Neo4jImportMain — imports the graph into Neo4j,
  • OperationSequenceGeneratorMain — generator for sequences of operations used for benchmarking,
  • PostgresImportMain — imports instrumentation data into Postgres,
  • QueryClientMain — runs queries on specified servers (used for benchmarking),
  • QuerySequenceGeneratorMain — generates membership queries (used for benchmarking).