System for modifying persistent database based upon set of data elements formed after selective insertion or deletion
First Claim
1. A system for permitting a user to dynamically process a list of data elements stored in a non-volatile memory having storage portions, for use with any persistent database, comprising:
- a source list storage portion for receiving and storing a stream of data elements from the persistent database, said stream of data elements ordered according to a first sequence value, said first sequence value determining the relative position of each data element of said stream of data elements relative to every other data element of said stream of data elements;
an insert list storage portion for storing a first set of data elements corresponding to data elements sought by the user to be added to said stream of data elements, wherein each of said user-added data elements includes a second sequence value, and wherein said first set of data elements is ordered according to said second sequence values in said insert list storage portion, and wherein said second sequence values determine the relative position of each of said user-added data elements relative to every other user-added data element of said first set of data elements in said insert list storage portion;
merging means for merging said stream of data elements and said first set of data elements to generate a second set of data elements and for storing said second set of data elements in an apparent list storage area, said second set of data elements ordered in said apparent list storage area according to said first and second sequence values, wherein said first and second sequence values determine the relative position of each of said second set of data elements with every other data element of said second set of data elements;
first display means, coupled to said apparent list storage portion, for displaying said second set of data elements to the user and for permitting the user to view and update said second set of data elements without committing said updates to the persistent database or modifying said stream of data elements;
a select list storage portion for storing a third set of data elements corresponding to data elements in said second set of data elements which have been selected by the user, said third set of data elements ordered in said select list storage portion according to said first and second sequence values, wherein said first and second sequence values determine the relative position of each of said third set of data elements with respect to every other data element of said third set of data elements in said select list storage portion;
designation means for comparing said second set of data elements to said third set of data elements and for designating those data elements common to said second set of data elements and said third set of data elements;
second display means for indicating to the user said designated data elements of said second set of data elements; and
modification means for modifying the persistent database and said stream of data elements when a commit is initiated by the user, said modification causing the persistent database and said stream of data elements to contain the same data elements as those in said second set of data elements.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for dynamic processing of unbounded data streams. The system is adapted to operate on a data processing system including a display panel and a database stored on a non-volatile storage device. An input stream of data elements is received by the system from the database. The input stream of data elements is designated as a source data stream. An insert list of data elements is provided to maintain a first set of data elements arranged in sequence according to a corresponding sequence value; the first set of data elements is not contained in the source data stream. A delete list of data elements is provided to maintain a second set of data elements presently in the source data stream, and arranged in sequence according to a corresponding sequence value. A flagged list of data elements selected for further processing by a user, contains a third list of data elements arranged in sequence according to a corresponding sequence. In order to identify a data element to be returned to the display panel in response to a request for a current element in an apparent list of data elements, the system filters the source data stream through the insert list of data elements to obtain a candidate data element for the next element in the apparent list. The system then filters candidate data element through the delete list of data elements to verify that the candidate element has not been deleted. The system may optionally check the candidate data element through the flagged list of data elements to determine if the candidate element has been flagged. Finally, the system sets the candidate data element as the current data element in the apparent list and returns the current data element to the display panel.
72 Citations
8 Claims
-
1. A system for permitting a user to dynamically process a list of data elements stored in a non-volatile memory having storage portions, for use with any persistent database, comprising:
-
a source list storage portion for receiving and storing a stream of data elements from the persistent database, said stream of data elements ordered according to a first sequence value, said first sequence value determining the relative position of each data element of said stream of data elements relative to every other data element of said stream of data elements; an insert list storage portion for storing a first set of data elements corresponding to data elements sought by the user to be added to said stream of data elements, wherein each of said user-added data elements includes a second sequence value, and wherein said first set of data elements is ordered according to said second sequence values in said insert list storage portion, and wherein said second sequence values determine the relative position of each of said user-added data elements relative to every other user-added data element of said first set of data elements in said insert list storage portion; merging means for merging said stream of data elements and said first set of data elements to generate a second set of data elements and for storing said second set of data elements in an apparent list storage area, said second set of data elements ordered in said apparent list storage area according to said first and second sequence values, wherein said first and second sequence values determine the relative position of each of said second set of data elements with every other data element of said second set of data elements; first display means, coupled to said apparent list storage portion, for displaying said second set of data elements to the user and for permitting the user to view and update said second set of data elements without committing said updates to the persistent database or modifying said stream of data elements; a select list storage portion for storing a third set of data elements corresponding to data elements in said second set of data elements which have been selected by the user, said third set of data elements ordered in said select list storage portion according to said first and second sequence values, wherein said first and second sequence values determine the relative position of each of said third set of data elements with respect to every other data element of said third set of data elements in said select list storage portion; designation means for comparing said second set of data elements to said third set of data elements and for designating those data elements common to said second set of data elements and said third set of data elements; second display means for indicating to the user said designated data elements of said second set of data elements; and modification means for modifying the persistent database and said stream of data elements when a commit is initiated by the user, said modification causing the persistent database and said stream of data elements to contain the same data elements as those in said second set of data elements. - View Dependent Claims (2)
-
-
3. A system for dynamic processing of unbounded data streams, the system being adapted to operate on a data processing system including a display panel and a database and a non-volatile storage device, the system receiving the unbounded data streams from the database and providing the database with the processed unbounded data streams, the system comprising:
-
means for receiving an input stream of data elements from the database and designating said input stream as a source data stream; an insert list of data elements containing a first set of data elements not contained in said source data stream and arranged in sequence according to a corresponding sequence value associated with each of said data elements in said insert list; a delete list of data elements containing a second set of data elements presently in said source data stream and arranged in sequence according to a corresponding sequence value associated with each of said data elements in said delete list; a flagged list of data elements containing a third list of data elements selected for further processing and arranged in sequence according to a corresponding sequence value associated with each of said data elements of said flagged list; means for initializing a current source data stream pointer, a current insert list pointer, a current delete list pointer, and a current flagged list pointer to refer to a first element in said source data stream, said insert list, said delete list, and said flagged list, respectively; means for determining a data element to be returned to the display panel in response to a request for a current element in an apparent list of data elements including; means for filtering said source data stream through said insert list of data elements to obtain a candidate data element for the next element in said apparent list of data elements, means for filtering said candidate data element through said delete list of data elements to verify said candidate element has not been deleted, means for checking said candidate data element through said flagged list of data elements to determine if said candidate element has been flagged, and means for setting said candidate data element as the current data element in said apparent list and returning said current data element to the display panel. - View Dependent Claims (4)
-
-
5. A method for dynamic processing of unbounded data streams, the system being adapted to operate on a data processing system including a display panel, a database, and a non-volatile storage device, the method comprising the steps of:
-
receiving an input stream of data elements from the database and designating said input stream as a source data stream; maintaining an insert list of data elements containing a first set of data elements not contained in said source data stream and arranged in sequence according to a corresponding sequence value associated with each of said data elements in said insert list; maintaining a delete list of data elements containing a second set of data elements presently in said source data stream and arranged in sequence according to a corresponding sequence value associated with each of said data elements in said delete list; maintaining a flagged list of data elements selected for further processing and containing a third list of data elements arranged in sequence according to a corresponding sequence value associated with each of said data elements in said flagged list; initializing a current source data stream pointer, a current insert list pointer, a current delete list pointer, and a current flagged list pointer to refer to a first element in said source data stream, said insert list, said delete list, and said flagged list, respectively; determining a data element to be returned to the display panel in response to a request for a current element in an apparent list of data elements including; filtering said source data stream through said insert list of data elements to obtain a candidate data element for the next element in said apparent list, filtering said candidate data element through said delete list of data elements to verify said candidate element has not been deleted, checking said candidate data element against said flagged list of data elements to determine if said candidate element has been flagged, and setting said candidate data element as the current data element in said apparent list and returning said current data element to the display panel. - View Dependent Claims (6)
-
-
7. A computer-implemented method for permitting a user to dynamically process a list of data elements stored in a non-volatile memory having storage portions for use with any persistent database, the method comprising the steps of:
-
storing a stream of data elements received from the persistent database in a source list storage portion; assigning a first sequence value to each of said stream of data elements stored in said source list storage portion; storing a first set of data elements in an insert list storage portion according to a second sequence value, said first set of data elements corresponding to data elements sought by the user to be added to said stream of data elements; merging said stream of data elements and said first set of data elements to generate a second set of data elements representing an apparent list; storing said second set of data elements in an apparent list storage portion according to said first and second sequence values, wherein said first and second sequence values determine the relative position of each of said date elements in said second set of data elements with every other data element in said second set of data elements; storing a third set of data elements in a delete list storage portion according to a third sequence value, said third set of data elements corresponding to data elements sought to be deleted from said stream of data elements by the user, said third sequence values determining the relative position of each of said user-deleted data elements with respect to every other user-deleted data elements in said third set of data elements; filtering said second set of data elements and said third set of data elements to remove from said second set of data elements those data elements in said third set of data elements, said second set of data elements representing said apparent list; displaying said second set of data elements to the user thereby permitting the user to view and update said second set of data elements without actually modifying the persistent database and said stream of data elements; and updating the persistent database and said stream of data elements when the user initiates a commit, wherein said updated persistent database and said updated stream of data elements are equivalent to said second set of data elements at time of said initiation of said commit. - View Dependent Claims (8)
-
Specification