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 BBR A congestion control based on measuring the two parameters that characterize a path: bottleneck bandwidth and round-trip propagation time, or BBR. Why Use BBR? Better congestion control algorithm in TCP. No need to change the client. More effective in a high packet loss network! The classic TCP uses binary exponential backoff and … More What is TCP BBR?
Ruby is an interpreted language. It is dynamically typed and uses a new memory for a variable. A variable has a name and a value. Symbols are an optimized variable that holds single instance of memory. It is good for variables that assume the same values across the program such as hash table keys. h … More Understanding Ruby Symbols
What make Docker so popular and long-lasting? Container is essentially OS level virtualization. Each application gets illusion of its own OS, having almost absolute control over it. Another advantage is that host OS knows about the container processes and hence can share its resources among hosted containers. The concept of containers was started by FreeBSD, … More Why Docker is a Long Term Future for Platform?
Tips to Improve Dynamic Memory Performance Instead of using memset() to initialize malloc()’ed memory, use calloc(). Because when you call memset(), VM system has to map the pages in to memory in order to zero initialize them. It’s very expensive and wasteful if you don’t intend to use the pages right away. calloc() reserves the … More Linux Memory Management Tricks
Ruby is type unsafe language but it goes a step further and avoids checking dynamically too. Consider this code x = :abc if x == ‘abc’ puts “Symbol and String are two different classes” else puts x.class, ‘abc’.class end # puts can print a symbol and string alike. puts x My Complaints I’m new to … More One More Reason to Avoid Ruby Language