Introduction to Elasticsearch

Elasticsearch is an open source, distributed, scalable, highly available, document-oriented, RESTful, full text search engine with realtime search and analytics capabilities. It is basically built on top of the Apache Lucene for the indexing purposes. In this post, I am going to give you a very quick conceptual introduction to Elasticsearch.
Continue reading

Facebooktwitterredditpinterestlinkedinmailby feather

Security threats in Uploadify

I have a Plugin installed in my WordPress which gives me a nice statistical overview of the blog. There is a section in this plugin reporting “Top Links”. Surprisingly, these are the top links:


Well, number 2 explains that many people are interested in my backend rather than actual content in the blog.

Interesting links are the ones from number 6 onwards! These links just do not exist in my blog; meaning that there are bots somewhere trying to discover these links on the web. In other words, there is a Uploadify thing somewhere which may have some vulnerabilities!! And guess which country is mainly behind these attacks?! Let’s look at the distribution of the visitors of the blog:

Visitors map


Facebooktwitterredditpinterestlinkedinmailby feather

How PGP works? A simple introduction

The Pretty Good Privacy (PGP) is an encryption strategy for (de)encrypting and signing data in general and email/messages in specific. While doing PGP, two other well-known cryptography algorithms are going to be used: Public-Key (Asymmetric), and Symmetric cryptography. So we firstly discuss these two ingredients, and then the PGP recipe.
Continue reading

Facebooktwitterredditpinterestlinkedinmailby feather

Finding efficient Shard Keys with a learning process on query logs in Database Sharding


Nowadays industry has been experiencing a dramatic data growth. Not only this data has to be processed properly, but also it must be stored somewhere with smart strategy to be able to write and read with highest possible speed. Over the past decades, vendors have been motivated to migrate their brown-field database solutions to a distributed version through Partitioning/Sharding concepts. (In)appropriate shard keys have a great impact on the future performance of the whole application. The improper choices may cause SLA violation for enterprises and end up with business failure. In the first chapter, we introduce various approaches of data partitioning along with challenges that you may face. The second chapter explores the Sharding strategy utilised by two famous vendors. And, lastly we propose an automatic approach for detection of efficient Sharding Scheme and Sharding keys with a learning process on existing query logs of a database.

Keywords: Database Sharding, Partitioning, Sharding, Shard Key, Learning


Emad Heydari Beni

Facebooktwitterredditpinterestlinkedinmailby feather