Commit Graph

89 Commits

Author SHA1 Message Date
A.J. Beamon 419231d798 Fix: status was trying to read a metric under the wrong name, leading to an error that caused the cluster to report itself unhealthy and some metrics to be missing. 2018-10-10 13:33:28 -07:00
A.J. Beamon 84c2e3567f Fix keys queried to use the RowsQueried metric instead of BytesQueried. 2018-10-01 11:19:28 -07:00
A.J. Beamon a98fcf5972 Rename durable_lag to durability_lag 2018-10-01 09:58:49 -07:00
A.J. Beamon f196e2d4dc Lot metrics about read requests as well as completed reads. 2018-09-27 15:32:39 -07:00
A.J. Beamon 118e21c446 Add new metrics for bytes queried, keys queried, mutation bytes, mutations, and durable lag to the storage role in status. 2018-09-27 14:33:21 -07:00
Stephen Atherton b47902584b Added comparison of serialization speed of json_spirit and JsonBuilder to JsonBuilder perf test. 2018-09-10 19:54:27 -07:00
Stephen Atherton 5b8971ef18 Rename JsonString to JsonBuilder 2018-09-10 19:01:24 -07:00
Stephen Atherton 8ed8f290c4 Merge branch 'release-6.0' of github.com:etschannen/foundationdb into evan-6 2018-09-10 13:28:49 -07:00
Stephen Atherton 4753172991 Added support for NaN and infinity in JsonBuilder in double and ascii number interfaces. 2018-09-10 13:28:31 -07:00
Evan Tschannen 63271072e8 fixed linker problem 2018-09-10 12:59:22 -07:00
Stephen Atherton 9febc01106 In simulation, strict JSON parser will print bad input to stdout (not std since whether it's an error depends on context). 2018-09-10 12:07:03 -07:00
Evan Tschannen ce38ddbd4b added tests with the + sign 2018-09-10 10:52:15 -07:00
Stephen Atherton 4510881ba1 Added JSON reparsing and error output to all JsonBuilder output tests. 2018-09-10 03:21:55 -07:00
Stephen Atherton 9828db4399 Rewrote ASCII -> JSON number support as sort of a filter which cleans up ASCII numbers into valid JSON. Added tests for strange numbers which tests the generated output by parsing it as JSON. 2018-09-10 03:07:11 -07:00
Evan Tschannen 5bff967763 avoid parsing numbers that are never used as numbers 2018-09-09 23:19:00 -07:00
Stephen Atherton 2afd4cffb9 Simplified raw string writers and added StringRef version so that locality field names in status do not have to be repeatedly copied. 2018-09-09 22:47:12 -07:00
Stephen Atherton 41b03f6f68 Some refactoring in JsonBuilder to remove code duplication and make some expressions simpler. Some performance improvements, switched vector to VectorRef and used its bulk append method, and redirected basic mValue types to faster serialization. Added StringRef writeValue() method so that locality field writing in status does not have to use toString(). 2018-09-09 22:39:51 -07:00
Stephen Atherton 7ca304d209 Bug fix, adding empty JsonBuilder object or array to same would cause an errant comma at the end of the target. 2018-09-09 22:11:11 -07:00
Stephen Atherton 2d6632dfc6 Added more JsonBuilder unit tests, some of which fail. 2018-09-09 22:05:04 -07:00
Evan Tschannen 84737b1fbe speed up status 2018-09-09 18:12:41 -07:00
Stephen Atherton ce6a9da423 Added JsonBuilder performance unit test for tracking optimizations. 2018-09-08 18:05:16 -07:00
Stephen Atherton 21c7ed2b50 JsonString refactored so that type compatibility is enforced at compile time. Specific JSON types are handled with subclasses that have type-specific access methods and a caller's intentions can no longer be ambiguous. Nothing that compiles should be able to produce malformed JSON. 2018-09-08 15:44:48 -07:00
Stephen Atherton ce3f01a0cf Added concept of type to JsonString. Appending single items or key/value pairs is now type-safe and only allowed in certain cases. JsonString will refuse to produce invalid JSON. All duplicative functions have been replaced with templates. Encoding of values uses json_spirit's value writer which should be no worse performance than format() and it will escape everything properly. Final string form is now built directly using knowledge of type, such as when an instance becomes an Array or Object the appropriate opening character is written. This avoids a full copy just to prepend the opening character later. Index interface for key/value pairs no longer makes a temporary copy of the key string. JsonString is now only needed by Status.actor.cpp. Still more work to be done here. 2018-09-08 07:15:28 -07:00
Evan Tschannen d3c8d7ab4e fix: status would generate invalid json 2018-09-07 18:26:05 -07:00
Evan Tschannen 98651bafb1 removed _keyNames from JsonString 2018-09-05 22:51:15 -07:00
Alvin Moore 221f73e69e Merge branch 'release-6.0' of github.com:apple/foundationdb into status-json
# Conflicts:
#	fdbclient/fdbclient.vcxproj
#	fdbserver/Status.actor.cpp
2018-09-05 14:44:09 -07:00
Alvin Moore 6aa22af83b Added explicit keyword for appropriate constructor
Templatized some methods
Removed unused hash function
2018-09-05 12:22:04 -07:00
Alvin Moore 43a2afc3b6 Added TODO comment
Removed debug comments
2018-09-05 08:06:19 -07:00
Alvin Moore 04a768042a Added TraceEvent to measure time to create Status Json
Simplified JsonString class to use implementation method for reuse of methods
Removed quotes from non-string values within json
Added Tests for jsonstring
Removed hashing of names for JsonString
Switched name tracker to unordered set
2018-09-05 03:50:53 -07:00
Evan Tschannen 1e2ce75ce4 fix: if usable_regions=1 extraTlogEligibleMachines was calculated incorrectly 2018-08-31 13:04:00 -07:00
Alvin Moore affd7423b4 Added class to write json as objects are added
Integrated JsonString class into status
2018-08-31 01:21:24 -07:00
Evan Tschannen e770629229 fix: json_spirit::write_string is very CPU intensive, especially for large JSON documents. The cluster controller would call this function for each status reply it needed to send, resulting in a slow task. 2018-08-15 19:39:06 -07:00
Evan Tschannen 9c918a28f6 fix: status was reporting no replicas remaining when the remote datacenter was initially configured with usable_regions=2 2018-08-09 13:16:09 -07:00
A.J. Beamon 7d831ef9c3 Revert change that prints lag with 2 decimal points of precision. 2018-08-07 15:41:51 -07:00
A.J. Beamon e0cf525951 Fix: use new data lag fields when making storage server message indicating high lag. 2018-08-07 11:02:09 -07:00
Evan Tschannen 6d76ff67a3 added the connection string to status 2018-07-09 22:11:58 -07:00
Evan Tschannen 507b3bacb0 fix: kill all tlogs in one region prevents the remote logs from recovering in that region, do not allow that to prevent us from configuring usable_regions=1.
added more recovery states.
2018-07-05 00:08:51 -07:00
Evan Tschannen a288d5b9a9 added a fallback satellite configuration, so that we can use two satellites if available, but do not have to failover to the remote datacenter if one satellite is down 2018-06-28 23:15:32 -07:00
A.J. Beamon 1f0561a9c0 Missed a couple requested changes 2018-06-26 15:22:39 -07:00
A.J. Beamon fec225075f Merge branch 'master' into trace-log-refactor 2018-06-26 14:54:42 -07:00
A.J. Beamon fe956bc35a Address review comments 2018-06-26 14:37:21 -07:00
A.J. Beamon 9f545ce002 Merge commit '892727e358c0b3f075564c60c2b7cedb64306f83' into trace-log-refactor 2018-06-26 11:37:23 -07:00
A.J. Beamon e8f66df001 Add metrics for watches and mutations on the storage server. The storage server tracks its lag with the logs, and status tries to report a more accurate measure of this lag. 2018-06-21 15:59:43 -07:00
A.J. Beamon 5e81f4ac7e Track unused allocated memory in ProcessMetrics and report it in status. 2018-06-20 10:10:51 -07:00
Evan Tschannen 0913368651 added usable_regions to specify if we will replicate into a remote region
remote replication defaults to the primary replication
removed remote_logs, because they should be specified as an override in the regions object
2018-06-17 19:31:15 -07:00
Evan Tschannen f694f7c9ca removed hasBestPolicy 2018-06-15 12:36:19 -07:00
Evan Tschannen 09c92c887b fix: extraTlogEligibleMachines was not calculated correctly in all cases 2018-06-15 10:23:33 -07:00
Evan Tschannen 246abd1207 added full_replication to status 2018-06-14 21:14:18 -07:00
Evan Tschannen 0103b6f5ed added datacenter_version_difference to status 2018-06-14 19:09:25 -07:00
Evan Tschannen 99e21c869c fixed a number of status calculations, and re-enabled the status workload 2018-06-14 17:58:57 -07:00