Blog

Hashing

May 10, 2020
Concept
Hash Functions, Hash Table, Hashing, Python Dictionaries

A Brief History. Arousal of an idea parallelly at multiple places is indicative of its need in the ecosystem. Like many ideas in Computer Science, Hashing was also introduced independently by different scientists. According to Wikipedia, In 1953, At IBM, one computer scientist named Hans Pete Luhn wrote an internal memorandum that used Hashing (with Chaining), and about the same time, a group of scientists Gene Amdahl, Elaine M. McGraw, Nathaniel Rochester, and Arthur Samuel wrote a program using Hashing. ...

HyperLogLog!

April 19, 2020
Concept
Cardinality Estimation Algorithm, HyperLogLog, LogLog

Cardinality Quoting wikipedia, the Cardinality is nothing but “the number of elements in a given set”. Cardinality Estimation Algorithm In the last post we discussed CAP theorem and saw why it becomes hard to make systems Available and Consistent when there are potential partitions in the systems. I was thinking about my next post back then and finalized Consistent Hashing, But then I came across an idea to first write about HyperLogLog because of its Elegance and Power. ...

CAP theorem!

March 29, 2020
Concept
Brewer's Theorem, CAP Theorem, Distributed Systems

Introduction In the last post I discussed why we need distributed systems and how to setup gearman on a cluster. In this post I’ll try to convince you that CAP theorem is indeed a “theorem”. Anyways, We like distributed systems!! (because they provide us the features that we really want) but…, Are they trivial to implement?. Words of Wisdom!! My colleague once said More code => More Complexity => More Monster Bugs => More Pain Fundamental Operations Let’s start with that, Initially we used to have a beautiful piece of machine having 8 cores, 16 gigs of memory, few hundread gigs of storage. ...

Distributed systems!

March 15, 2020
Concept
Distributed Systems, Gearman, Gearman Job Server

What are Distributed Systems? In the last post I gave a brief about the concept of parallel processing through some examples. Now we know how to make our systems more parallel in nature, I think it’s time learn the concept of distributed processing, how it’s different from parallel processing and how to integrate it in our existing projects. There are lots of definitions of Distributed System but I’ll give you the one I like the most which is obviously mine (HAHA). ...

Parallel processing!

March 8, 2020
Concept
Gearman, Parallel Processing, Parallel Systems

Why Parallel Processing?. Gearman Job Server is the first parallel/distributed processing framework that I’ve learned/worked on which is indeed a very old framework out there. One of the things I like about Gearman is that it’s very generic and you can play around a lot. In the last post I wrote how to setup the gearman job server and in this post I’m going to brief you why we need parallel processing with some examples: ...