Commit Graph

69 Commits

Author SHA1 Message Date
c2c97f67a8
fix: fixes issue with sstables not having sequence saved so older data can be retrieved after an update
Some checks failed
Go Tests / Run Tests (1.24.2) (push) Failing after 15m7s
2025-05-17 14:58:26 -06:00
acc6d7ee98
fix: update keepalive and grpc connection options to be standard across all sdks
Some checks failed
Go Tests / Run Tests (1.24.2) (push) Failing after 15m5s
2025-05-17 13:20:12 -06:00
1ff166fe77
fix: fixes an issue where the engine type would not be supported for transactions sometimes
Some checks failed
Go Tests / Run Tests (1.24.2) (push) Failing after 15m6s
2025-05-17 12:40:45 -06:00
7f825cae46
chore: update the module path in grpc proto file
Some checks failed
Go Tests / Run Tests (1.24.2) (push) Failing after 15m4s
2025-05-02 23:51:11 -06:00
86194e5daa
feat: implement filtered iterator and reduce prefix/suffix iterator into its terms
Some checks failed
Go Tests / Run Tests (1.24.2) (push) Has been cancelled
2025-05-02 23:43:46 -06:00
0bcd547c28
refactor: remove unused pkg/transport code
Some checks failed
Go Tests / Run Tests (1.24.2) (push) Has been cancelled
2025-05-02 23:38:52 -06:00
5c8ea7eec7
refactor: remove unused grpc/transport package
Some checks failed
Go Tests / Run Tests (1.24.2) (push) Has been cancelled
2025-05-02 23:35:30 -06:00
917ee5e177
refactor: swap fmt print statements for logger in grpc service
Some checks failed
Go Tests / Run Tests (1.24.2) (push) Has been cancelled
2025-05-02 23:25:42 -06:00
c70eb8d138
refactor: remove unused RetryWithSequence method
Some checks failed
Go Tests / Run Tests (1.24.2) (push) Has been cancelled
2025-05-02 23:18:04 -06:00
2335e9a10a
refactor: consolidate writeRawRecord in WAL with other functions
Some checks failed
Go Tests / Run Tests (1.24.2) (push) Has been cancelled
2025-05-02 23:11:19 -06:00
33a8a41e7d
feat: implement detailed status information in replication manager
Some checks failed
Go Tests / Run Tests (1.24.2) (push) Has been cancelled
2025-05-02 22:57:20 -06:00
fed04a8f38
feat: implement WAL retentation management functionality
Some checks failed
Go Tests / Run Tests (1.24.2) (push) Has been cancelled
2025-05-02 22:44:53 -06:00
bbb54a0d6c
refactor: remove redundant constructors
Some checks failed
Go Tests / Run Tests (1.24.2) (push) Has been cancelled
2025-05-02 22:36:50 -06:00
eefc915f3a
feat: add support for TTL tracking to transactions, unified tx buffers
Some checks failed
Go Tests / Run Tests (1.24.2) (push) Has been cancelled
2025-05-02 22:31:05 -06:00
047e41e0b1
refactor: remove debug code blocks in transactions
Some checks failed
Go Tests / Run Tests (1.24.2) (push) Has been cancelled
2025-05-02 22:16:34 -06:00
9a98349115
chore: formatting
Some checks failed
Go Tests / Run Tests (1.24.2) (push) Failing after 15m7s
2025-05-02 15:41:46 -06:00
7e744fe85b
refactor: consolidate transaction buffer implementations and reorganize transaction package 2025-05-02 15:41:05 -06:00
c1b3c17d96
fix: fix possible race conditions in transaction buffer
Some checks failed
Go Tests / Run Tests (1.24.2) (push) Failing after 15m6s
2025-05-01 22:22:05 -06:00
86340fe7bc fix: use constants for primary/replica/standalone
Some checks failed
Go Tests / Run Tests (1.24.2) (push) Failing after 15m9s
2025-04-29 15:03:03 -06:00
fd3a19dc08 feat: finished replication, testing, and go fmt 2025-04-29 15:03:03 -06:00
2b44cadd37 fix: Remove code that's never reachable
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-04-29 15:03:03 -06:00
60d401a615 docs: update documentation with information about replication 2025-04-29 15:03:03 -06:00
f9e332096c feat: Update client sdk (Go) with smart connection logic
- Client SDK will connect to a node, get node information and decide if
  it needs to connect to a primary for writes, or pick a replica to
  connect to for reads
- Updated service with a GetNodeInfo rpc call which returns information
  about the node to enable the smart selection code in the sdks
2025-04-29 15:03:03 -06:00
4429836929 feat: Add replication manager to manage primary/replica
- Primary nodes will connect to the WAL for observations, start a gRPC
  server for replication, and shutdown properly
- Replica nodes will connect to the primary, apply received entries to
  local storage, and enforce read-only mode for consistency
- Integrates the decision primary/replica/standalone into the kevo cli
2025-04-29 15:03:03 -06:00
83163db067 chore: go fmt 2025-04-29 15:03:03 -06:00
2bc2fdafda feat: Add heartbeat support in replication
- Created a heartbeat that monitors sessions and sends heartbeats
  between nodes
- Updated the primary to include a heartbeat manager
2025-04-29 15:03:03 -06:00
0d923f3f1d feat: Replica node implementation
- Created state handlers for all replication states
- Implemented transitions based on received data
- Added a WAL entry applier with validation
- Implemented connection/reconnection management
- Implemented ACK/NACK tracking and verification
2025-04-29 15:03:03 -06:00
8b4b4e8bc2 feat: Add primary node implementation
- Created the WAL observer for the primary
- Implements session management and connection tracking
- Implemented the WAL streaming service over gRPC
- Connected WAL retrention to acknowledgements
2025-04-29 15:03:03 -06:00
01cd007e51 feat: Extend WAL to support observers & replication protocol
- WAL package now can notify observers when it writes entries
- WAL can retrieve entries by sequence number
- WAL implements file retention management
- Add replication protocol defined using protobufs
- Implemented compression support for zstd and snappy
- State machine for replication added
- Batch management for streaming from the WAL
2025-04-29 15:03:03 -06:00
77179fc01f docs: lay out the plan of how replication will work 2025-04-29 15:03:03 -06:00
c1dcf2d6ce
fix: add the retry logic
Some checks failed
Go Tests / Run Tests (1.24.2) (push) Failing after 5m11s
2025-04-26 11:28:59 -06:00
8e04c2cea3
fix: fix the build error from before
Some checks failed
Go Tests / Run Tests (1.24.2) (push) Failing after 5m2s
2025-04-26 04:11:32 -06:00
ae75f2935f
fix: fix the WAL is closed errors on rotation in tight loops, increase durability
Some checks failed
Go Tests / Run Tests (1.24.2) (push) Failing after 5m5s
2025-04-26 00:15:50 -06:00
7e226825df
fix: engine refactor bugfix fest, go fmt
All checks were successful
Go Tests / Run Tests (1.24.2) (push) Successful in 9m48s
2025-04-25 23:36:08 -06:00
169c1f78a4
chore: update the layout of the interface design in readme
Some checks failed
Go Tests / Run Tests (1.24.2) (push) Failing after 5m2s
2025-04-25 13:04:08 -06:00
0637c40a40
feat: big refactor cleaning up the engine code
Some checks failed
Go Tests / Run Tests (1.24.2) (push) Failing after 5m4s
2025-04-23 22:45:16 -06:00
7dd816bdf5
feat: add a standard stats collector, needs integration 2025-04-23 20:01:18 -06:00
d5a90cf2e4
perf: added bloom filters for sstables to improve performance
Some checks failed
Go Tests / Run Tests (1.24.2) (push) Failing after 5m2s
2025-04-23 19:04:10 -06:00
2e3c70e913
test: add a concurrent read/write test on memtables
All checks were successful
Go Tests / Run Tests (1.24.2) (push) Successful in 9m48s
2025-04-23 18:20:21 -06:00
00b2566464
perf: updated skiplist find algorithm to be more efficient and cache aware
Some checks failed
Go Tests / Run Tests (1.24.2) (push) Has been cancelled
2025-04-23 18:16:44 -06:00
2b90635021
test: add tests for edge case putting a key after delete 2025-04-23 16:49:38 -06:00
6f83fa1ade
feat: add suffix scanning
All checks were successful
Go Tests / Run Tests (1.24.2) (push) Successful in 9m49s
2025-04-23 09:00:26 -06:00
3219e7527e
docs: remove extra character in contribution guidelines 2025-04-23 03:14:19 -06:00
f06357a2b0
docs: fix some grammar in contribution guidelines 2025-04-23 03:13:54 -06:00
a8c72fccfa
feat: add logger finally...
All checks were successful
Go Tests / Run Tests (1.24.2) (push) Successful in 9m48s
2025-04-23 02:28:45 -06:00
139c33533e
docs: forgot that emdash's trigger some people
Don't want folks to think of this as AI slop, so remove the emdash, use a poor man's emdash (--) instead.
2025-04-23 02:23:32 -06:00
2d07166c4f
docs: create contributing guidelines
A frank, and good enough set of guidelines for how this project will be run.
2025-04-23 02:21:01 -06:00
a0a1c0512f
chore: formatting
All checks were successful
Go Tests / Run Tests (1.24.2) (push) Successful in 9m50s
2025-04-22 14:09:54 -06:00
e7974e008d
feat: enhance wal recover statistics 2025-04-22 14:09:45 -06:00
dependabot[bot]
3b3d1c27a4 chore(deps): bump golang.org/x/net from 0.35.0 to 0.38.0
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.35.0 to 0.38.0.
- [Commits](https://github.com/golang/net/compare/v0.35.0...v0.38.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-version: 0.38.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-22 11:10:02 -06:00