Techniques for building data lineages for queries

Various embodiments are generally directed to techniques for building data lineages for queries, such as SQL queries. Some embodiments are particularly directed to a lineage tool that is able to construct data lineages in a recursive manner that uses the text of a query to identify dependent tables. In several embodiments, the data lineage tool may parse SQL queries to identify columns and dependent tables, including analyzing interdependent queries used to populate dependent tables and proceeding until the true source of data is identified. In several embodiments, the data lineage tool may utilize the relationships and dependencies to build element and table level lineages.

FIELD

The present disclosure relates generally to the field of data bases and file management. In particular, the present disclosure relates to devices, systems, and methods for building data lineages for queries.

BACKGROUND

Data lineages give visibility and can facilitate the ability to trace errors back to the root cause, such as in a data analytics process. Data lineages may be prepared for a variety of different types of data. For example, data lineages may be prepared for search query language (SQL) queries. SQL is a domain-specific language used in programming and designed for managing data held in a relational database management system (RDBMS), or for stream processing in a relational data stream management system (RDSMS). Oftentimes SQL is utilized for handling structured data (i.e., data incorporating relations among entities and variables). SQL also enables the structured data to be queried.

SUMMARY

This summary is not intended to identify only key or essential features of the described subject matter, nor is it intended to be used in isolation to determine the scope of the described subject matter. The subject matter should be understood by reference to appropriate portions of the entire specification of this patent, any or all drawings, and each claim.

In one aspect, the present disclosure relates to an apparatus comprising a processor and a memory comprising instructions that when executed by the processor cause the processor to perform one or more of determine to build a lineage for a first query of historical data in a database; determine the first query is dependent on a second query of historical data in the database; identify a built lineage for the second query; retrieve the built lineage for the second query; and generate a built lineage for the first query based on the built lineage for the second query.

In various embodiments, the memory comprises instructions that when executed by the processor cause the processor to perform one or more of determine the first query is dependent on a third query; determine to build a lineage for the third query in response to a failure to locate a built lineage for the third query; and generate the built lineage for the third query. In various embodiments, the memory comprises instructions that when executed by the processor cause the processor to perform one or more of determine the third query is dependent on the second query; and generate the built lineage for the third query based on the built lineage for the second query. In some embodiments, the memory comprises instructions that when executed by the processor cause the processor to generate the built lineage for the first query based on the built lineage for the second query and the built lineage for the third query. In many embodiments, the memory comprises instructions that when executed by the processor cause the processor to merge the built lineage for the first query into a lineage graph comprising at least a portion of the built lineage for the second query. In several embodiments, the memory comprises instructions that when executed by the processor cause the processor to determine the first query is dependent on the second query. In various embodiments, the memory comprises instructions that when executed by the processor cause the processor to add metadata to the built lineage for the first query. In various embodiments the memory comprises instructions that when executed by the processor cause the processor to merge the built lineage for the first query including the metadata added into a lineage graph. In many embodiments, the first and second queries comprise structured query language (SQL) queries.

In another aspect, the present disclosure relates to at least one non-transitory computer-readable medium comprising a set of instructions that, in response to being executed by a processor circuit, cause the processor circuit to perform one or more of determine to build a lineage for a first query of historical data in a database; determine the first query is dependent on a second query of historical data in the database; identify a built lineage for the second query; retrieve the built lineage for the second query; and generate a built lineage for the first query based on the built lineage for the second query.

Various embodiments comprise instructions that, in response to being executed by the processor circuit cause the processor circuit to perform one or more of determine the first query is dependent on a third query; determine to build a lineage for the third query in response to a failure to locate a built lineage for the third query; and generate the built lineage for the third query. Various embodiments comprise instructions that, in response to being executed by the processor circuit cause the processor circuit to perform one or more of determine the third query is dependent on the second query; and generate the built lineage for the third query based on the built lineage for the second query. Some embodiments comprise instructions that, in response to being executed by the processor circuit cause the processor circuit to generate the built lineage for the first query based on the built lineage for the second query and the built lineage for the third query. Several embodiments comprise instructions that, in response to being executed by the processor circuit cause the processor circuit to merge the built lineage for the first query into a lineage graph comprising at least a portion of the built lineage for the second query. Many embodiments comprise instructions that, in response to being executed by the processor circuit cause the processor circuit to parse the first query to determine the first query is dependent on the second query. Some embodiments comprise instructions that, in response to being executed by the processor circuit cause the processor circuit to add metadata to the built lineage for the first query. Some embodiments comprise instructions that, in response to being executed by the processor circuit cause the processor circuit to merge the built lineage for the first query including the metadata added into a lineage graph.

In yet another aspect, the present disclosure relates to a computer-implemented method comprising one or more of determining to build a lineage for a first query of historical data in a database; determining the first query is dependent on the second query of historical data in the database; identifying a built lineage for the second query; retrieving the built lineage for the second query; and generating a built lineage for the first query based on the built lineage for the second query.

In some embodiments, the computer-implemented method includes one or more of determining the first query is dependent on a third query; determining to build a lineage for the third query in response to a failure to locate a built lineage for the third query; and generating the built lineage for the third query. In some embodiments, the computer-implemented method includes one or more of determining the third query is dependent on the second query; and generating the built lineage for the third query based on the built lineage for the second query.

DETAILED DESCRIPTION

Various embodiments are generally directed to techniques for building data lineages for queries, such as SQL queries. Some embodiments are particularly directed to a lineage tool that is able to construct data lineages in a recursive manner that uses the text of a query to identify dependent tables. A data lineage typically includes the origin of data, what happens to it, and where it moves over time. In several embodiments, the data lineage tool may parse SQL queries to identify columns and dependent tables, including analyzing interdependent queries used to populate dependent tables and proceeding until the true source of data is identified. In several embodiments, the data lineage tool may utilize the relationships and dependencies to build element and table level lineages. These and other embodiments are described and claimed.

Many challenges face the generation of data lineages, such as the difficulty associated with producing lineages in a recursive manner. For example, existing systems may require an entire collection of SQL queries prior to generating data lineages. Requiring the entire collection of SQL queries prior to generating lineages can be technically infeasible in a production scenario because new queries are routinely introduced and existing queries are often modified pursuant business demands. Adding further complexity, existing systems may also need lineages for dependent tables in advance, requiring data lineages for all dependent tables to be built before a data lineage for a current query can be built. Such limitations can drastically reduce the usability and applicability of data lineage systems, contributing to inefficient systems, devices, and techniques with limited capabilities.

Various embodiments described hereby include a data lineage tool that utilizes the text of an SQL query to identify dependent tables and create a data lineage for the SQL query on-the-fly. In several embodiments, the data lineages may be created in a recursive manner without requiring the entire collection of SQL queries. In many embodiments, data lineages for dependent queries may be selectively built. In several embodiments, an SQL query may be utilized to create a list of dependent tables. In several embodiments, data lineages may be selectively built for dependent tables on the list without existing data lineages. Multiple embodiments may provide an enterprise lineage solution at a data element level, including data transformation logic for end-to-end usage in target platforms. In one or more embodiments, the data lineage tool may implement enterprise data management requirements for all high-priority usage (HPU) data sets. In various embodiments, the data lineage tool may simplify query analysis and/or debugging processes. In some embodiments, the data lineage tool may implement checks and controls for SQL production processes. In several embodiments, the data lineage tool may recognize data gaps in reporting. In several embodiments, the data lineage tool may identify and highlight data quality issues. In one or more embodiments, the data lineage tool may handle intra-query and inter-query lineages. In one or more embodiments, intra-query lineages may refer to the lineage of a single query while inter-query lineages refer to relationships between different queries.

In these and other ways, components/techniques described hereby may be utilized to identify data inaccuracies and vulnerabilities automatically and with high coverage and accuracy, resulting in several technical effects and advantages over conventional computer technology, including increased capabilities and improved performance. In various embodiments, one or more of the aspects, techniques, and/or components described hereby may be implemented in a practical application via one or more computing devices, and thereby provide additional and useful functionality to the one or more computing devices, resulting in more capable, better functioning, and improved computing devices. For example, a practical application may include a data lineage tool that recursively builds data lineages. In another example, a practical application may include determining dependent tables based on the text of an SQL query. Further, one or more of the aspects, techniques, and/or components described hereby may be utilized to improve the technical fields of data lineages, enterprise data management, and data quality.

In several embodiments, components described hereby may provide specific and particular manners to enable development, evaluation, management, and optimization of data lineages and SQL queries. In many embodiments, one or more of the components described hereby may be implemented as a set of rules that improve computer-related technology by allowing a function not previously performable by a computer that enables an improved technological result to be achieved. For example, the function allowed may include one or more of the specific and particular techniques disclosed hereby such as utilizing the text of a query to identify dependent tables.

FIG.1illustrates an exemplary operating environment100for a data lineage tool104according to one or more embodiments described hereby. Operating environment100may include a query102, data lineage tool104, historical data106, and lineage graph108. The data lineage tool104may construct lineage graph108based, at least in part, on query102and historical data106. In various embodiments, data lineage tool104may utilize the text of query102to identify dependent tables for query102. In various embodiments, data lineage tool104may retrieve lineages for one or more of the dependent tables from historical data106. Alternatively, if no lineage exists for a dependent table, the data lineage tool104may construct a lineage for the dependent table. In some embodiments,FIG.1may include one or more components that are the same or similar to one or more other components of the present disclosure. Further, one or more components ofFIG.1, or aspects thereof, may be incorporated into other embodiments of the present disclosure, or excluded from the described embodiments, without departing from the scope of this disclosure. Still further, one or more components of other embodiments of the present disclosure, or aspects thereof, may be incorporated into one or more components ofFIG.1, without departing from the scope of this disclosure. Embodiments are not limited in this context.

More generally, query102may be created and submitted as part of generating a data report. For example, a query may be constructed to produce a global sales report table. To produce the global sales report table, data may be collected from sales report tables from each country (i.e., dependent sales report tables). To generate a data lineage for the global sales report, the data lineage tool104must determine the lineage for each data item pulled from the sale report tables from each country, which may be based on further dependent tables (e.g., regional sales report tables for each country). Accordingly, to construct data lineages for queries, dependent tables and corresponding data lineages are needed down to the true source of the data. In such examples, data lineage tool104may provide an end-to-end lineage solution at a data element level, including data transformation logic (e.g., summing regional sales to get country sales and summing country sales to get global sales). In many embodiments, each of the dependent tables may correspond to another query. In several embodiments, historical data106may be comprised in one or more of a data warehouse, a database, a distributed database, a set of enterprise data, a data collection, and the like.

Data lineage tool104may be used for a variety of purposes, such as meeting audit and/or regulatory requirements. For example, data lineage tool104may be used to generate lineages for SQL queries that are used to generate critical business reports. In some embodiments, data lineage tool104may be used for user behavior analysis. For example, data lineage tool104may be used to identify nonpublic personal information (NPI) query patterns and behaviors (table and columns). In another example, data lineage tool104may be utilized to detect if user-provided queries are making use of NPI or payment card information (PCI) data. In some such examples, the data lineage tool104may remove, obscure, and/or prevent retrieval of NPI and/or PCI results. In various such examples, the data lineage tool104may modify queries to avoid obtaining NPI and/or PCI results. In yet another example, data lineage tool104may be used to meet enterprise document management (EDM) audit requirements, such as by generating lineages for SQL queries that are used to calculate risk metrics. In one or more embodiments, the data lineage tool104may prevent access to or the use of data without a corresponding data lineage.

FIG.2illustrates an exemplary process flow200for a data lineage tool204according to one or more embodiments described hereby. Process flow200may illustrate utilizing historical data206to produce lineage214aand generate, or update, lineage graph208based on query202a. In the illustrated embodiment, historical data206includes query data210with queries202b,202c,202d, and202eand lineage data212with lineages214b,214c,214d,214e. Each of the lineages214b,214c,214d,214emay correspond to one of queries202b,202c,202d,202e. In some embodiments, a lineage may not exist for one or more queries in query data210. In such cases, data lineage tool204may generate the missing lineage when the corresponding query results in a data table that query202ais dependent on. In various embodiments,FIG.2may include one or more components that are the same or similar to one or more other components of the present disclosure. For example, data lineage tool204may be the same or similar to data lineage tool104. Further, one or more components ofFIG.2, or aspects thereof, may be incorporated into other embodiments of the present disclosure, or excluded from the described embodiments, without departing from the scope of this disclosure. Still further, one or more components of other embodiments of the present disclosure, or aspects thereof, may be incorporated into one or more components ofFIG.2, without departing from the scope of this disclosure. Embodiments are not limited in this context.

Generally, data lineage tool204is directed to building data lineages for queries, such as SQL queries. More specifically, data lineage tool204may construct data lineages in a recursive manner that uses the text of a query (e.g., query202a) to identify dependent tables associated with dependent queries. In several embodiments, the data lineage tool204may parse SQL queries to identify columns and dependent tables from query data210, including analyzing interdependent queries used to populate dependent tables (e.g., one or more of queries202b,202c,202d,202e) and proceeding until the true source of data is identified. In several embodiments, the data lineage tool may utilize the relationships and dependencies to build element and table level lineages (e.g., lineages214a).

In various embodiments, the data lineage tool204may focus on SQL code. In many embodiments, SWL queries may be parsed and lineage constructed automatically based on the relationship between data sources, database tables, columns, and conditional statements such as ‘where’ and ‘group by’ clauses. In one or more embodiments, the data lineage tool204may scan queries and define upstream dependencies by capturing relationships between tables, columns, and dependencies within queries and across queries for end-to-end lineage generation.

FIG.3illustrates exemplary aspects of a data lineage tool304according to one or more embodiments described hereby. The data lineage tool304includes data adjuster306, parser308, lineage generator310, and data evaluator312. The parser308may include query interpreter316and dependency mapper314. In some embodiments,FIG.3may include one or more components that are the same or similar to one or more other components of the present disclosure. For example, data lineage tool304may be the same or similar to data lineage tool204or query302may be the same or similar to query202a. Further, one or more components ofFIG.3, or aspects thereof, may be incorporated into other embodiments of the present disclosure, or excluded from the described embodiments, without departing from the scope of this disclosure. For example, data lineage tool304may not include data adjuster306without departing from the scope of this disclosure. Still further, one or more components of other embodiments of the present disclosure, or aspects thereof, may be incorporated into one or more components ofFIG.3, without departing from the scope of this disclosure. Embodiments are not limited in this context.

In several embodiments, data adjuster306may receive query302as input. The data adjuster306may perform pre-processing on the query302. For example, the data adjuster306may reformat query302from a first programming language into SQL. After pre-processing, parser308may identify a list of tables (and associated queries) that are dependent on query302. For example, query interpreter316may interoperate with dependency mapper314to determine a list of dependent tables and associated queries based on the text of the query302. For example, with reference toFIG.2, dependency mapper314may determine query302is dependent on queries202a,202b,202dwith query202bbeing dependent on query202d. In one or more embodiments, the parser308(e.g., dependency mapper314) may fetch lineages previously built for queries associated with tables in the list of dependent tables. Additionally, or alternatively, parser308may generate lineages for queries without existing lineages. In either case, lineages are only fetched for queries corresponding to dependent tables for query302. In several embodiments, parser308may operate in conjunction with lineage generator310to parse queries and automatically generate lineages based on the relationship between data sources, database tables, columns, and conditional statements such as ‘where’ and ‘group by’ clauses. In one or more embodiments, query interpreter316may scan queries and dependency mapper314may define upstream dependencies by capturing relationships between tables, columns, and dependencies within queries and across queries for end-to-end lineage generation.

Once a lineage has been retrieved and/or built for each of the dependent tables determined by parser308, lineage generator310may utilize the other lineages to build a data lineage for query302. Additionally, data evaluator312may integrate the data lineage for query302into a lineage graph for a collection of queries (e.g., query data210). In some embodiments, data evaluator312may add additional metadata into the lineage. For example, data evaluator312may add metadata regarding transformation logic associated with query302into the lineage. In another example, data evaluator312may add metadata regarding query302into the lineage.

FIG.4illustrates an exemplary process flow400for a data lineage tool404according to one or more embodiments described hereby. Process flow400may illustrate data lineage tool404generating or updating lineage graph424based on query402utilizing historical data422. In the illustrated embodiment, data lineage tool404includes lineage generator406, data evaluator408, data adjuster410and parser414with query interpreter412and dependency mapper418. Historical data422includes query data416and dependency mapper418. In some embodiments,FIG.4may include one or more components that are the same or similar to one or more other components of the present disclosure. For example, parser414may be the same or similar to parser308. Further, one or more components ofFIG.4, or aspects thereof, may be incorporated into other embodiments of the present disclosure, or excluded from the described embodiments, without departing from the scope of this disclosure. For instance, data evaluator408may be removed from data lineage tool404without departing from the scope of this disclosure. Still further, one or more components of other embodiments of the present disclosure, or aspects thereof, may be incorporated into one or more components ofFIG.4, without departing from the scope of this disclosure. Embodiments are not limited in this context.

FIG.5illustrates one embodiment of a logic flow500, which may be representative of operations that may be executed in various embodiments in conjunction with techniques disclosed hereby. The logic flow500may be representative of some or all of the operations that may be executed by one or more components/devices/environments described herein, such as data lineage tool104, lineage generator310, or parser414. The embodiments are not limited in this context.

In the illustrated embodiment, logic flow500may begin at block502. At block502“determine to build a lineage for a first query of historical data in a database” a lineage for a first query of historical data in a database may be determined to be built. For example, data lineage tool204may determine to build a lineage214afor query202a. In some embodiments, parser414may determine to build a lineage for query302based on a failure to locate a lineage for query302in lineage data420. Proceeding to block504“determine the first query is dependent on a second query of historical data in the database” the first query may be determined to be dependent on a second query of historical data in the database. For example, data lineage tool204may determine that query202ais dependent upon query202c. In some embodiments, dependency mapper418may determine query402is dependent upon another query.

Continuing to block506“identify a built lineage for the second query” a built lineage may be identified for the second query. For example, data lineage tool204may identify lineage214cas a built lineage for query202cafter determining query202ais dependent upon query202c. At block508“retrieve the built lineage for the second query” the built lineage for the second query may be retrieved. For example, data lineage tool204may retrieve lineage214cfrom lineage data212in historical data206. Proceeding to block510“generate a built lineage for the first query based on the built lineage for the second query” a built lineage may be generated for the first query based on the built lineage for the second query. For example, data lineage tool204may generate lineage214afor query202abased on lineage214cfor query202c. In some embodiments, lineage generator406may generate a lineage for query402based on one or more lineages in lineage data420identified by dependency mapper418, such as based on the text of query402.

FIG.6illustrates an embodiment of a system600that may be suitable for implementing various embodiments described hereby. System600is a computing system with multiple processor cores such as a distributed computing system, supercomputer, high-performance computing system, computing cluster, mainframe computer, mini-computer, client-server system, personal computer (PC), workstation, server, portable computer, laptop computer, tablet computer, handheld device such as a personal digital assistant (PDA), or other device for processing, displaying, or transmitting information. Similar embodiments may comprise, e.g., entertainment devices such as a portable music player or a portable video player, a smart phone or other cellular phone, a telephone, a digital video camera, a digital still camera, an external storage device, or the like. Further embodiments implement larger scale server configurations. In many embodiments, the system600may have a single processor with one core or more than one processor. Note that the term “processor” refers to a processor with a single core or a processor package with multiple processor cores. In at least one embodiment, the computing system600, or one or more components thereof, is representative of one or more components described hereby, such as data lineage tool104,204,304,404, lineage generator310, parser308, or dependency mapper418. More generally, the computing system600is configured to implement all logic, systems, logic flows, methods, apparatuses, and functionality described hereby with reference toFIGS.1-7. The embodiments are not limited in this context.

As shown in this figure, system600comprises a motherboard or system-on-chip (SoC)602for mounting platform components. Motherboard or system-on-chip (SoC)602is a point-to-point (P2P) interconnect platform that includes a first processor604and a second processor606coupled via a point-to-point interconnect670such as an Ultra Path Interconnect (UPI). In many embodiments, the system600may be of another bus architecture, such as a multi-drop bus. Furthermore, each of processor604and processor606may be processor packages with multiple processor cores including core(s)608and core(s)610, respectively. While the system600is an example of a two-socket (2S) platform, a variety of embodiments may include more than two sockets or one socket. For example, some embodiments may include a four-socket (4S) platform or an eight-socket (8S) platform. Each socket is a mount for a processor and may have a socket identifier. Note that the term platform refers to the motherboard with certain components mounted such as the processor604and chipset632. Some platforms may include additional components and some platforms may only include sockets to mount the processors and/or the chipset. Furthermore, some platforms may not have sockets (e.g. SoC, or the like).

The processor604and processor606can be any of various commercially available processors, including without limitation an Intel® processors; AMD® processors; ARM® application, embedded, and secure processors; IBM® processors; and similar processors. Dual microprocessors, multi-core processors, and other multi-processor architectures may also be employed as the processor604and/or processor606. Additionally, the processor604need not be identical to processor606.

Processor604includes an integrated memory controller (IMC)620and point-to-point (P2P) interface624and P2P interface628. Similarly, the processor606includes an IMC622as well as P2P interface626and P2P interface630. IMC620and IMC622couple the processors processor604and processor606, respectively, to respective memories (e.g., memory616and memory618). Memory616and memory618may be portions of the main memory (e.g., a dynamic random-access memory (DRAM)) for the platform such as double data rate type 3 (DDR3) or type 4 (DDR4) synchronous DRAM (SDRAM). In the present embodiment, the memories memory616and memory618locally attach to the respective processors (i.e., processor604and processor606). In many embodiments, the main memory may couple with the processors via a bus and shared memory hub.

System600includes chipset632coupled to processor604and processor606. Furthermore, chipset632can be coupled to storage device650, for example, via an interface (I/F)638. The I/F638may be, for example, a Peripheral Component Interconnect-enhanced (PCI-e). Storage device650can store instructions executable by circuitry of system600(e.g., processor604, processor606, GPU648, ML accelerator654, vision processing unit656, or the like). For example, storage device650can store instructions for data lineage tool204, query interpreter316, data adjuster306, dependency mapper314, data evaluator408, or the like. In another example, storage device650can store data, such as historical data106, query data210, or lineage data420.

The chipset632may comprise a controller hub such as a platform controller hub (PCH). The chipset632may include a system clock to perform clocking functions and include interfaces for an I/O bus such as a universal serial bus (USB), peripheral component interconnects (PCIs), serial peripheral interconnects (SPIs), integrated interconnects (I2Cs), and the like, to facilitate connection of peripheral devices on the platform. In many embodiments, the chipset632may comprise more than one controller hub such as a chipset with a memory controller hub, a graphics controller hub, and an input/output (I/O) controller hub.

In the depicted example, chipset632couples with a trusted platform module (TPM)644and UEFI, BIOS, FLASH circuitry646via I/F642. The TPM644is a dedicated microcontroller designed to secure hardware by integrating cryptographic keys into devices. The UEFI, BIOS, FLASH circuitry646may provide pre-boot code.

Furthermore, chipset632includes the I/F638to couple chipset632with a high-performance graphics engine, such as, graphics processing circuitry or a graphics processing unit (GPU)648. In many embodiments, the system600may include a flexible display interface (FDI) (not shown) between the processor604and/or the processor606and the chipset632. The FDI interconnects a graphics processor core in one or more of processor604and/or processor606with the chipset632.

Additionally, ML accelerator654and/or vision processing unit656can be coupled to chipset632via I/F638. ML accelerator654can be circuitry arranged to execute ML related operations (e.g., training, inference, etc.) for ML models. Likewise, vision processing unit656can be circuitry arranged to execute vision processing specific or related operations. In particular, ML accelerator654and/or vision processing unit656can be arranged to execute mathematical operations and/or operands useful for machine learning, neural network processing, artificial intelligence, vision processing, etc.

Various I/O devices660and display652couple to the bus672, along with a bus bridge658which couples the bus672to a second bus674and an I/F640that connects the bus672with the chipset632. In one embodiment, the second bus674may be a low pin count (LPC) bus. Various devices may couple to the second bus674including, for example, a keyboard662, a mouse664and communication devices666.

Furthermore, an audio I/O668may couple to second bus674. Many of the I/O devices660and communication devices666may reside on the motherboard or system-on-chip (SoC)602while the keyboard662and the mouse664may be add-on peripherals. In many embodiments, some or all the I/O devices660and communication devices666are add-on peripherals and do not reside on the motherboard or system-on-chip (SoC)602.

FIG.7illustrates a block diagram of an exemplary communications architecture700suitable for implementing various embodiments as previously described, such as communications between data lineage tool104and historical data106. The communications architecture700includes various common communications elements, such as a transmitter, receiver, transceiver, radio, network interface, baseband processor, antenna, amplifiers, filters, power supplies, and so forth. The embodiments, however, are not limited to implementation by the communications architecture700.

As shown inFIG.7, the communications architecture700comprises includes one or more clients702and servers704. In some embodiments, communications architecture may include or implement one or more portions of components, applications, and/or techniques described hereby. The clients702and the servers704are operatively connected to one or more respective client data stores708and server data stores710that can be employed to store information local to the respective clients702and servers704, such as cookies and/or associated contextual information. In various embodiments, any one of servers704may implement one or more of logic flows or operations described hereby, such as in conjunction with storage of data received from any one of clients702on any of server data stores710. In one or more embodiments, one or more of client data store(s)708or server data store(s)710may include memory accessible to one or more portions of components, applications, and/or techniques described hereby.