Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
2006086
WIP
ChrisRega Jul 4, 2024
b81036d
First shot at trying to implement new Transaction API, not building, …
ChrisRega Jul 5, 2024
10d1c22
Fixed some issues with type conversion and error handling. Lifetime q…
ChrisRega Jul 5, 2024
e70dc41
Clean managers and prepare for indexed managers for values.
ChrisRega Jul 5, 2024
2ab75d0
Cut down managers into separate files
ChrisRega Jul 5, 2024
66deb58
Write some todos into the code as not to lose it :D
ChrisRega Jul 6, 2024
b43e257
Add first shot at item indexing addition for vertex_property_manager.rs
ChrisRega Jul 7, 2024
9c4cfe3
Fixup key management and strings for property indexing
ChristopherRegali Jul 8, 2024
1127843
Fixup range iteration of edges
ChristopherRegali Jul 8, 2024
7df15c6
Fixup range iteration of edges with properties
ChristopherRegali Jul 8, 2024
1464427
Clippy lints
ChristopherRegali Jul 8, 2024
825ac8d
Merge pull request #1 from ChristopherRegali/fix/update-to-new-indra-API
ChrisRega Jul 8, 2024
adb53f4
Fix test callsites, not all tests green yet.
ChristopherRegali Jul 8, 2024
3deb26a
Fix missing compression feature flag
ChristopherRegali Jul 8, 2024
f0b4388
Merge pull request #2 from ChristopherRegali/fix/update-to-new-indra-API
ChrisRega Jul 8, 2024
a8e5a13
Refactor transaction out.
ChristopherRegali Jul 9, 2024
b734999
make API coherent with rocks datastore
ChristopherRegali Jul 9, 2024
7660d85
Revert "make API coherent with rocks datastore"
ChristopherRegali Jul 9, 2024
dcbc468
Change more API to edge-model
ChristopherRegali Jul 9, 2024
f491caf
Fix edge property deletion
ChristopherRegali Jul 9, 2024
07a6df8
Add syncing, remove dirty logs
ChristopherRegali Jul 9, 2024
7a7b640
Remove some bugs in reverse edge indexing
ChristopherRegali Jul 9, 2024
405ee16
Cleanup key parsing for easier understanding.
ChristopherRegali Jul 9, 2024
aad11df
Add metadata storage for indexed values.
ChristopherRegali Jul 9, 2024
81396db
Added batch processing for creating edges, vertices and edge-ranges. …
ChristopherRegali Jul 9, 2024
222412c
Bumped rust edition to 2021
ChristopherRegali Jul 9, 2024
9088a50
Merge pull request #4 from ChristopherRegali/fix/update-to-new-indra-API
ChrisRega Jul 9, 2024
125221d
Improved performance of property/property-value iteration on vertices
ChristopherRegali Jul 9, 2024
7df11be
Merge pull request #5 from ChristopherRegali/fix/update-to-new-indra-API
ChrisRega Jul 9, 2024
7022009
Cargo fmt
ChrisRega Jul 9, 2024
1e789b7
Merge pull request #3 from ChrisRega/fix/update-to-new-indra-API
ChrisRega Jul 9, 2024
7453073
Bump version to match versioning of indradb. Makes using them from a …
ChrisRega Jul 9, 2024
5e4032f
Speedup the bulk import process
ChristopherRegali Jul 15, 2024
7c217d5
Merge main in
ChristopherRegali Jul 16, 2024
98bb714
Merge pull request #6 from ChristopherRegali/fix/update-to-new-indra-API
ChrisRega Jul 16, 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
17 changes: 10 additions & 7 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
[package]
name = "indradb-sled"
version = "0.1.0"
version = "4.0.0-RC1"
authors = ["Yusuf Simonson <simonson@gmail.com>"]
description = "A sled-backed datastore for IndraDB"
homepage = "https://indradb.github.io"
repository = "https://github.com/indradb/sled"
keywords = ["graph", "database"]
categories = ["database", "database-implementations"]
license = "MPL-2.0"
edition = "2021"

[lib]
name = "indradb_sled"
Expand All @@ -19,9 +20,11 @@ test-suite = ["indradb-lib/test-suite", "tempfile"]
bench-suite = ["indradb-lib/bench-suite", "tempfile"]

[dependencies]
chrono = { version = "0.4.19", features = ["serde"] }
indradb-lib = "^2.2.0"
serde_json = "^1.0.57"
sled = { version = "0.34.6", features = ["compression", "no_metrics"] }
tempfile = { version = "^3.2.0", optional = true}
uuid = { version = "~0.8.2", features = ["v1", "serde"] }
chrono = { version = "0.4", features = ["serde"] }
indradb-lib = "4.0"
serde_json = "1.0"
sled = { version = "0.34", features = ["compression"] }
tempfile = { version = "3.10", optional = true }
uuid = { version = "1.9", features = ["v1", "serde"] }
ecow = { version = "0.2.2" }
thiserror = { version = "1.0" }
16 changes: 15 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,18 @@

This is an implementation of the IndraDB datastore for sled.

The sled datastore is not production-ready yet. sled itself is pre-1.0, and makes no guarantees about on-disk format stability. Upgrading IndraDB may require you to [manually migrate the sled datastore.](https://docs.rs/sled/0.34.6/sled/struct.Db.html#method.export) Additionally, there is a standing issue that prevents the sled datastore from having the same level of safety as the RocksDB datastore.
## General hints

The sled datastore is not production-ready yet. sled itself is pre-1.0, and makes no guarantees about on-disk format
stability.
Upgrading IndraDB may require you
to [manually migrate the sled datastore.](https://docs.rs/sled/0.34.6/sled/struct.Db.html#method.export)
Additionally, there is a standing issue that prevents the sled datastore from having the same level of safety as the
RocksDB datastore.
Performance of sled in two-hop-queries is better than rocksdb though. We measured about 40% faster query times.

## TODO / Notices:

- This version does index all properties by default (and therefore duplicates the data).
This is adding the benefit of faster queries but also increases the storage requirements.
- Batch operations are not optimized yet,
Loading