All posts

simdjson-go: Parsing gigabytes of JSON per second in Go

simdjson-go: Parsing gigabytes of JSON per second in Go

IntroductionJSON has established itself as the "lingua franca" of the web. As such the parsing performance of JSON is hugely important for many applications. Despite the simple and human-friendly nature of JSON, it is not a technically trivial format to parse at high speeds. Recently some new designs have been presented one of which is simdjson by Daniel Lemire and

Read more...

Golang Internals Part 1: Autogenerated functions (and how to get rid of them)

Maybe if you are like us at MinIO, you have every now and then come across ‘autogenerated’ functions in your Golang call stacks and wondered what they are all about? We had a case the other day where the call stack showed something like the following: cmd.retryStorage.ListDir(0x12847c0, 0xc420402e70, 0x1, ...) minio/cmd/retry-storage.go:183 +0x72 cmd.(*retryStorage)

Read more...

Debugging Go Routine leaks

Before beginning with Debugging Goroutines leaks, let me give a small introduction of some fundamentals which will give you a broader perspective of the problem. Concurrent Programming. Concurrent programming deals with concurrent execution of a program wherein multiple sequential streams of execution run at a time resulting in faster execution of your computations.It helps in better utilization of multicore

Read more...

Introducing Webhooks for MinIO

MinIO provides integration with a range of backend systems which enables you to build a complete solution for your projects. The team has recently integrated a pull request from the community to add Webhook support and wanted to tell you a bit about it. First we will look at what Webhooks are, some examples of what they can connect with,

Read more...