Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replication: Eventual and Strong Consistency for SwarmNL #39

Merged
merged 75 commits into from
Dec 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
98008a8
fix: removed overflow bug from DataQueue::push()
thewoodfish Nov 21, 2024
3ad25f1
fix: import cleanup
thewoodfish Nov 21, 2024
f7df0f6
chore: impl of data synchronization algorithms
thewoodfish Nov 22, 2024
be9100f
feat: impl of the strong consistency data synchronization model
thewoodfish Nov 23, 2024
de2e0dc
feat: strong consistency data sync impl
thewoodfish Nov 23, 2024
59acbce
chore: impl of the eventual consistency sync model
thewoodfish Nov 24, 2024
5921cdb
feat: eventual consistency data sync model impl
thewoodfish Nov 26, 2024
65c581d
feat: impl of eventual consistency data sync model
thewoodfish Nov 27, 2024
5d5fbde
feat: fault tolerance and recorvery mechanism impl
thewoodfish Nov 27, 2024
a15d509
fix: code refactoring and optimization
thewoodfish Nov 27, 2024
a5f4408
feat: impl of sharding algorithms
thewoodfish Nov 29, 2024
2aaac36
docs: correct punctuation
sacha-l Dec 1, 2024
aa77fd1
chore: move repl_cfg to separate file
sacha-l Dec 1, 2024
9a0c079
chore: impl the Sharding::get() method
thewoodfish Dec 2, 2024
7f09712
add: buffer queue tests
sacha-l Dec 2, 2024
c9f5368
fmt
sacha-l Dec 2, 2024
fbdc5fa
add: update basic tests
sacha-l Dec 2, 2024
b692e6a
chore: complete the sharding fetch() function
thewoodfish Dec 3, 2024
f614dd7
fix: changes port number for test function
thewoodfish Dec 3, 2024
9546d39
feat: impl of the fetch fn for shard networks
thewoodfish Dec 3, 2024
6c2047a
fix: prevented node from requesting message self published from peers
thewoodfish Dec 3, 2024
a76a695
feat: separated sharding operations into its own file module
thewoodfish Dec 3, 2024
4c3da0c
fix: safe math
sacha-l Dec 3, 2024
d3fa214
chore: complete research.md
thewoodfish Dec 3, 2024
441d36c
add: sharding unit test
sacha-l Dec 3, 2024
4d4c5f6
chore: complete research.md
thewoodfish Dec 3, 2024
d282e06
fix: remove unused files
sacha-l Dec 3, 2024
fc4b105
docs: nits
sacha-l Dec 3, 2024
5899610
chore: complete research.md
thewoodfish Dec 3, 2024
74e9aa6
fix: updated the exit_network() fn for sharding
thewoodfish Dec 4, 2024
314af56
chore
thewoodfish Dec 4, 2024
0f827ed
fix: file system restructure
thewoodfish Dec 4, 2024
e71c24a
fix: ignore the client folder
thewoodfish Dec 4, 2024
9e317aa
fix: code refactoring and debugging
thewoodfish Dec 5, 2024
5d4d5f5
fix: code debugging and refactoring
thewoodfish Dec 6, 2024
b626bfb
fix: completed the strong consistency example and library debugging
thewoodfish Dec 6, 2024
52db5e0
feat: impl strong consistency example
thewoodfish Dec 6, 2024
b18b2ae
fix: example path depenedecy
thewoodfish Dec 6, 2024
3ff366b
fix: debugged example
thewoodfish Dec 7, 2024
93f3507
feat: added the repllica_peers() fn
thewoodfish Dec 7, 2024
f0d1d49
fix: renames example folders
thewoodfish Dec 7, 2024
083b618
fix: renamed folders
thewoodfish Dec 7, 2024
0bfbac6
fix: renamed folder names
thewoodfish Dec 7, 2024
0eb3a77
feat: eventual consistency example impl
thewoodfish Dec 8, 2024
0ee98d9
fix: renamed example directories
thewoodfish Dec 8, 2024
49ae6fd
feat: peer cloning example
thewoodfish Dec 8, 2024
ce6850a
fix: path adjustment in cargo.toml
thewoodfish Dec 8, 2024
397a2b9
fix: direactory cleanup
thewoodfish Dec 8, 2024
36225dc
fix: add layer communication tests back in
sacha-l Dec 8, 2024
cb181ec
fix: docs for enum fields
sacha-l Dec 8, 2024
4281216
fix: docs
sacha-l Dec 8, 2024
bca8afd
fix: docs
sacha-l Dec 8, 2024
5f0779d
add: tests for repl
sacha-l Dec 8, 2024
1305a51
add repl tests in mod
sacha-l Dec 8, 2024
d92f0f4
fix test
sacha-l Dec 8, 2024
efc6a5b
add: test guide for join and exit
sacha-l Dec 8, 2024
4ffcd98
fix: test rename
sacha-l Dec 8, 2024
4932dd8
add: tests
sacha-l Dec 8, 2024
f528e01
fix: debugging and refactoring
thewoodfish Dec 8, 2024
022c9b0
fix: debugged itest
thewoodfish Dec 9, 2024
271a875
fix: itest refactoring
thewoodfish Dec 9, 2024
4aff2f7
add: tests for strong consistency
sacha-l Dec 9, 2024
493ea08
chore: debug range based sharding example
thewoodfish Dec 10, 2024
8746ff4
fix: resolved deadlock in replication.rs
thewoodfish Dec 10, 2024
397ab4e
fix: consistency test works
sacha-l Dec 10, 2024
99ee892
fix: debugging of the strong consistency model impl
thewoodfish Dec 10, 2024
ebc398f
fix: replication debugging
thewoodfish Dec 10, 2024
ea72e36
add: more testing
sacha-l Dec 10, 2024
e848242
fix: strong consistency debugging
thewoodfish Dec 10, 2024
85ae132
finish consistency tests
sacha-l Dec 10, 2024
ca7fbfe
fix: improve test setup node fn
sacha-l Dec 10, 2024
444780d
fix: sharding example
thewoodfish Dec 10, 2024
e234218
more tests
sacha-l Dec 10, 2024
5f65d10
fmt
sacha-l Dec 10, 2024
0951bc5
add: finish tests for eventual consistency
sacha-l Dec 10, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ Cargo.lock
*.pdb

# Ignore the client dir. It's for local experimental testing
client/
# client
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ For communication, SwarmNL leverages the powerful capabilities of libp2p. These
// Prepare a RPC fetch request
let fetch_key = vec!["SomeFetchKey".as_bytes().to_vec()];

let fetch_request = AppData::FetchData {
let fetch_request = AppData::SendRpc {
keys: fetch_key.clone(),
peer: node4_peer_id,
};
Expand All @@ -222,7 +222,7 @@ For communication, SwarmNL leverages the powerful capabilities of libp2p. These
// Poll for the result
if let Ok(result) = node.recv_from_network(stream_id).await {
// Here, the request data was simply echoed by the remote peer
assert_eq!(AppResponse::FetchData(fetch_key), result);
assert_eq!(AppResponse::SendRpc(fetch_key), result);
}

// c. Gossiping e.g
Expand Down
4 changes: 2 additions & 2 deletions client/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
[package]
name = "model"
name = "node_cloning_model"
version = "0.2.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
rust-ini = "0.20.0"
swarm_nl = { path = "../swarm_nl", features = ["async-std-runtime"] }
swarm_nl = { path = "../swarm_nl", features = ["tokio-runtime"] }
tokio = { version = "1.37.0", features = ["full"] }
# async-std = { version = "1.12", features = ["attributes"] }
rand = "0.8.5"
Expand Down
Loading
Loading