Expand description
Know issues
Memory leak
TuGraph use a smart pointer type(GCRefCountedPtr<T>
) and its wingman scoped reference(ScopedRef<T>
) to
manage long-living objects which have few construct/destruct and a lot of references. If the last GCRefCountedPtr
is
destructed but with some ScopedRefs alive, the underlying T* deallocation task will be sent into TimedTaskScheduler
.
If TimedTaskScheduler
runs long enough, the underlying T* will be deallocated(GC). However, TimedTaskScheduler
is a static singleton mananger, its destructor
will be called when the program is going to shutdown, make some underlying T*
deallocation task cancelled and leave some T* leak. It is the root cause to memory leak.
What’s worse, there is no api to wait until all tasks in TimedTaskScheduler
to be finished in order to make sure all T* are deallocated.
Modules
- The core data read/write types which allow you move back and forth in graph.
- Manages each
Graph
instance with access controlled managerGalaxy
. - All types describe the attributes of graph element field.
- Index specification about the index built on vertex/edge.
- TuGraph operations happen in transactions. A transaction is sequence of operations that is carried out atomically on the
Graph
. TuGraph transactions provides full ACID guarantees.
Structs
Error
contains the message from what() yield by C++ std::exception
Enums
ErrorKind
ports all exceptions from lgraph_exceptions.h