Bitcoin uses a blockchain record of transactions among the participating nodes. Since the size of the record is huge, there is a thin participating node that is interested in a subset of the records. But how to find the subset in the complete list of records. Bloom Filters help here. BF answers “does exist” query … More Why BitCoin Uses BloomFilters?
The commonplace notifications on our iPhone/Android devices follow an interesting journey. What is a Push Notification? A push notification is a message sent to a user. The message is sent even if the app is not in use or the device is offline. Who Sends the Message? The app is controlled from a provider service … More How Push Notifications Arrive on Your Phone?
The design document is a key piece of a project and used throughout the lifecycle of the product. The following is a sample template for a software design document: Introduction – A paragraph about project/product Objective – A paragraph on the problem being solved Requirements – Specifications, expectations High-Level Design – How the new product/feature … More A Software Design Document Template
MVC is an architecture to separate an application in three cohesive, loosely coupled verticals. Model: The data of your application and methods to access it. View: The final output/expected result. Controller: The interface that handles requests from the model I’m trying to map it to a Linux Filesystem (e.g. ext2). Model: The file system block … More MVC Explained
RGW Cache Coherence Why RGW have a control pool? We will try to understand its use case and purpose in RGW for cache synchronization. RGWRados::init_watch() Creates watcher objects in RGW control pool $ sudo rados ls -p .in-abc-1.rgw.control notify.1 notify.6 notify.3 notify.7 notify.2 notify.4 notify.5 notify.0 The common assumption is that these objects are watched … More Ceph RGW Internals: Cache Coherence & Bucket Life Cycles
The Brave Browser offers a sync facility that keeps bookmarks and browsing history across Brave browser installations. So your data from phone, laptop or iPad could all become one. All at the same time respecting your privacy. The current design of sync uses a device ID to identify a client. A client calls Brave server … More Design: Brave Device Sync
What is PipeLining? Pipelining is a form of asynchronous task execution. A Pipeline is a task that is composed of many subtasks. Each subtask may be dependent on its previous subtasks. t1 => t2 => t3 ^ t4 =| t2 depends on t1. t3 is dependent on t2 & t4. While we are executing subtask … More Why Redis Pipelining is a Good Idea?