Fetching contributors…
Cannot retrieve contributors at this time
228 lines (156 sloc) 9.77 KB
1.3.2 - xxxxxxxxxxxxxx
* When shutting down ZooKeeper, attempt a simple kill first before trying kill -9.
* Issue 51: Include log4j in standalone version
* Reworked how CLI options are displayed in the standalone version. There are so many now it was
getting confusing.
* Issue 54: Added a new REST API to the Cluster APIs to get the status/state of the entire cluster.
See the wiki for details.
* Issue 55: Added a way to specify the ACL in the standalone version. Run with "--help" to see
how to set the options.
* Issue 57: I think this issue is caused by browser caching. I've added cache defeating query
parameters to all AJAX URLs.
* Issue 58: Added a ZookeeperConfigProvider. The idea here is to use a second Zookeeper cluster
as a datastore for Exhibitor's shared config. You can run Exhibitor on the shared config ensemble
but it will need to be run without shared config. Please see the Github wiki for details.
* The change for Issue 58 involved more CLI options for config. For clarity, I've broken the config
options into groups - a group for each type. A new *required* CLI option has been added: "configtype".
It must be either "file", "s3", "zookeeper" or "none". Configtype "none" is a special purpose type
to be used for running Exhibitor on the ZooKeeper cluster that is storing config for the main ZooKeeper
* Issue 63: Restart, Stop, Start buttons on the control panels now better reflect the state of the
"Automatic Instance Restarts" switch. If the switch is On, the button is "Restart". If the switch is
Off, the button is "Stop" if the instance is running and "Start" if the instance is not running.
* Issue 61: The "Additional Config" section should retain the order that it was entered instead of
being alphabetized.
* Issue 59: Support a separate Transaction Log directory in the config. It can be blank and will
default to the Snapshot directory.
* Updates to the control panel were not warning if another process updated the config at the same time.
* Automatic instance management checkbox moved to the Config tab.
* Lots of UI/logging tweaks and improvements.
* Major reworking of automatic instance management and some work on rolling config:
Automatic Instance Management (AIM) no longer uses heartbeats to determine instance state. Instead,
a REST call is periodically made to each instance in the cluster. This should be more reliable.
Instead of making changes one-by-one, AIM now reconfigures the entire cluster. i.e. if an instance
is new and it notices there is an instance that's been removed, both changes are made in one shot.
The previous config value DEAD_INSTANCE_PERIOD_MS has been removed. In its place is
AUTO_MANAGE_INSTANCES_SETTLING_PERIOD_MS. AIM waits until the ensemble state (quorum, members, etc.)
has been without change for this period before making any changes. Also, the ensemble must be
in Quorum for AIM to make changes.
Previously, Rolling Config Changes would wait for Quorum before the config change advances to
the next instance. However it would only wait up to 4 attempts. If the number of attempts was
exceeded it would advance anyway. This has been changed. If Quorum is not achieved within 4
attempts the rolling config change is canceled and the change is force applied. The hope
is that the ensemble will then settle.
1.2.5 - August 2, 2012
* Various dependency version changes needed for internal Netflix compatibility.
* Pull 50 from user sclasen: basic auth config for exhibitor-standalone
1.2.4 - July 31, 2012
* Support shutting down. The Standalone version now sets a shutdown hook. There is also a REST
API for shutting down. Core-only users must set the shutdownProc in the ExhibitorArguments.
* Modified rolling config behavior. If an instance is NOT_SERVING, wait a bit before moving to next
server so as to avoid quorum loss.
* Fixed several problems with remote calls. In the UI this exhibited as control panel buttons not
working for remote servers.
* Change to 1.2.0 feature "Down or Not-Serving instances will now get restarted periodically". The
time period of restart is now based on the tickTime/initLimit/syncLimit (if available). It will
be 2 * max of tickTime * initLimit or syncLimit.
* Issue 38: Include HTTP 403 in the AWS status codes that indicate an S3 object is not found.
* Pull 45 from user cblack: If credentials are supplied, use them. Otherwise the AWS SDK will attempt
to resolve credentials in the following order:
Environment Variables - AWS_ACCESS_KEY_ID and AWS_SECRET_KEY
Java System Properties - aws.accessKeyId and aws.secretKey
Instance Profile Credentials - delivered through the Amazon EC2 metadata service.
1.2.3 - July 18, 2012
* Fixed some edge cases in pseudo lock that might leave lock files around
* File-based pseudo lock wasn't ignoring non-lock files
* Reworked backup indexing. There's not much value in having to choose which backup to index
so now all backups as well as the active logs are indexed. Also fixed some bugs in the UI.
* When the auto-manage instances state changes, clear the heartbeat. This avoids an edge case where
an instance will get cleaned immediately.
* Removed "Restarts When Unlisted" button. It doesn't have any meaning anymore.
* Log button should always be active if the Exhibitor instance can be reached.
1.2.2 - July 12, 2012
* Major bug: Starting a rolling config from the UI leaked S3 lock files which stopped
future config changes from committing.
1.2.1 - July 12, 2012
* Issue 32: PseudoLock contained an underscore in the prefix. Thanks to user "nmickuli".
1.2.0 - July 5, 2012
* The S3Client could potentially leak connections due to
* Issue 26: Make sure default prefixes don't use underscore as it's reserved
* Include activity class name in log message
* Issue 28: wasn't being written correctly. Thanks to user "mgarski".
* Use the latest Curator version
* Lots of fixes/tweaks for automatic instance management.
* ExhibitorArguments is now constructed via a builder as there are too many combinations for
simple constructors. Note that there is an additional required ExhibitorArgument:
* Rolling Config change wasn't handling dead/down instances. It would just hang waiting for the
instance to come back. This doesn't work for instances being removed by automatic instance management.
Now, Rolling Config will skip instances that don't respond in a reasonable time. If they come back on
line they'll get the updated config anyway.
* Down or Not-Serving instances will now get restarted periodically (by a factor of 10 times IntConfigs.CHECK_MS).
* IMPORTANT: For some internal reasons I needed to change the separator in S3 backup keys from "|" to
"/". This will make any current backups inaccessible. I apologize for this.
1.1.0 - June 27, 2012
* IMPORTANT: CLI arguments have changed a bit to support automatic instance addition/removal in the standalone
application. For the core version, several parameter blocks have changed.
* Alternate colors are now supported for the UI. Currently, the choices are red and black. You can also
provide your own version. Go to and build a custom style and download it.
Put it in in the classpath as "com/netflix/exhibitor/core/ui/css/jquery/custom/..." where "..." is
the contents of the built JQueryUI files. Rename the css file to "jquery-ui.custom.css". Then, pass
"custom" as the JQueryStyle value.
* Major new feature: Automatic Instance Management. Details here:
* Moved to v1.3.11 of the AWS Java SDK
* Additional UITabs now support HTML content. This required adding a new method to the UITab class.
1.0.14 - June 7, 2012
* Removed eTag support - there are too many edge cases and it doesn't really save very much.
* Added Usage Listing feature to the Explorer tab. This produces a listing report starting
at a given path and producing: Path CreateDate ChildQty DeepChildQty.
* DefaultProperties now have more useful methods.
1.0.13 - May 29, 2012
* HTTP eTag support broke server UI updates.
* Exhibitor now supports upgrading the ZooKeeper install version by optionally having
the ZooKeeper Install Dir specify a directory and searching that directory for the ZooKeeper
install with the highest version number.
* UI work - prep for i18n.
// 1.0.12 (internal only)
1.0.11 - May 25, 2012
* Issue 14: typo - wrong counter being decremented in IndexCache.releaseLogSearch()
* Issue 14: IndexResource.getResult wasn't releasing the search object
* Issue 14: cleanup task wasn't using correct JARs for 3.4.x
* Various minor bug fixes
1.0.10 - May 17, 2012
* Added a new Analyze feature to detect deadlocks and show lock ownership (assuming Curator
recipe usage)
1.0.9 - May 8, 2012
* Major oversight. Restart significant config changes weren't causing a restart.
* The getSystemState API now sets the ETag response header and respects the “If-None-Match”
request header.
* Made restoring from a backup a bit easier by enhancing the backup selection UI.
1.0.8 - May 7, 2012
* Restore of DELETEs wasn't working due to an internal exception.
* More UI work on modify dialog
* Minor bug fixes
1.0.7 - May 4, 2012
* Added support for modifying ZK data. Note: this must be turned on by setting "allowNodeMutations"
to true in Exhibitor.Arguments. The standalone version has the CLI option "--nodemodification true"
to set this.
* A little less logging of backup changes.
1.0.6 - April 6, 2012
* Prep for initial public release