Metadata journal for information technology systems
AssigneeMicrosoft Corporation
InventorDonald Munro Farmer
Life of this patent
Estimating the term…
Abstract
The metadata journal service records changes to an information system through client devices that send changes made to objects for recording in a server. A client calls the server when a metadata event is raised. A metadata event may be raised when an object is modified, created, or deleted. The client sends the object identifier of object involved in the metadata event to the server, along with schema objects and operations associated with the object. The server generates a unique key for the metadata event, and stores the objects along with their associated schema objects and operations in the metadata journal. The journal may be searched and queried to provide metadata analysis, such as lineage or impact analysis for an object in the system.
Claims28
A system that facilitates metadata journaling comprising:
- a processor configured to:
- raising a metadata event by a client, in which an object has been created, modified, or deleted;
- sending by the client a message to a server indicating that the metadata event was raised, the message including a client identifier;
- receiving by the client from the server a determination that metadata can be accepted from the client based on the client identifier;
- receiving by the client a determination of metadata the client may record and instructions for the metadata to record from the server by using the client, the instructions specifying at least one of a plurality of types of metadata, wherein the metadata that the client may record is stored in a storage device with the client identifier and instructions associated with the client identifier, the instructions associated with the client identifier comprising object identifiers of objects for the client to record metadata from, a level of detail of the metadata to be recorded for each object, and a type of annotations to be recorded from each object;
- collecting by the client metadata responsive to the instructions and sending the collected metadata to the server;
- receiving by the client from the server a key generated for the metadata event, and the client sending the collected metadata and key to the server for storage, wherein the collected metadata is stored in a plurality of tables, each table corresponding to one of the specified types of metadata and the key comprises a unique name or number that identifies entries in one or more of the plurality of tables, wherein the entries are uniquely associated with the metadata event.
A method for metadata journaling comprising:
- raising a metadata event by a client, in which an object has been created, modified, or deleted;
- sending by the client a message to a server indicating that the metadata event was raised, the message including a client identifier;
- receiving by the client from the server a determination that metadata can be accepted from the client based on the client identifier;
- receiving by the client a determination of metadata that the client may record and instructions for the metadata to record from the server by using the client, the instructions specifying at least one of a plurality of types of metadata, wherein the metadata that the client may record is stored in a storage device with the client identifier and instructions associated with the client identifier, the instructions associated with the client identifier comprising object identifiers of objects for the client to record metadata from, a level of detail of the metadata to be recorded for each object, and a type of annotations to be recorded from each object;
- collecting by the client metadata responsive to the instructions and sending the collected metadata to the server;
- receiving by the client from the server a key generated for the metadata event, and the client sending the collected metadata and key to the server for storage, wherein the collected metadata is stored in a plurality of tables, each table corresponding to one of the specified types of metadata and the key comprises a unique name or number that identifies entries in one or more of the plurality of tables, wherein the entries are uniquely associated with the metadata event.
A method for metadata journaling comprising:
- receiving on a computer an indication that a metadata event, in which an object has been created, modified, or deleted was raised by a client, the indication including a client identifier;
- determining if metadata can be accepted from the client based on the client identifier;
- determining metadata that the client may record and sending instructions for the metadata to record to the client, the instructions specifying at least one of a plurality of types of metadata;
- receiving metadata collected by the client responsive to the instructions;
- generating a key for the metadata event;
- and
- storing the collected metadata and key, wherein the collected metadata is stored in a plurality of tables, each table corresponding to one of the specified types of metadata and the key comprises a unique name or number that identifies entries in one or more of the plurality of tables, wherein the entries are uniquely associated with the metadata event;
- wherein storing the collected metadata and generated key comprises computer-executable instructions for:
- receiving the collected metadata from the client, including an object identifier for each object involved in the metadata event corresponding to requested objects in the instructions, along with a schema object identifier for schema objects associated with the object and an operation identifier for operations performed on the object;
- making an entry for each object identifier in an objects table along with the key;
- making an entry for each schema object identifier in a schema objects table along with the key;
- and
- making an entry for each operation identifier in an operations table along with the key.
A computer-readable storage medium having stored thereon computer-executable instructions for performing a method for metadata journaling comprising:
- raising a metadata event by a client, in which an object has been created, modified, or deleted;
- sending by the client a message to a server indicating that the metadata event was raised, the message including a client identifier;
- receiving by the client from the server a determination that metadata can be accepted from the client based on the client identifier;
- receiving by the client a determination of metadata that the client may record and instructions for the metadata to record from the server by using the client, the instructions specifying at least one of a plurality of types of metadata, wherein the metadata that the client may record is stored in a storage device with the client identifier and instructions associated with the client identifier, the instructions associated with the client identifier comprising object identifiers of objects for the client to record metadata from, a level of detail of the metadata to be recorded for each object, and a type of annotations to be recorded from each object;
- collecting by the client metadata responsive to the instructions and sending the collected metadata to the server;
- receiving by the client from the server a key generated for the metadata event, and the client sending the collected metadata and key to the server for storage, wherein the collected metadata is stored in a plurality of tables, each table corresponding to one of the specified types of metadata and the key comprises a unique name or number that identifies entries in one or more of the plurality of tables, wherein the entries are uniquely associated with the metadata event.
A computer-readable storage medium having stored thereon computer-executable instructions for performing a method for metadata journaling comprising:
- receiving an indication that a metadata event, in which an object has been created, modified, or deleted was raised by a client, the indication including a client identifier;
- determining if metadata can be accepted from the client based on the client identifier;
- determining metadata that the client may record and sending instructions for the metadata to record to the client, the instructions specifying at least one of a plurality of types of metadata;
- receiving metadata collected by the client responsive to the instructions;
- generating a key for the metadata event;
- and
- storing the collected metadata and key, wherein the collected metadata is stored in a plurality of tables, each table corresponding to one of the specified types of metadata and the key comprises a unique name or number that identifies entries in one or more of the plurality of tables, wherein the entries are uniquely associated with the metadata event,
- wherein storing the collected metadata and generated key comprises computer-executable instructions for:
- receiving the collected metadata from the client, including an object identifier for each object involved in the metadata event corresponding to requested objects in the instructions, along with a schema object identifier for schema objects associated with the object and an operation identifier for operations performed on the object;
- making an entry for each object identifier in an objects table along with the key;
- making an entry for each schema object identifier in a schema objects table along with the key;
- and
- making an entry for each operation identifier in an operations table along with the key.
A system that facilitates metadata journaling, comprising:
- a memory storing instructions;
- and
- a processor that executes said instructions to implement steps of:
- receiving an indication that a metadata event, in which an object has been created, modified, or deleted was raised by a client, the indication including a client identifier;
- determining if metadata can be accepted from the client based on the client identifier;
- determining metadata that the client may record and sending instructions for the metadata to record to the client, the instructions specifying at least one of a plurality of types of metadata;
- receiving metadata collected by the client responsive to the instructions;
- generating a key for the metadata event;
- and
- storing the collected metadata and key, wherein the collected metadata is stored in a plurality of tables, each table corresponding to one of the specified types of metadata and the key comprises a unique name or number that identifies entries in one or more of the plurality of tables, wherein the entries are uniquely associated with the metadata event;
- wherein storing the collected metadata and generated key comprises computer-executable instructions for:
- receiving the collected metadata from the client, including an object identifier for each object involved in the metadata event corresponding to requested objects in the instructions, along with a schema object identifier for schema objects associated with the object and an operation identifier for operations performed on the object;
- making an entry for each object identifier in an objects table along with the key;
- making an entry for each schema object identifier in a schema objects table along with the key;
- and
- making an entry for each operation identifier in an operations table along with the key.
Dependencies are inferred from the claim text.