• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

luci / gae / 201
82%

Build:
DEFAULT BRANCH: master
Ran 08 Jan 2017 08:39PM UTC
Jobs 1
Files 0
Run time –
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

pending completion
201

push

travis-ci

Commit bot
impl/memory: Replace gkvlite with "treapstore".

gkvlite is the treap (tree + heap)-based key/value store used by
"impl/memory"'s backend. While it is very powerful package, its
complexity and ensuing requirements make it a somewhat-imperfect fit.
Specifically, "gkvlite" is built around resources that must be
explicitly allocated and free'd. While this makes a lot of sense for its
on-disk storage functionality, we don't use that functionality, and
integrating snapshot closing into every layer of "impl/memory" is
non-trivial.

Enter "treapstore", a treap-based storage implementation that closesly
mirrors the functionality in "gkvlite" that "impl/memory" uses, but
specifically focuses the in-memory use case. Because "treapstore"
foregoes node reuse and snapshot cleanup, we can rely entirely on Go's
memory manager to clean things up, removing the need to close things.

"treapstore" builds on an extended version of "gkvlite"'s underlying
"gtreap" package which introduces an iterator. This iterator removes the
need for the goroutine- and callback-based iteration implementations
that "impl/memory" used to interface with gkvlite (and "gtreap")'s
VisitItemsAscend method, resulting in signifcantly cleaner and likely
higher perfomant code. "treapstore" iterators don't have any cleanup
requirements. Consqeuently, explicit resource management via "stop" is
no longer necessary to perform iteration.

BUG=chromium:675485
TEST=unit

Review-Url: https://codereview.chromium.org/2604943002
Jobs
ID Job ID Ran Files Coverage
1 201.1 08 Jan 2017 08:39PM UTC 0
Travis Job 201.1
Source Files on build 201
Detailed source file information is not available for this build.
  • Back to Repo
  • Travis Build #201
  • 951a9bd6 on github
  • Prev Build on master (#200)
  • Next Build on master (#202)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc