The article explains how incident.io used Bloom filters, a probabilistic data structure, to achieve a 16× speed improvement in their API for checking user permissions across many teams, by avoiding expensive database lookups and reducing latency significantly.
#data-structures
14 items
Bloom filters are a probabilistic data structure that can dramatically improve API performance. The article explains how incident.io used bloom filters to achieve a 16× speed improvement in their API response times by efficiently checking for non-existent data.
This website teaches Rust by guiding readers through implementing several types of linked lists, from basic to advanced, helping them understand ownership, borrowing, and unsafe code.
The article introduces decision graphs as a method for modeling complex decision-making processes. It explains how decision graphs can represent various decision paths and outcomes in a structured visual format. The approach combines elements from decision trees and influence diagrams to create more comprehensive models.
The article explores the concept of message-passing as a fundamental approach to data processing and communication. It examines how taking this paradigm seriously could reshape our understanding of data structures and computational models.
The author presents a technique for implementing type-safe generic data structures in C using unions to associate type information. The approach is demonstrated through a basic linked list implementation and can be applied to various data structures like maps, arrays, and binary trees.
The article describes a fast, growable array data structure in C that provides constant time indexing and stable pointers. It has been independently discovered by multiple programmers and goes by various names including "Segmented List" in Zig and "levelwise-allocated pile" in academic literature.
The article explores a conceptual model of arrays as mathematical functions, explaining how one-dimensional arrays map indices to values. It extends this to multidimensional arrays via currying and contrasts arrays with tables, which handle heterogeneous data through struct-of-arrays representations.
Redis is introducing a new data structure called Streams to address messaging and time series gaps. Streams support range queries, blocking operations, and capped collections with low memory usage. The feature will be available in Redis 4.0 before year-end.
Redis Streams, introduced in Redis 5, are a general-purpose data structure beyond just messaging use cases. They function like time-ordered append-only logs with efficient range queries and compact memory usage. Streams can store structured data entries with unique IDs and serve various applications from time series to object modeling.
The author defends linked lists as valuable educational tools that teach fundamental computing concepts like time complexity. They highlight linked lists' versatility, noting their use in systems like Redis and Linux kernels, and their ability to be augmented into structures like skip lists.
The author details scaling HNSWs for Redis Vector Sets, including 8-bit quantization for memory efficiency, threaded operations for performance, bidirectional linking for proper deletion, and exposing HNSWs as composable data structures. The implementation achieves 50k ops/sec with 3GB RAM for 3 million Word2Vec entries.
The article discusses the concept of pairwise order in sequences of elements, exploring how the relative ordering between adjacent elements can be analyzed and measured. It examines mathematical properties and potential applications of this sequence characteristic.
跳表有什么用处?
1.5跳表是一种概率性数据结构,通过多层索引实现O(log n)时间复杂度的查找、插入和删除操作,在并发编程和内存数据库等场景中比平衡二叉搜索树更具优势。