cudb (a.k.a. cuda++)
Simple document-based noSQL DBMS modelled after MongoDB. (Has nothing to do with CUDA, has a lot to do with the Cooper Union and DataBases.)
ECE464 Final project by Jonathan Lam, Derek Lee, Victor Zhang
Examples
TODO
Functional design
CRUD operations
TODO
Operations on collections
TODO
Documents and data types
TODO
Query semantics
TODO: policies on missing index values
Architectural design
Persistence / filesystem backing store
TODO
Serialization
TODO
Documents and values
TODO
Indices
TODO: managing indices, matching queries to indices, b-trees
Build instructions
cargo
is required to build this project.
$ cargo build # build project
$ cargo test -- --nocapture --test-threads=1 # run unit tests
$ cargo doc --no-deps # build documentation
$ cargo clean # delete build artifacts
Open documentation in browser
$ cargo doc --no-deps --open
docs/
Build documentation to $ ./build_docs.sh
Test config
$ cargo test -- --nocapture --test-threads=1
--no-capture
: Showstdout
even when the test fails.--test-threads=1
: Prevent running in parallel. This is to prevent multiple concurrent access to the database file.
To run a single test:
$ cargo test [TEST_FN_NAME] -- --nocapture
where [TEST_FN_NAME]
is one of the tests defined in the tests/
directory, e.g., test_pool_fetch
.
Build without unused warnings
$ RUSTFLAGS="$RUSTFLAGS -A unused_variables -A dead_code" cargo build
These flags can be used for the run
and test
targets as well.