In this blog I will try to explain quickly what is a graphdb and how to eat it. First lets answer the question what is a Graph? A graph is a collection of vertices and edges (Say it little simpler graph is a set of nodes and the relationships that connect them)
Sliding Window Maximum (LeetCode)
Given an array nums, there is a sliding window of size k which is moving from the very left of the array to the very right. You can only see the k numbers in the window. Each time the sliding window moves right by one position. Return the max sliding window.
SQL Alchemy Migrations (Alembic)
Alembic is a lightweight database migration tool for usage with the SQLAlchemy Database Toolkit for Python.
Circuit Breaker (Resilience4j)
Original idea of Circuit Breaker comes from electronic engineering where it comes in a form of automatic switch that designed to protected electrical circuit from damage by excess of current in the circuit.
Usage of Resilience4j Retry and CircuitBreaker together
Very interesting and confusing thing happens when we try to use resilience4j circuit-breaker and retry core modules together. Because both of them have fallback functionality, and it is very easy to get confused how to use it. if you configure wrong the following things may happen:
Override build and setter in Lombok's builder
Sometimes we may need to override build functionality of lombok builder. It could be helpful to avoid additional call of some functionality after calling build(). Here is the example of usage:
Quick Code snippets for Gatling
Gatling is another trendy stress-test tool, which can be used for simple scenarios, as well as for complex scenarios. Quick start tutorial can be followed from here
Introduction to Athena
Amazon Athena is an interactive query service that makes it easy to analyze data in Amazon S3 using standard SQL. Athena is a serverless infrastructure that allows us to run SQL on S3 files. Athena helps to analyze unstructure, semi-structured and structured data stored in Amazon S3 (such as CSV, JSON, columnar data formats, Apache Parquet, Apache ORC). Detail references can be read from official aws web-page
Couchbase Scale-UP Mistake
I was doing regular scale-up operation by adding two instances with higher CPU than existing two nodes. After adding I was planning to step-by-step remove the old nodes with lower performance. Everything was going smooth, I have added two nodes, did setting for each bucket to have a one replica and pushed rebalance. It took a quite long, I’m not even sure, since it was DEV environment, I just went home. Next day early morning I saw it was finished and balanced. So now I have started removing the old nodes. First I have ordered to old_node_1 to REMOVE and then pushed REBALANCE. It took about 2 hours and it went down. So now I have asked to second old node to be REMOVE and pushed REBALANCE. So another long 2 hour rebalancing process has started I thought. While waiting for that I have decided to remove the old_node_1 which is already out of the cluster. Here the BIG MISTAKE happened. I have logged in to the new_node_2 and stoped the service sudo service couchbase-server stop