moor
moor copied to clipboard
A rewrite of the classic LambdaMOO server; but in Rust and on a modern tech stack
code smell\. https://github.com/rdaum/moor/blob/47435a1442a1f5532c23944029e90982baa99bff/crates/db/tests/worldstate_restore.rs#L87 ```rust tx.commit().unwrap(); db.shutdown(); // TODO: Sleep in "worldstate_restore" test should not be necessary. // code smell. std::thread::sleep(Duration::from_millis(100)); a ```
Loom tests? Stateright tests? Test sequences & their behaviour Consistency across multiple relations https://github.com/rdaum/moor/blob/47435a1442a1f5532c23944029e90982baa99bff/crates/db/src/rdb/tx/transaction.rs#L681 ```rust assert_same(&tuples, &items); } // TODO: More tests for transaction.rs and transactions generally // Loom tests?...
\-\> datalog\-style variable unification can be used for some of the inheritance graph / verb & property resolution activity done manually now https://github.com/rdaum/moor/blob/47435a1442a1f5532c23944029e90982baa99bff/crates/db/src/rdb/relbox.rs#L15 ```rust // this program. If not, see...
If we end up with values bigger than 1MB, they should probably be handled by "external" pages, that is, pages that are not part of the buffer pool, but are...
https://github.com/rdaum/moor/blob/47435a1442a1f5532c23944029e90982baa99bff/crates/db/src/rdb/paging/wal.rs#L155 ```rust relation_id: u8, }); // TODO: use builder pattern for WAL entry construction #[allow(clippy::too_many_arguments)] pub fn make_wal_entry( typ: WalEntryType, ```
but once the DB is established, it's fine\. So maybe this is a problem with insert tuple allocation? https://github.com/rdaum/moor/blob/47435a1442a1f5532c23944029e90982baa99bff/crates/db/src/rdb/paging/tuple_box.rs#L435 ```rust } } // TODO: initial textdump load seems to have...
buffer pool has its own locks per size class, so we might not need this inside another lock \*but\* the other two items here are not thread\-safe, and we need...
there is still some really gross stuff in here about the management of free space in pages in the allocator list\. It's probably causing excessive fragmentation because we're considering only...
loom test, stateright, or jepsen, etc\. https://github.com/rdaum/moor/blob/47435a1442a1f5532c23944029e90982baa99bff/crates/db/src/rdb/paging/tuple_box.rs#L22 ```rust // this program. If not, see . // // TODO: add fixed-size slotted page impl for Sized items, // should be way...
based on LRU or random/second chance eviction \(ala leanstore\)\. will require separate PageIds from Bids, and will involve rewriting TuplePtr on the fly to point to a new page when...