Proto commits in 1xyz/coolbeans

These 18 commits are when the Protocol Buffers files have changed:

Commit:711b451
Author:1xyz
Committer:1xyz

Summary: Added List-tubes in cluster implementation

The documentation is generated from this commit.

Commit:766e4ca
Author:1xyz
Committer:1xyz

Summary: Added RPC server/client implementation for GetStatsTubeYaml

Commit:67a01b7
Author:1xyz
Committer:1xyz

Summary: Updated the GRPC server with GetStatsJobYaml

Commit:7e3eca3
Author:1xyz
Committer:1xyz

Summary: Updated job interfaces to support per-job statistics - reserved_count - timeout_count - release_count - bury_count - kick_count

Commit:fccb2c1
Author:1xyz
Committer:1xyz

Summary: Implementation of the stats command

Commit:4078b50
Author:1xyz
Committer:1xyz

Summary: Wiring up peak

Commit:5e3c898
Author:1xyz
Committer:1xyz

Summary: Wiring up touch and releas

Commit:4345595
Author:1xyz
Committer:1xyz

Summary: Boiler plate code to expose kick, kick-job & bury

Commit:174d28b
Author:1xyz
Committer:1xyz

Snapshot configuration is exposed, and snaphot can be restored Fixes issue #8 Problem: When a node restarts from a snapshot, the node fails to load the snapshot with the following error Example: ERRO[0001] restoreClient clientID=client:urn:uuid:bdcbd6b2-ae93-4fe3-a190-411cb42c7a89:urn:uuid:f9e4482b-7734-4162-988b-468cbc00510c has an invalid heap index Root-cause: Snapshots with heap-index = -1 and essentially clients that are in the process of getting cleaned out, and the snapshot occurred during this step. Fix: 1) When a snapshot is taken, if a heap index for a client-resv-entry is -1, it is not included in the snapshot 2) The restore now panics if its sees a heap-index = -1 Additionally, 1) We provide the ability to configure the snapshot behavior of a node

Commit:63449c3
Author:1xyz
Committer:1xyz

Summary: Support for buried jobs * Added relevant functions to the Job interface in state.go * Updated job implementations localJob & wrapJob with buriedAt values/funcs * Added a new PriorityQueue called BuriedJobs where the priority is determined by the BuriedAt time, the simulates a FIFO queue if ordered by time.

Commit:e39321f
Author:1xyz
Committer:1xyz

Summary: Connect management between the beanstalkd proxy and the server Fixes: https://github.com/1xyz/coolbeans/issues/24 Problem: Problem: We have a three node cluster, and when have a beanstalkd server which acts a client to this service. When the leader shuts down, we need the beanstalkd server (the proxy client) to automatically switch over to using the correct leader. In this way a client that is connected to beanstalkd proxy-server does not necessarily see this disruption. High level approach: We use the health check feature of the GRPC load-balancer, only the leader reports healthy. When the leader switches the proxy client reconnects to the new leader.

Commit:0a91174
Author:1xyz
Committer:1xyz

Summary: Support for building docker images Add dockerfile and docker-build target, placeholder for compose

Commit:6ee7da3
Author:1xyz
Committer:1xyz

WIP : API updates Summary:

Commit:8144ca9
Author:1xyz
Committer:1xyz

Release & Delete API methods

Commit:ec6c96c
Author:1xyz
Committer:1xyz

Reservations controller Summary: ReservationsController provides the ability to stream reservation updates from the job state machine (jsm) back to the connected clients (aka. "proxy" clients) Changes include the implementation of the Reservations Controller, hooking it up the Grpc method to recieve updates Unit-tests

Commit:e022acc
Author:1xyz
Committer:1xyz

Add jsm grpc service with two supported methods Put & Reserve Summary: Added JSM GRPC service w/ two supporting methods 1) Put - which calls the state.Put 2) Reserve - which calls state.AppendReservation

Commit:6841c6c
Author:1xyz
Committer:1xyz

Snapshot of the jsm Summary: Snapshot of the jsm Added struct snapshot which contains protobuf struct to help serialize/de-serialize job and clientResvEntries of the JSM

Commit:a33f6dc
Author:1xyz

Initial commit