Multigraph Data Handling Using Bitmaps and Mappings
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for managing and storing multigraph data are inefficient, particularly when data size grows significantly, as they do not allow quick access to information and are not optimized for limited memory capacity, restricting operations such as pattern searching and diameter finding in multigraphs.
Innovation Solution
The method employs bitmaps with element counters and mappings to represent and handle multigraphs, facilitating indexing, connectivity, and logical operations, enabling efficient access and manipulation of data without requiring the entire multigraph to fit in memory.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If traditional data structures are used to represent multigraphs, then the multigraph can be stored in memory, but access speed deteriorates and memory capacity is insufficient for large datasets
Solution Approach 1:
The patent divides the multigraph representation into multiple data structures: bitmaps for efficient bit-level operations, adjacency lists for neighbor access, and hash tables for attribute storage. This segmentation allows each structure to optimize for specific operations while working together to handle large datasets that exceed single-memory-capacity limits.
Solution Approach 2:
The patent transitions from traditional row-based relational storage to a multi-dimensional representation using bitmaps (bit-level), adjacency lists (edge-level), and hash tables (attribute-level). This dimensional transformation enables parallel processing and efficient indexing, significantly improving access speed while managing memory through selective loading of relevant data structures.
2Reliability
If the entire multigraph is loaded into memory, then all data is available for processing, but system performance deteriorates due to memory limitations
Solution Approach 1:
The patent extracts only the necessary portions of the multigraph into memory based on query requirements. Using indexing structures like bitmaps and hash tables, the system can load only relevant vertices and edges needed for a specific operation, rather than loading the entire multigraph, thus maintaining data availability for the operation while improving system performance.
Solution Approach 2:
The patent implements dynamic data loading where the memory footprint adjusts based on operational needs. The system can dynamically load additional data structures or vertices into memory only when required by the current operation, allowing the system to adapt memory usage to actual workloads rather than maintaining a static full-load approach.
3Ease of operation
If relational model is used for multigraph storage, then information in records is easily accessed, but relationship analysis operations become inefficient
Solution Approach 1:
The patent merges multiple data structures into a unified representation system where bitmaps, adjacency lists, and hash tables work together. This combination allows the system to maintain efficient record access through indexed bitmaps while simultaneously enabling fast relationship analysis through adjacency list traversals and bitwise operations, resolving the trade-off between the two operations.
Data Source
AI summary
The present invention establishes a process for creating a set of structures that allows efficient storage and subsequent handling. The multigraph is represented using bitmaps with element counters and mappings between values and organized bitmaps to faciliate the handling of the multigraphs. The bits in the bitmaps represent two aspects of the multigraph: 1) indexing of all the objects of the multigraph as a function of their identifiers and 2) connectivity between objects of the multigraph, whether they are vertices or edges. Mappings allow, given a value, accessing the objects of the multigraph which contain such value. Multigraph operations are solved by accessing the mappings and applying logical operations on the bitmaps. This way of representing a graph allows efficiently performing graph operations such as: inserting a vertex or an edge, inserting an attribute, acquiring the incoming and outgoing edges of an attribute, etc.


