Merge pull request #1990 from etschannen/release-6.2
Fixed status reporting bugs related to connected clients
This commit is contained in:
commit
a067e6e812
|
@ -10,38 +10,38 @@ macOS
|
|||
|
||||
The macOS installation package is supported on macOS 10.7+. It includes the client and (optionally) the server.
|
||||
|
||||
* `FoundationDB-6.2.1.pkg <https://www.foundationdb.org/downloads/6.2.1/macOS/installers/FoundationDB-6.2.1.pkg>`_
|
||||
* `FoundationDB-6.2.2.pkg <https://www.foundationdb.org/downloads/6.2.2/macOS/installers/FoundationDB-6.2.2.pkg>`_
|
||||
|
||||
Ubuntu
|
||||
------
|
||||
|
||||
The Ubuntu packages are supported on 64-bit Ubuntu 12.04+, but beware of the Linux kernel bug in Ubuntu 12.x.
|
||||
|
||||
* `foundationdb-clients-6.2.1-1_amd64.deb <https://www.foundationdb.org/downloads/6.2.1/ubuntu/installers/foundationdb-clients_6.2.1-1_amd64.deb>`_
|
||||
* `foundationdb-server-6.2.1-1_amd64.deb <https://www.foundationdb.org/downloads/6.2.1/ubuntu/installers/foundationdb-server_6.2.1-1_amd64.deb>`_ (depends on the clients package)
|
||||
* `foundationdb-clients-6.2.2-1_amd64.deb <https://www.foundationdb.org/downloads/6.2.2/ubuntu/installers/foundationdb-clients_6.2.2-1_amd64.deb>`_
|
||||
* `foundationdb-server-6.2.2-1_amd64.deb <https://www.foundationdb.org/downloads/6.2.2/ubuntu/installers/foundationdb-server_6.2.2-1_amd64.deb>`_ (depends on the clients package)
|
||||
|
||||
RHEL/CentOS EL6
|
||||
---------------
|
||||
|
||||
The RHEL/CentOS EL6 packages are supported on 64-bit RHEL/CentOS 6.x.
|
||||
|
||||
* `foundationdb-clients-6.2.1-1.el6.x86_64.rpm <https://www.foundationdb.org/downloads/6.2.1/rhel6/installers/foundationdb-clients-6.2.1-1.el6.x86_64.rpm>`_
|
||||
* `foundationdb-server-6.2.1-1.el6.x86_64.rpm <https://www.foundationdb.org/downloads/6.2.1/rhel6/installers/foundationdb-server-6.2.1-1.el6.x86_64.rpm>`_ (depends on the clients package)
|
||||
* `foundationdb-clients-6.2.2-1.el6.x86_64.rpm <https://www.foundationdb.org/downloads/6.2.2/rhel6/installers/foundationdb-clients-6.2.2-1.el6.x86_64.rpm>`_
|
||||
* `foundationdb-server-6.2.2-1.el6.x86_64.rpm <https://www.foundationdb.org/downloads/6.2.2/rhel6/installers/foundationdb-server-6.2.2-1.el6.x86_64.rpm>`_ (depends on the clients package)
|
||||
|
||||
RHEL/CentOS EL7
|
||||
---------------
|
||||
|
||||
The RHEL/CentOS EL7 packages are supported on 64-bit RHEL/CentOS 7.x.
|
||||
|
||||
* `foundationdb-clients-6.2.1-1.el7.x86_64.rpm <https://www.foundationdb.org/downloads/6.2.1/rhel7/installers/foundationdb-clients-6.2.1-1.el7.x86_64.rpm>`_
|
||||
* `foundationdb-server-6.2.1-1.el7.x86_64.rpm <https://www.foundationdb.org/downloads/6.2.1/rhel7/installers/foundationdb-server-6.2.1-1.el7.x86_64.rpm>`_ (depends on the clients package)
|
||||
* `foundationdb-clients-6.2.2-1.el7.x86_64.rpm <https://www.foundationdb.org/downloads/6.2.2/rhel7/installers/foundationdb-clients-6.2.2-1.el7.x86_64.rpm>`_
|
||||
* `foundationdb-server-6.2.2-1.el7.x86_64.rpm <https://www.foundationdb.org/downloads/6.2.2/rhel7/installers/foundationdb-server-6.2.2-1.el7.x86_64.rpm>`_ (depends on the clients package)
|
||||
|
||||
Windows
|
||||
-------
|
||||
|
||||
The Windows installer is supported on 64-bit Windows XP and later. It includes the client and (optionally) the server.
|
||||
|
||||
* `foundationdb-6.2.1-x64.msi <https://www.foundationdb.org/downloads/6.2.1/windows/installers/foundationdb-6.2.1-x64.msi>`_
|
||||
* `foundationdb-6.2.2-x64.msi <https://www.foundationdb.org/downloads/6.2.2/windows/installers/foundationdb-6.2.2-x64.msi>`_
|
||||
|
||||
API Language Bindings
|
||||
=====================
|
||||
|
@ -58,18 +58,18 @@ On macOS and Windows, the FoundationDB Python API bindings are installed as part
|
|||
|
||||
If you need to use the FoundationDB Python API from other Python installations or paths, download the Python package:
|
||||
|
||||
* `foundationdb-6.2.1.tar.gz <https://www.foundationdb.org/downloads/6.2.1/bindings/python/foundationdb-6.2.1.tar.gz>`_
|
||||
* `foundationdb-6.2.2.tar.gz <https://www.foundationdb.org/downloads/6.2.2/bindings/python/foundationdb-6.2.2.tar.gz>`_
|
||||
|
||||
Ruby 1.9.3/2.0.0+
|
||||
-----------------
|
||||
|
||||
* `fdb-6.2.1.gem <https://www.foundationdb.org/downloads/6.2.1/bindings/ruby/fdb-6.2.1.gem>`_
|
||||
* `fdb-6.2.2.gem <https://www.foundationdb.org/downloads/6.2.2/bindings/ruby/fdb-6.2.2.gem>`_
|
||||
|
||||
Java 8+
|
||||
-------
|
||||
|
||||
* `fdb-java-6.2.1.jar <https://www.foundationdb.org/downloads/6.2.1/bindings/java/fdb-java-6.2.1.jar>`_
|
||||
* `fdb-java-6.2.1-javadoc.jar <https://www.foundationdb.org/downloads/6.2.1/bindings/java/fdb-java-6.2.1-javadoc.jar>`_
|
||||
* `fdb-java-6.2.2.jar <https://www.foundationdb.org/downloads/6.2.2/bindings/java/fdb-java-6.2.2.jar>`_
|
||||
* `fdb-java-6.2.2-javadoc.jar <https://www.foundationdb.org/downloads/6.2.2/bindings/java/fdb-java-6.2.2-javadoc.jar>`_
|
||||
|
||||
Go 1.11+
|
||||
--------
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
Release Notes
|
||||
#############
|
||||
|
||||
6.2.0
|
||||
6.2.2
|
||||
=====
|
||||
|
||||
Performance
|
||||
|
@ -53,6 +53,7 @@ Status
|
|||
* ``fdbcli`` status now reports the configured zone count. The fault tolerance is now reported in terms of the number of zones unless machine IDs are being used as zone IDs. `(PR #1924) <https://github.com/apple/foundationdb/pull/1924>`_.
|
||||
* ``connected_clients`` is now only a sample of the connected clients, rather than a complete list. `(PR #1902) <https://github.com/apple/foundationdb/pull/1902>`_.
|
||||
* Added ``max_protocol_clients`` to the ``supported_versions`` section, which provides a sample of connected clients which cannot connect to any higher protocol version. `(PR #1902) <https://github.com/apple/foundationdb/pull/1902>`_.
|
||||
* Clients which connect without specifying their supported versions are tracked as an ``Unknown`` version in the ``supported_versions`` section. [6.2.2] `(PR #1990) <https://github.com/apple/foundationdb/pull/1990>`_.
|
||||
|
||||
Bindings
|
||||
--------
|
||||
|
@ -90,6 +91,7 @@ Fixes only impacting 6.2.0+
|
|||
|
||||
* Clients could crash when closing connections with incompatible servers. [6.2.1] `(PR #1976) <https://github.com/apple/foundationdb/pull/1976>`_.
|
||||
* Do not close idle network connections with incompatible servers. [6.2.1] `(PR #1976) <https://github.com/apple/foundationdb/pull/1976>`_.
|
||||
* In status, ``max_protocol_clients`` were incorrectly added to the ``connected_clients`` list. [6.2.2] `(PR #1990) <https://github.com/apple/foundationdb/pull/1990>`_.
|
||||
|
||||
Earlier release notes
|
||||
---------------------
|
||||
|
|
|
@ -541,6 +541,7 @@ OpenDatabaseRequest ClientData::getRequest() {
|
|||
std::map<StringRef, ClientStatusStats> issueMap;
|
||||
std::map<ClientVersionRef, ClientStatusStats> versionMap;
|
||||
std::map<StringRef, ClientStatusStats> maxProtocolMap;
|
||||
int clientCount = 0;
|
||||
|
||||
//SOMEDAY: add a yield in this loop
|
||||
for(auto& ci : clientStatusInfoMap) {
|
||||
|
@ -551,20 +552,29 @@ OpenDatabaseRequest ClientData::getRequest() {
|
|||
entry.examples.push_back(std::make_pair(ci.first, ci.second.traceLogGroup));
|
||||
}
|
||||
}
|
||||
StringRef maxProtocol;
|
||||
for(auto& it : ci.second.versions) {
|
||||
maxProtocol = std::max(maxProtocol, it.protocolVersion);
|
||||
auto& entry = versionMap[it];
|
||||
if(ci.second.versions.size()) {
|
||||
clientCount++;
|
||||
StringRef maxProtocol;
|
||||
for(auto& it : ci.second.versions) {
|
||||
maxProtocol = std::max(maxProtocol, it.protocolVersion);
|
||||
auto& entry = versionMap[it];
|
||||
entry.count++;
|
||||
if(entry.examples.size() < CLIENT_KNOBS->CLIENT_EXAMPLE_AMOUNT) {
|
||||
entry.examples.push_back(std::make_pair(ci.first, ci.second.traceLogGroup));
|
||||
}
|
||||
}
|
||||
auto& maxEntry = maxProtocolMap[maxProtocol];
|
||||
maxEntry.count++;
|
||||
if(maxEntry.examples.size() < CLIENT_KNOBS->CLIENT_EXAMPLE_AMOUNT) {
|
||||
maxEntry.examples.push_back(std::make_pair(ci.first, ci.second.traceLogGroup));
|
||||
}
|
||||
} else {
|
||||
auto& entry = versionMap[ClientVersionRef()];
|
||||
entry.count++;
|
||||
if(entry.examples.size() < CLIENT_KNOBS->CLIENT_EXAMPLE_AMOUNT) {
|
||||
entry.examples.push_back(std::make_pair(ci.first, ci.second.traceLogGroup));
|
||||
}
|
||||
}
|
||||
auto& maxEntry = maxProtocolMap[maxProtocol];
|
||||
maxEntry.count++;
|
||||
if(maxEntry.examples.size() < CLIENT_KNOBS->CLIENT_EXAMPLE_AMOUNT) {
|
||||
maxEntry.examples.push_back(std::make_pair(ci.first, ci.second.traceLogGroup));
|
||||
}
|
||||
}
|
||||
|
||||
req.issues.reserve(issueMap.size());
|
||||
|
@ -579,7 +589,7 @@ OpenDatabaseRequest ClientData::getRequest() {
|
|||
for(auto& it : maxProtocolMap) {
|
||||
req.maxProtocolSupported.push_back(ItemWithExamples<Key>(it.first, it.second.count, it.second.examples));
|
||||
}
|
||||
req.clientCount = clientStatusInfoMap.size();
|
||||
req.clientCount = clientCount;
|
||||
|
||||
return req;
|
||||
}
|
||||
|
|
|
@ -931,7 +931,7 @@ static JsonBuilderObject clientStatusFetcher(std::map<NetworkAddress, std::pair<
|
|||
JsonBuilderObject cli;
|
||||
cli["address"] = client.first.toString();
|
||||
cli["log_group"] = client.second.toString();
|
||||
clients.push_back(cli);
|
||||
maxClients.push_back(cli);
|
||||
}
|
||||
ver["max_protocol_count"] = iter->second.count;
|
||||
ver["max_protocol_clients"] = maxClients;
|
||||
|
|
Loading…
Reference in New Issue