Skip to content

Commit 7084810

Browse files
committed
Reset for new HonuDB
1 parent 1c44525 commit 7084810

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+550
-11686
lines changed

.github/workflows/release.yaml

+8-6
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: CD
1+
name: Releases
22
on:
33
push:
44
tags:
@@ -15,19 +15,21 @@ jobs:
1515
fetch-depth: 0
1616

1717
- name: Set up Go
18-
uses: actions/setup-go@v4
18+
uses: actions/setup-go@v5
1919
with:
20-
go-version: 1.21.x
20+
go-version: 1.23.x
2121

2222
- name: Import GPG key
2323
id: import_gpg
24-
uses: crazy-max/ghaction-import-gpg@v3
24+
uses: crazy-max/ghaction-import-gpg@v6
2525
with:
26-
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
26+
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
2727
passphrase: ${{ secrets.PASSPHRASE }}
28+
git_user_signingkey: true
29+
git_commit_gpgsign: true
2830

2931
- name: Create Release
30-
uses: goreleaser/goreleaser-action@v5
32+
uses: goreleaser/goreleaser-action@v6
3133
with:
3234
distribution: goreleaser
3335
version: latest

.github/workflows/build.yaml .github/workflows/tests.yaml

+18-19
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
name: CI
1+
name: Tests
22
on:
33
push:
44
branches:
55
- main
6-
- develop
76
- "v*"
87
tags:
98
- "v*"
@@ -15,12 +14,12 @@ jobs:
1514
runs-on: ubuntu-latest
1615
steps:
1716
- name: Set up Go
18-
uses: actions/setup-go@v4
17+
uses: actions/setup-go@v5
1918
with:
20-
go-version: 1.21.x
19+
go-version: 1.23.x
2120

2221
- name: Install Staticcheck
23-
run: go install honnef.co/go/tools/cmd/staticcheck@2023.1.3
22+
run: go install honnef.co/go/tools/cmd/staticcheck@2024.1.1
2423

2524
- name: Checkout Code
2625
uses: actions/checkout@v4
@@ -34,7 +33,7 @@ jobs:
3433
strategy:
3534
fail-fast: true
3635
matrix:
37-
go-version: [1.20.x, 1.21.x]
36+
go-version: [1.22.x, 1.23.x]
3837
env:
3938
GOPATH: ${{ github.workspace }}/go
4039
GOBIN: ${{ github.workspace }}/go/bin
@@ -44,12 +43,12 @@ jobs:
4443
working-directory: ${{ env.GOPATH }}/src/github.com/rotationalio/honu
4544
steps:
4645
- name: Set up Go
47-
uses: actions/setup-go@v4
46+
uses: actions/setup-go@v5
4847
with:
4948
go-version: ${{ matrix.go-version }}
5049

5150
- name: Cache Speedup
52-
uses: actions/cache@v3
51+
uses: actions/cache@v4
5352
with:
5453
path: ${{ env.GOPATH }}/pkg/mod
5554
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
@@ -62,16 +61,16 @@ jobs:
6261
path: ${{ env.GOPATH }}/src/github.com/rotationalio/honu
6362

6463
- name: Install Protoc
65-
uses: arduino/setup-protoc@v2
64+
uses: arduino/setup-protoc@v3
6665
with:
67-
version: "23.x"
66+
version: "28.x"
6867
repo-token: ${{ secrets.GITHUB_TOKEN }}
6968

7069
- name: Install Dependencies
7170
run: |
7271
go version
73-
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.31
74-
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.3
72+
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.35
73+
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.5
7574
7675
- name: Code Generation
7776
run: go generate ./...
@@ -90,12 +89,12 @@ jobs:
9089
working-directory: ${{ env.GOPATH }}/src/github.com/rotationalio/honu
9190
steps:
9291
- name: Set up Go
93-
uses: actions/setup-go@v4
92+
uses: actions/setup-go@v5
9493
with:
95-
go-version: 1.21.x
94+
go-version: 1.23.x
9695

9796
- name: Cache Speedup
98-
uses: actions/cache@v3
97+
uses: actions/cache@v4
9998
with:
10099
path: ${{ env.GOPATH }}/pkg/mod
101100
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
@@ -108,16 +107,16 @@ jobs:
108107
path: ${{ env.GOPATH }}/src/github.com/rotationalio/honu
109108

110109
- name: Install Protoc
111-
uses: arduino/setup-protoc@v2
110+
uses: arduino/setup-protoc@v3
112111
with:
113-
version: "23.x"
112+
version: "28.x"
114113
repo-token: ${{ secrets.GITHUB_TOKEN }}
115114

116115
- name: Install Dependencies
117116
run: |
118117
go version
119-
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.31
120-
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.3
118+
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.35
119+
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.5
121120
122121
- name: Code Generation
123122
run: go generate ./...

.goreleaser.yml

+9-9
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ project_name: honu
22
dist: dist
33
builds:
44
# Define multiple builds as a yaml list, specify by a unique id
5-
- id: "cmd-honu-build"
5+
- id: "cmd-honudb-build"
66
dir: .
7-
main: ./cmd/honu
8-
binary: honu
7+
main: ./cmd/honudb
8+
binary: honudb
99
flags:
1010
- -v
1111
ldflags: -s -w -X github.com/rotationalio/honu.GitVersion={{.Commit}} -X github.com/rotationalio/honu.BuildDate={{.Date}}
@@ -31,7 +31,7 @@ archives:
3131
- id: "honu-archive-tgz"
3232
format: tar.gz
3333
builds:
34-
- "cmd-honu-build"
34+
- "cmd-honudb-build"
3535
name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
3636
wrap_in_directory: true
3737
files:
@@ -62,11 +62,11 @@ release:
6262
footer: |
6363
### About
6464
65-
Honu is distributed key-value store that is intended for large systems of replicas
66-
that are distributed across the globe. Honu provides an eventually consistent
67-
replication semantic that uses reinforcement learning to optimize replication to
68-
lower both costs and the instances of stale reads and write forks. If you're
69-
interested in this project, please see https://geodistributed.systems for more.
65+
The Honu Database is an eventually consistent replicated document database that
66+
is intended for large systems that are distributed globally. Honu uses reinforcement
67+
learning with anti-entropy replication to enhance consistency and decrease costs.
68+
Honu provides data governance with access controls, privacy, and provenance tracking
69+
so that the use of your database complies with laws like GDPR.
7070
7171
# If set to true, will not auto-publish the release.
7272
disable: false

LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
BSD 3-Clause License
22

3-
Copyright (c) 2021, Rotational Labs, Inc.
3+
Copyright (c) 2024, Rotational Labs, Inc.
44
All rights reserved.
55

66
Redistribution and use in source and binary forms, with or without

README.md

+4-19
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,10 @@
11
# Honu
22

3-
[![Go Reference](https://pkg.go.dev/badge/github.com/rotationalio/honu.svg)](https://pkg.go.dev/github.com/rotationalio/honu)
43
[![Go Report Card](https://goreportcard.com/badge/github.com/rotationalio/honu)](https://goreportcard.com/report/github.com/rotationalio/honu)
5-
![GitHub Actions CI](https://github.com/rotationalio/honu/actions/workflows/build.yaml/badge.svg?branch=main)
4+
![GitHub Actions CI](https://github.com/rotationalio/honu/actions/workflows/tests.yaml/badge.svg?branch=main)
65

7-
**HonuDB is a replicated key-value store intended for large systems that are distributed globally. Although HonuDB uses an eventually consistent gossip protocol for replication, it uses reinforcement learning with multi-armed bandits to optimize replication. Adaptive consistency reduces costs (ingress and egress data transfer) as well as improves consistency by lowering the likelihood of stale reads or forked writes.**
6+
The Honu Database is an eventually consistent replicated document database that intended for large systems that are distributed globally. Honu uses smart anti-entropy replication to quickly replicate collections across multiple nodes.
87

9-
## Benchmarks
8+
Smart anti-entropy uses reinforcement learning with multi-armed bandits to optimize replication. Adaptive consistency reduces costs (ingress and egress data transfer) as well as improves consistency by lowering the likelihood of stale reads or forked writes.
109

11-
Baseline comparison of honu database vs. pure leveldb performance to determine the overhead that honu adds:
12-
13-
```
14-
BenchmarkHonuGet-8 466665 2405 ns/op
15-
BenchmarkLevelDBGet-8 1243785 955.3 ns/op
16-
BenchmarkHonuPut-8 21448 55125 ns/op
17-
BenchmarkLevelDBPut-8 24276 52422 ns/op
18-
BenchmarkHonuDelete-8 42298 25136 ns/op
19-
BenchmarkLevelDBDelete-8 76857 16101 ns/op
20-
BenchmarkHonuIter-8 63772 18349 ns/op
21-
BenchmarkLevelDBIter-8 255319 4271 ns/op
22-
BenchmarkHonuObject-8 480555 2362 ns/op
23-
```
24-
25-
[![Baseline Benchmarks](docs/benchmark.png)](docs/benchmark.png)
10+
The goal of the database is to provide scalable data retrieval both in terms of number of nodes (e.g. scale to 100s of nodes) and amount of data (hundreds of terabytes). In addition to scale, this database provides data access controls, privacy and provenance, and other security related features. In short, HonuDB is a distributed data governance database for machine learning and artificial intelligence workloads.

api/generate.go

-3
This file was deleted.

api/generate.sh

-24
This file was deleted.

0 commit comments

Comments
 (0)