basho / leveldb

Clone of http://code.google.com/p/leveldb/
BSD 3-Clause "New" or "Revised" License
408 stars 182 forks source link

Mv bucket expiry2 #219

Closed matthewvon closed 7 years ago

erikleitch commented 7 years ago

This is one of three related PRS:

https://github.com/basho/leveldb/pull/219 https://github.com/basho/leveldb_ee/pull/5 *https://github.com/basho/eleveldb/pull/235

The first is mainly base-class infrastructure code to handle the bucket-level extension of global expiry, the second is the implementation of the bucket-level expiry code (an enterprise-only feature, implemented in classes that inherit from the base classes in leveldb), and the third is the eleveldb interface to the new bucket-level expiry code, mainly the addition of a routing function that allows for bucket properties to be communicated to leveldb.


matthewvon commented 7 years ago

I believe all issues are now addressed within leveldb and leveldb_ee repositories. eleveldb repository work is next.

Note: asserts() are not an error management framework. From Code Complete, First Edition: "An assertion is a function or macro that complains loudly if an assumption isn't true. use assertions to document assumptions made in the code and to flush out unexpected conditions. ... Even if you don't want your users to see assertion messages in production code, assertions are handy during development and maintenance. During development, assertions flush out contradictory assumptions, unexpected condition, bad values passed to routines, and so on."

I have added an explicit comment to the Makefile to point out assert() being disabled in production builds. Similarly I have added an explicit comment within util/prop_cache.h to point out default constructor of PropertyCache is disabled. And comment at top of util/prop_cache.cc to point out synchronization objects used to address race condition on shutdown.

erikleitch commented 7 years ago

+1

Looks good to me!