📃
Tech White Papers
  • 📃White Papers
  • 🪶Apache
    • Kafka (EN)
      • Kafka Connect
      • Kafka Streams
      • ksqlDB
    • Ignite (TR)
      • Clustering
        • Baseline Topology
      • Thin Clients
      • Data Modeling
        • Data Partitioning
        • Affinity Colocation
      • Memory Architecture
      • Persistence
        • External Storage
        • Swapping
        • Snapshot
        • Disk Compression
        • Persistence Tuning
        • Change Data Capture
      • Cluster Snapshots
      • Data Rebalancing
      • Data Streaming
      • Using Key-Value API
        • Basic Cache Operations
        • Working With Binary Objects
      • Performing Transactions
      • Working with SQL
        • Understanding Schemas
        • Defining Indexes
        • Distributed Joins
      • Distributed Computing
      • Machine Learning
      • Using Continuous Queries
      • Using Ignite Messaging
      • .NET Specific
        • LINQ
        • Serialization
      • Working With Events
        • Events
      • Performance and Troubleshooting
        • Generic Performance Tips
        • Memory and JVM Tuning
        • Persistence Tuning
        • SQL Performance Tuning
        • Thread Pools Tuning
    • Pulsar (TR)
  • 📜Data
    • ClickHouse (TR)
    • QuestDB (TR)
  • Comparison
    • Pulsar vs Kafka
    • ClickHouse vs QuestDB
  • Architectural
    • Microservices
      • Design Principles
      • Design Patterns
Powered by GitBook
On this page

Was this helpful?

  1. Apache
  2. Ignite (TR)
  3. Data Modeling

Affinity Colocation

03/02/2023

PreviousData PartitioningNextMemory Architecture

Last updated 2 years ago

Was this helpful?

Çoğu durumda, eğer verilere sıklıkla birlikte erişiliyorsa, farklı veri girişlerini bir arada konumlandırmak faydalıdır. Bu şekilde çok veri girişli sorgular tek bir node’da yürütülür. Bu kavrama affinity colocation denir.

Veri girişleri, affinity function tarafından partitionlara atanır. Aynı affinity keyine sahip nesneler aynı partitiona gider. Bu, veri modelinin ilgili veri girişlerin birlikte saklanacağı şeklinde tasarlanmasına olanak tanır. Buradaki “ilgili” kelimesi, parent/child ilişkisi içinde olan nesneleri veya genellikle birlikte sorgulanan nesneleri ifade eder.

Örneğin Person ve Company nesnelerinin olduğunu ve her kişinin, kişinin çalıştığı şirketi gösteren şirket kimliği alanına sahip olduğunu varsayalım. Person.companyId ve Company.Id’yi affnity key olarak belirlenirse, aynı şirket için çalışan tüm kişilerin, şirket nesnesininde depolandığı aynı node’da depolanması sağlanır. Belirli bir şirket için çalışan kişileri talep eden sorgu tek bir node’da işlenir.

🪶
Daha fazla bilgi için…