Why Separating Knowledge, Compute and Storage is the Next Big Leap in Data Platforms

Traditionally, these three elements of a data platform were intertwined, leading to dependencies that impeded scalability. Our experts explain why you should separate them.

Published on Sep. 13, 2024
A data engineer works at a computer terminal
Image: Shutterstock / Built In
Brand Studio Logo

The separation of storage and compute is not a new concept in data platforms. By decoupling them, businesses can consume data and scale storage independently of compute required for data processing. This way, they pay only for what they use and avoid waste, including unused data storage and processing capacity. 

With the advancements in knowledge graphs and deeper integrations with LLMs and data lakes, the efficient separation and scaling of knowledge from computation and storage in cloud computing is becoming increasingly vital. This strategy not only enhances system performance but also significantly improves scalability and flexibility across platforms. This is crucial for optimizing resource utilization, reducing costs and accelerating time-to-market for cloud-based applications.

3 Elements of a Data Platform

  • Knowledge refers to the processed data that organizations use to make decisions.
  • Compute is the processing power necessary to run applications and perform tasks.
  • Storage refers to the place where raw data is held.

More on DataWhat Are the 3 Stages of the Data Life Cycle?

 

Understanding the Separation

During Black Friday sales, an e-commerce analytics team often experiences a surge in business queries. By scaling compute resources, they can effectively manage the increased data processing load without requiring extra storage. For example, during a 200 percent increase in real-time sales forecasting queries, they can dynamically scale compute resources to handle the load while keeping storage costs fixed, as no additional storage capacity is needed.

The separation of knowledge facilitates quicker access to critical relationships between tables, enabling real-time insights essential for swift decision-making. This approach avoids a significant spike in compute requirements to establish table relationships each time a query is executed. It also minimizes analytics downtime, enhances proactive decision-making and ensures seamless operations during peak periods with greater efficiency.

Traditionally, knowledge, computation, and storage were intertwined within the same infrastructure, creating dependencies that could hinder performance and scalability. With the shift to cloud computing, however, these elements can now be separated and independently scaled, offering numerous advantages.

Knowledge Handling

Knowledge refers to the processed data that systems use to make decisions or perform actions. Managing this separately allows for more dynamic updating and refining of data without impacting the computational resources directly.

Computation

Computation involves the processing power required to run applications and perform tasks. By scaling computation resources independently, businesses can handle varying loads efficiently without overhauling the entire system architecture.This empowers businesses to optimize resource allocation, reduce costs and enhance overall system agility.

Storage

This is where raw data is held. Independent scaling of storage ensures that an increase in data does not automatically require a proportional increase in computational resources. This way, organizations can optimize costs and performance.

 

Using Partitioning for Efficiency

A delivery service might have a knowledge graph containing data on delivery attempts, successful deliveries, failed deliveries, reasons for failure and geographical pincodes. To optimize the system, the service can analyze past data to identify pincodes with a high frequency of delivery-related incidents. These pincodes and failed deliveries would form the cluster cores in the knowledge graph.

For example, in a city like New York, clusters could be divided into boroughs where different delivery patterns emerge. The knowledge graph might reveal that Cluster A (i.e., Manhattan) has high-frequency failed deliveries due to traffic congestion, while Cluster B (i.e., Brooklyn) has issues related to delivery windows. By separating these, the service can dynamically allocate more resources to areas with expected delivery challenges, thereby improving efficiency and customer satisfaction.

A key strategy in optimizing the separation of knowledge, computation and storage is methodically partitioning the knowledge graph. This process involves analyzing past interactions and data access patterns to identify the most frequently accessed nodes. These nodes, or cluster cores, are then marked and sorted based on their access frequencies.

The first step in this process involves selecting a primary cluster core that has the highest access frequency, essentially grouping data points around this core. This core becomes the focal point for the first partition of the knowledge graph. Subsequently, you select a secondary cluster core, around which you create a second partition. This second core should encompass data points that, while frequently accessed, are distinct from those of the first cluster.

By partitioning the knowledge graph in such a manner, you can more effectively distribute the load across computational resources. Each cluster can be processed independently, thereby reducing bottlenecks and improving response times. Furthermore, this partitioning allows for targeted scaling of computation and storage resources according to the specific needs of each cluster, optimizing both performance and cost.

 

Advantages of Partitioning

Consider a banking chatbot designed to handle various customer inquiries efficiently. By separating different types of data, such as transaction history, loan details and investment information, the chatbot can optimize its response times and resource usage.

For example, when a customer asks about recent transactions, the chatbot quickly accesses the relevant data cluster for transactional information, ensuring a swift response. If the customer then asks about their mortgage, the chatbot seamlessly switches to the data cluster containing loan information. This separation allows the chatbot to allocate the right amount of compute power for each type of query, improving responsiveness and customer satisfaction while keeping resource costs low.

The benefits of such separation and scaling are significant. Organizations can achieve better scalability and manage resources more effectively based on actual needs rather than projected maximums. This approach reduces costs by avoiding overprovisioning and increases agility, allowing companies to respond quickly to changes in data processing demands or business growth.

Additionally, this strategy supports better data management and security. By isolating different data clusters and their corresponding computational processes, organizations can implement targeted security measures tailored to each data clusters sensitivity and nature.

More on Knowledge GraphsWhat Is a Knowledge Graph? Examples, Uses and More.

 

Separation for Efficiency 

As cloud computing continues to evolve, the strategies for optimizing the separation and scaling of knowledge, computation, and storage will become increasingly sophisticated. The methodical partitioning of knowledge graphs represents a significant advancement in this field, enabling businesses to harness the full potential of cloud computing in a more efficient and cost-effective manner. By embracing these innovative approaches, organizations can look forward to not only keeping pace with technological advancements but also setting new benchmarks in operational efficiency.

By decoupling knowledge, computation, and storage, NLP systems can significantly enhance output accuracy. This architecture allows for independent scaling of each component based on query demands. Knowledge is retrieved from specific knowledge cores, optimizing data access. Computational resources are allocated dynamically based on past query performance, ensuring efficient utilization. This modular approach not only improves accuracy but also accelerates query processing and reduces operational costs.

Explore Job Matches.