Reference Counting

/ˈrɛfərəns ˈkaʊntɪŋ/

noun … “Track object usage to reclaim memory.”

Reference Counting is a memory management technique in which each object maintains a counter representing the number of references or pointers to it. When the reference count drops to zero, the object is no longer accessible and can be safely deallocated from heap memory. This method is used to prevent memory leaks and manage lifetimes of objects in languages like Python, Swift, and Objective-C.

Key characteristics of Reference Counting include:

Wear Leveling

/wɛər ˈlɛvəlɪŋ/

noun … “Evenly distribute writes to prolong memory lifespan.”

Wear Leveling is a technique used in non-volatile memory devices, such as Flash storage and SSDs, to prevent certain memory blocks from wearing out prematurely due to repeated program/erase cycles. Flash memory cells have a limited number of write cycles, and wear leveling distributes writes across the device to ensure all blocks age uniformly, extending the effective lifespan of the storage.

Garbage Collection

/ˈɡɑːrbɪdʒ kəˈlɛkʃən/

noun … “Automatic memory reclamation.”

Garbage Collection is a runtime process in programming languages that automatically identifies and reclaims memory occupied by objects that are no longer reachable or needed by a program. This eliminates the need for manual deallocation and reduces memory leaks, particularly in managed languages like Java, C#, and Python. Garbage collection works closely with heap memory, tracking allocations and references to determine which memory blocks can be safely freed.

Cache Coherency

/kæʃ koʊˈhɪərəns/

noun … “Keeping multiple caches in sync.”

Cache Coherency is the consistency model ensuring that multiple copies of data in different caches reflect the same value at any given time. In multiprocessor or multi-core systems, each CPU may have its own cache, and maintaining coherency prevents processors from operating on stale or conflicting data. Cache coherency is critical for correctness in concurrent programs and high-performance systems.

Memory Management

/ˈmɛməri ˈmænɪdʒmənt/

noun … “Organizing, allocating, and reclaiming memory.”

Memory Management is the process by which a computing system controls the allocation, usage, and reclamation of memory. It ensures that programs receive the memory they require while optimizing performance, preventing leaks, and avoiding conflicts. Effective memory management balances speed, space, and safety, and is implemented via operating system services, language runtimes, and hardware support.

Replication

/ˌrɛplɪˈkeɪʃən/

noun … “Copy data across nodes to ensure reliability.”

Replication is the process of creating and maintaining multiple copies of data across different nodes in a Distributed System. Its purpose is to enhance Availability, fault tolerance, and performance by allowing data to remain accessible even if some nodes fail. Replication is fundamental to distributed databases, file systems, and cloud storage platforms.

Consensus

/kənˈsɛnsəs/

noun … “Agreement among distributed nodes.”

Consensus is the process by which multiple nodes in a Distributed System agree on a single value or state despite failures, message delays, or node crashes. Consensus ensures that all non-faulty nodes make consistent decisions, which is crucial for maintaining data integrity, coordinating actions, and implementing replicated state machines. It underpins critical operations in databases, blockchain networks, and fault-tolerant services.

Global Interpreter Lock

/ˈɡloʊbəl ɪnˈtɜːrprɪtər lɒk/

noun … “A single-thread lock for memory safety in Python.”

Global Interpreter Lock, commonly abbreviated as GIL, is a mutex used in the CPython implementation of Python to ensure that only one thread executes Python bytecode at a time within a single process. The primary purpose of the GIL is to protect access to Python objects, preventing data corruption caused by concurrent modifications and simplifying memory management, especially in reference counting-based garbage collection.