Preetam Jinka

Recent Posts

Published by Preetam Jinka on Mar 20, 2018 9:05:45 AM

Holt-Winters Forecasting Simplified

Holt-Winters forecasting is a way to model and predict the behavior of a sequence of values over time—a time series. Holt-Winters is one of the most popular forecasting techniques for time series. It’s decades old, but it’s still ubiquitous in many applications, including monitoring, where it’s used for purposes such as anomaly detection and capacity planning.

Unfortunately, Holt-Winters forecasting is confusing, so it’s often poorly understood. We want to fix that, so we wrote this post: a visual introduction to Holt-Winters.  

Read More
Published by Preetam Jinka on Mar 12, 2018 2:27:00 PM

Numeric Optimization in Golang with Nelder-Mead and Gonum

Numeric optimization is a set of techniques for fitting a function to a dataset by iteratively refining estimates. Numeric optimization is one way to do things like curve-fitting and parametric estimations. We use it in some time series forecasting techniques we implemented recently, where the forecasting models use parameters such as seasonality and trend that we can’t determine in advance. We use numeric optimization to select the optimal parameters based on the specific dataset we’re trying to forecast.

The gonum package is a great set of numeric libraries for Go. It has a numerical optimization package. In this post I’ll show how to fit a line to 2D points with the optimize package. This is the simplest example of how to do numerical optimization with the package. It’s a good illustration of how to set up an optimization, and helps show how to get started so you can do more complicated things if you want.

Read More
Published by Preetam Jinka on Jan 17, 2018 9:16:35 AM

Slow Queries? Move Fast to Fix Them

What are the effects of slow queries?

Slow queries can have serious negative impacts on your business. The impacts will vary depending on your architecture, industry, or application but the bottom line is to not ignore them. Let's discuss whom and what they will impact.

Read More
Published by Preetam Jinka on Jun 22, 2017 4:45:00 PM

Exponential Smoothing for Time Series Forecasting

Time series anomaly detection is a complicated problem with plenty of practical methods. It’s easy to find yourself getting lost in all of the topics it encompasses. Learning them is certainly an issue, but implementing them is often more complicated. A key element of anomaly detection is forecasting - taking what you know about a time series, either based on a model or its history, and making decisions about values that arrive later.

Read More
Published by Preetam Jinka on Jan 27, 2017 3:20:50 PM

Three Things That Differentiate Amazon Aurora From MySQL

It's not always obvious what makes one database type distinct from another. What are the most significant ways that Amazon Aurora is different from MySQL? Clear separators aren't always featured or widely known, but even slight variables between two databases can prove valuable in choosing which one is right for you and your organization.

In the case of Aurora, there are at least three interesting things that make it unique and that present opportunities for particular uses. (Thanks in advance to @saileshkrish for helping us stay in-the-know on what Aurora can do.)

Read More
Published by Preetam Jinka on Nov 9, 2016 10:15:00 AM

What is ACID and How Should I Think About It As a Developer?

For the average reader, the phrase “expert in ACID” most likely evokes a picture of either an eminent chemist or a jolly Deadhead. However, in the world of computer science, an understanding of "ACID" means something a bit different (though not mutually exclusive!). When dealing with relational databases, the term refers to a set of properties that describe certain characteristics of transactions.

Read More
Published by Preetam Jinka on Sep 28, 2016 3:43:12 PM

Optimizing VividCortex’s Samples View: Part 2

A few weeks ago, I wrote a blog post explaining how sketch sampling methods can be employed to achieve fast 30-day data visibility for monitoring users. The problem we faced was that with that standard of retention, we’ve frequently seen systems that involve nearly a million query samples in a 30-day window, meaning that special solutions are needed in order to avoid overloading users’ browsers.

The solution we’ve found lies in a hash ordering that's proven to be both surprisingly simple and efficient. In this Part 2 post, I’ll look at why it works so well.

Read More
Published by Preetam Jinka on Sep 23, 2016 3:32:59 PM

How Color Schemes and Query Latency Bands Help With Database Monitoring

In this post, we’ll explore some powerful visualizations that are vital to monitoring, and we’ll take a look at a few of the attributes that make them so effective—specifically, color schemes. Colors are a central element for many effective visual tools, and whether colors are used to communicate information more clearly; to emphasize certain nuances of data; or to achieve an aesthetic or emotional response, they are a major part of a visual’s impact.  To keep things simple, this blog post will focus our examination on metrics that show us how work is distributed.

Read More
Published by Preetam Jinka on Aug 25, 2016 4:48:32 PM

Optimizing VividCortex’s Samples View: Part 1

Deterministically Subsampling Queries: A Million Samples?!

VividCortex lets users drill-down into their data up to a single-second granularity, and, using specialized sketch sampling methods (check out our free ebook about Sampling a Stream of Events With a Probabilistic Sketch for a look at one way we employ sampling to handle big data sets) we’re able to offer customers up to 30 days of data retention. As you can imagine, 30 days of samples represents a lot of data. Exactly how much?

Read More

Recent Posts

Posts by Topic

see all