YottaDB r1.28 Released
K.S. Bhaskar
For users of YottaDB using the Go API, r1.28 is a major release because it is required for production grade access to YottaDB from Go. For others, it is a minor release with a small set of enhancements and fixes as detailed in the complete release notes.
YottadB r1.28 is upward compatible with YottaDB r1.26, and thus upward compatible with GT.M V6.3-006 and V6.3-007.
Go Wrapper
As discussed in our blog post YottaDB Go Wrapper on February 6, 2019, we have created a package yottadB to access YottaDB from the Go language, which is among the top 10 in the IEEE Spectrum 2019 language popularity survey. Where we previously considered the Go wrapper to be field test grade, we now consider it to be production grade.
The reason that it takes a YottaDB release to make the Go wrapper production grade arises from the fact that runtime system of the most commonly used Go implementation assumes that it is in primary control of the process. As the YottaDB runtime system resides within the address space of the application process, it must protect its memory from Go. Furthermore, it must install its own signal handlers. Overcoming these hurdles, which in some cases resulted in intermittent failures that caused abnormal process termination sometimes after hours and even days of stress testing on our servers, was in equal measures art and engineering, which prolonged the release date. Our presentation Hidden Dragons of CGO discusses some of these challenges.
On a system or container with YottaDB installed, installing and using the Go wrapper is as simple as:
- Install with:
go get lang.yottadb.com/go/yottadb
- To use, include
import "lang.yottadb.com/go/yottadb"
in application code
- Documentation is at https://godoc.org/lang.yottadb.com/go/yottadb (with complete documentation in the Multi-Language Programmers Guide)
We are also providing a Dockerfile including the packaged Go wrapper.
Please use the YottaDB Go wrapper, and tell us what you think!
Images Used:
Go Gopher, Renee French.
The design is licensed under the Creative Commons 3.0 Attributions license.
Read this article for more details: https://blog.golang.org/gopher
Published on September 13, 2019