Memory Centric Database Architecture for Java Object Persistence
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional Java runtime environments lack the capability to store data objects persistently, and existing database architectures are inefficient for flash memory, requiring new approaches for object management, indexing, and transaction models to leverage the speed and persistence of non-volatile flash memory.
Innovation Solution
A new memory-centric database architecture using persistent non-volatile flash memory, optimized for the Java programming language, which includes an all-flash compiler and runtime environment that allows direct storage and management of objects in flash memory, employs bean annotations for object persistence, and utilizes indexing structures like B-trees and inverted indexes for efficient object retrieval and deletion, along with a different transaction model for atomic operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional Java runtime environments store objects in volatile memory (RAM), then objects can be automatically cleared and memory freed through garbage collection, but data cannot be stored persistently and requires different management for flash memory
Solution Approach 1:
The patent changes the fundamental parameter of memory volatility by implementing a persistent object store that maintains objects in flash memory across application shutdowns, transforming the transient nature of traditional Java objects into persistent storage while maintaining Java object model compatibility
Solution Approach 2:
The persistent object store acts as an intermediary layer between Java applications and flash memory, providing Java-style object management interfaces while handling the underlying flash memory operations, thus shielding applications from flash-specific management complexities
2Reliability
If databases serialize objects into table structures using dedicated server products, then transactional consistency and query capabilities are provided, but significant overhead on CPU and internal memory occurs
Solution Approach 1:
The patent extracts the object management functionality directly into the Java runtime environment itself, eliminating the need for external database server products and their associated serialization/deserialization overhead, while maintaining transactional capabilities through integrated persistent object store operations
Solution Approach 2:
The patent replaces the mechanical serialization/deserialization process with direct object storage and retrieval in the persistent object store, eliminating the need to convert Java objects into database table structures and back, thus significantly reducing CPU overhead and improving processing speed
3Productivity
If flash memory is used for persistent storage, then storage costs are reduced and speed increases, but affirmative action is required to delete objects and free memory
Solution Approach 1:
The persistent object store implements automatic garbage collection that monitors object references and automatically reclaims space from unreferenced objects, making the memory management process self-service and transparent to applications, thus eliminating the need for manual deletion operations
4Loss of time
If traditional indexing approaches are used for volatile memory, then object retrieval is efficient, but finding objects in persistent memory requires different approaches
Solution Approach 1:
The patent implements a universal indexing system that functions effectively for both volatile and persistent memory, using the same object reference mechanisms and search algorithms across different storage media, thus maintaining compatibility and efficiency without requiring separate indexing approaches
Data Source
AI summary
A system and method for Java object storage and retrieval in a non-volatile all flash memory database. Bean annotations define the attributes of objects and object classes that are created using a Java compiler in an all flash Java runtime environment. Object indexes are created based upon these attributes, and a Java object query language using the indexes is employed to locate objects in the all flash memory database. A new transactional model is provided for managing objects and memory in the all flash memory database, and a new garbage collector deletes objects and reclaims memory.


