libfoedus-core
FOEDUS Core Library
Todo List
Member foedus::assorted::kCachelineSize
This should be automatically detected by cmakedefine.
Class foedus::cache::SnapshotFileSet
So far we really use std::map. But, this is not ideal in terms of performance. node-id is up to 256, snapshots are almost always very few, so we can do array-based something.
Class foedus::fs::DirectIoFile
Support Windows. MUCH later.
Class foedus::fs::Path
Support Windows. MUCH later.
Member foedus::kChildRemoteSpawned
How to launch programs remotely? How to use RVMA?
Member foedus::log::LogHeader::log_length_
all log types are 8-byte aligned, so this can store /8, allowing a 512KB log.
Class foedus::memory::AlignedMemory
Support Windows' VirtualAlloc() and VirtualFree().
Class foedus::memory::GlobalVolatilePageResolver
global page resolve can't cheaply provide resolve_page(). Do we need it?
Member foedus::memory::RoundRobinPageGrabBatch::grab ()
this so far doesn't handle out-of-memory case gracefully. what to do..
Class foedus::snapshot::LogReducer
This class got a bit bloated and hard to do a whitebox test because of dependencies to other modules. Dump-part and merge-part should be separated into its own classes in a way testcases can independently test them. Maybe reducer should be its own package?
Member foedus::storage::masstree::kMaxIntermediateMiniSeparators
Should be calculated from kPageSize. Super low-priority.
Member foedus::storage::masstree::kMaxIntermediateSeparators
Should be calculated from kPageSize. Super low-priority.
Member foedus::storage::masstree::MasstreeStorage::fatify_first_root (thread::Thread *context, uint32_t desired_count, bool disable_no_record_split=true)
testcase for this method. TDD? shut up.
Member foedus::storage::PageHeader::masstree_in_layer_level_
this should be renamed to in_layer_level. now both masstree and hash use this.
Class foedus::storage::sequential::SequentialStoragePimpl
Implement the scanning functionality as above.
Class foedus::thread::StoppableThread
initialize() should only set thread. We should separate other initialization from it because the new thread might be already accessing those properties (at least valgrind is unhappy). We should have 'launch()' method instead.