FLASH-AWARE STORAGE OPTIMIZED FOR MOBILE AND EMBEDDED DBMS ON NAND FLASH MEMORY
First Claim
1. A system for managing data on a mobile device, comprising:
- a flash memory component in communication with the mobile device and operable to store data;
a cache memory component operable to store a copy of at least a portion of the data in temporary storage on the mobile device;
a database management component on the mobile device and operable to manage data in pages;
an access component operable to provide access to the data stored in the pages; and
a virtual page map component operable to maintain mappings of logical page numbers of the database management component with physical page numbers in the flash memory component, whereby updates to the data are made using the logical page number to identify the page in cache memory, and the virtual page map is operable to provide the physical page number to be used in updating the physical page stored on the flash memory component after updates to the corresponding page in cache memory are complete.
1 Assignment
0 Petitions
Accused Products
Abstract
Reliable storage for database management systems (DBMS) running on memory devices such as NAND type flash memory utilizes minimum I/O overhead and provides maximum data durability. A virtual page map is utilized between the flash memory and a page access component to record changes to the DBMS pages and prevent overwriting or data loss. There is no need for journaling and logging, and performance is increased by reducing the write and erase counts on the flash memory. The logical page numbers of the DBMS are mapped to physical page numbers in the page map, such that the virtual page map allocates an available page from the physical pages when changes to a page occur, and the updated information is stored in the allocated page. The allocated page number is mapped to the logical page number of the original page, thus maintaining a modified page representation while preventing physical in-place updates.
54 Citations
20 Claims
-
1. A system for managing data on a mobile device, comprising:
-
a flash memory component in communication with the mobile device and operable to store data; a cache memory component operable to store a copy of at least a portion of the data in temporary storage on the mobile device; a database management component on the mobile device and operable to manage data in pages; an access component operable to provide access to the data stored in the pages; and a virtual page map component operable to maintain mappings of logical page numbers of the database management component with physical page numbers in the flash memory component, whereby updates to the data are made using the logical page number to identify the page in cache memory, and the virtual page map is operable to provide the physical page number to be used in updating the physical page stored on the flash memory component after updates to the corresponding page in cache memory are complete. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method of managing data on a mobile device, comprising:
-
storing data in physical pages in a flash memory component on the mobile device; storing a copy of at least a portion of the data in logical pages in a cache memory component on the mobile device; providing access to the data stored in the cache memory component and the flash memory component using an access component; and maintaining mappings of logical page numbers for the logical pages in the cache memory component with physical page numbers for physical pages in the flash memory component in a virtual page map component, whereby updates to the data are made using the logical page number to identify the logical page in cache memory, and the virtual page map is operable to provide the physical page number to be used in updating the physical page stored on the flash memory component after updates to the corresponding page in cache memory are complete. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. A computer program product embedded in a computer readable medium for managing data on a mobile device, comprising:
-
program code for storing data in physical pages in a flash memory component on the mobile device; program code for storing a copy of at least a portion of the data in logical pages in a cache memory component on the mobile device; program code for providing access to the data stored in the cache memory component and the flash memory component using an access component; and program code for maintaining mappings of logical page numbers for the logical pages in the cache memory component with physical page numbers for physical pages in the flash memory component in a virtual page map component, whereby updates to the data are made using the logical page number to identify the logical page in cache memory, and the virtual page map is operable to provide the physical page number to be used in updating the physical page stored on the flash memory component after updates to the corresponding page in cache memory are complete.
-
Specification