diff --git a/docs/release-notes.md b/docs/release-notes.md new file mode 100644 index 0000000000..f6c41d7fae --- /dev/null +++ b/docs/release-notes.md @@ -0,0 +1,985 @@ +*Release notes were automatically generated by [Shipkit](http://shipkit.org/)* + +#### 0.3.0 + - 2019-08-22 - 2396 commits by 29 authors - published to [![Bintray](https://img.shields.io/badge/Bintray-0.3.0-green.svg)](https://bintray.com/linkedin/maven/ambry/0.3.0) + - Commits: [Sivabalan Narayanan](https://github.com/nsivabalan) (592), [Gopalakrishna Holla](https://github.com/vgkholla) (484), [Priyesh Narayanan](https://github.com/pnarayanan) (402), sriramsub (325), [Casey Getz](https://github.com/cgtz) (99), Tianwei Li (96), Jay J Wylie (72), [Ming Xia](https://github.com/xiahome) (71), [Ze Mao](https://github.com/zzmao) (63), [Yingyi Zhang](https://github.com/jsjtzyy) (60), [Terry Li](https://github.com/Tianwei-Li) (32), [Rob Block](https://github.com/lightningrob) (30), [David Harju](https://github.com/dharju) (29), [Xun Yin](https://github.com/xunyin8) (12), Sriram Subramanian (6), [Ankur Agrawal](https://github.com/ankagrawal) (4), [Dmitry Nikiforov](https://github.com/dniq) (3), [Jasper Siepkes](https://github.com/siepkes) (3), [Justin Lin](https://github.com/justinlin-linkedin) (3), [André Laszlo](https://github.com/andrelaszlo) (1), [Bas van Schaik](https://github.com/sjvs) (1), Diego Mariani (1), [Enrico Olivelli](https://github.com/eolivelli) (1), [heipacker](https://github.com/heipacker) (1), johnnyjian (1), [Naresh Bafna](https://github.com/nareshbafna) (1), [ohze.net](https://github.com/ohze) (1), [Shuai Yuan](https://github.com/syuanca) (1), [Vincent Bernat](https://github.com/vincentbernat) (1) + - Fix directory deletion failure in DiskSpaceAllocator [(#1244)](https://github.com/linkedin/ambry/pull/1244) + - Add config option to connect to Cosmos with DirectHttps mode [(#1243)](https://github.com/linkedin/ambry/pull/1243) + - Use Timer instead of Histgram on some metrics [(#1242)](https://github.com/linkedin/ambry/pull/1242) + - Enable shipkit release publishing [(#1239)](https://github.com/linkedin/ambry/pull/1239) + - Fix gradle heap size configs [(#1238)](https://github.com/linkedin/ambry/pull/1238) + - Misc fixes in cluster manager, replication and compaction manager [(#1237)](https://github.com/linkedin/ambry/pull/1237) + - Clean up network related metrics. [(#1236)](https://github.com/linkedin/ambry/pull/1236) + - Upgrade gradle, fix test logging and int test CPU usage [(#1235)](https://github.com/linkedin/ambry/pull/1235) + - Implement helixAccountService with version history and blobs [(#1234)](https://github.com/linkedin/ambry/pull/1234) + - Support dynamically removing store from storage manager [(#1232)](https://github.com/linkedin/ambry/pull/1232) + - Fix broken builds by specifying Ubuntu trusty dist. [(#1231)](https://github.com/linkedin/ambry/pull/1231) + - Run azure recovery locally [(#1230)](https://github.com/linkedin/ambry/pull/1230) + - Implement get functionality for Azure Vcr [(#1229)](https://github.com/linkedin/ambry/pull/1229) + - Introducing Ambry partition state model and update Helix tool [(#1228)](https://github.com/linkedin/ambry/pull/1228) + - Create executor pool to take over network read/write tasks. [(#1227)](https://github.com/linkedin/ambry/pull/1227) + - Support dynamically adding store to storage manager [(#1226)](https://github.com/linkedin/ambry/pull/1226) + - Add cache of recently seen blobs in CloudBlobStore [(#1225)](https://github.com/linkedin/ambry/pull/1225) + - Ensure blobId with prefix in request header is correctly handled [(#1224)](https://github.com/linkedin/ambry/pull/1224) + - Set permissions for ambry data and operation files [(#1223)](https://github.com/linkedin/ambry/pull/1223) + - Support QPS throttling in NettyPerfClient [(#1220)](https://github.com/linkedin/ambry/pull/1220) + - Misc changes for adaptive operation tracker [(#1218)](https://github.com/linkedin/ambry/pull/1218) + - Allow NettyPerfClient to connect multiple frontends [(#1217)](https://github.com/linkedin/ambry/pull/1217) + - Implement VCR findEntriesSince method [(#1216)](https://github.com/linkedin/ambry/pull/1216) + - Free PutOperation references earlier [(#1215)](https://github.com/linkedin/ambry/pull/1215) + - Add more log infos in AmbryStateModel [(#1214)](https://github.com/linkedin/ambry/pull/1214) + - Allow store to skip disk flush during shutdown if disk I/O error occurs [(#1212)](https://github.com/linkedin/ambry/pull/1212) + - Cloud compactor schedule [(#1211)](https://github.com/linkedin/ambry/pull/1211) + - Refactoring DiskSpaceAllocator to support dynamically add/remove store [(#1210)](https://github.com/linkedin/ambry/pull/1210) + - Fix bug causing uploaded blobs to be empty [(#1209)](https://github.com/linkedin/ambry/pull/1209) + - Downgrade metrics library [(#1208)](https://github.com/linkedin/ambry/pull/1208) + - Fix partition lag metric typo [(#1207)](https://github.com/linkedin/ambry/pull/1207) + - Shutdown request handler before network server in ambry server [(#1206)](https://github.com/linkedin/ambry/pull/1206) + - Retry Cosmos requests after delay when they return 429 [(#1205)](https://github.com/linkedin/ambry/pull/1205) + - Fix typo in partition lag metric name [(#1204)](https://github.com/linkedin/ambry/pull/1204) + - Add off switch for replenishConnections and honor datanode health [(#1203)](https://github.com/linkedin/ambry/pull/1203) + - Fixed some issues with Segment GETs [(#1202)](https://github.com/linkedin/ambry/pull/1202) + - Fix potential cache incoherence issue. [(#1201)](https://github.com/linkedin/ambry/pull/1201) + - Add Cosmos record even if blob was previously uploaded [(#1200)](https://github.com/linkedin/ambry/pull/1200) + - Add configurable warm up for remote datacenter connections [(#1198)](https://github.com/linkedin/ambry/pull/1198) + - Improve GetWritablePartitionIds Performance for PUT Requests [(#1197)](https://github.com/linkedin/ambry/pull/1197) + - Improve OperationTracker to terminate when there are two NOT_FOUND from originating DC [(#1196)](https://github.com/linkedin/ambry/pull/1196) + - Add per partition replication lag metrics. [(#1195)](https://github.com/linkedin/ambry/pull/1195) + - Upgrade Helix library version and add auto maintenance mode in HelixVcrPopulateTool [(#1194)](https://github.com/linkedin/ambry/pull/1194) + - Segmented get metrics [(#1193)](https://github.com/linkedin/ambry/pull/1193) + - Azure container name must be lower case [(#1192)](https://github.com/linkedin/ambry/pull/1192) + - Add support for querying and purging dead blobs in Azure [(#1189)](https://github.com/linkedin/ambry/pull/1189) + - Add post blob size [(#1188)](https://github.com/linkedin/ambry/pull/1188) + - Segmented blob GET [(#1187)](https://github.com/linkedin/ambry/pull/1187) + - Maintain connection low watermark in NetworkClient [(#1186)](https://github.com/linkedin/ambry/pull/1186) + - Use cluster name as prefix in Azure blob container [(#1185)](https://github.com/linkedin/ambry/pull/1185) + - Introducing node-level/disk-level histogram in adaptive tracker [(#1184)](https://github.com/linkedin/ambry/pull/1184) + - Use customized blobId string as Azure blob name. [(#1181)](https://github.com/linkedin/ambry/pull/1181) + - Ensure all disconnected connections are handled by ResponseHandler [(#1180)](https://github.com/linkedin/ambry/pull/1180) + - Add resource control enable/disable [(#1179)](https://github.com/linkedin/ambry/pull/1179) + - Fix helix test issues. [(#1177)](https://github.com/linkedin/ambry/pull/1177) + - Added HelixPopulateTool and tests. [(#1176)](https://github.com/linkedin/ambry/pull/1176) + - Stitched blobs support different sized component blobs [(#1175)](https://github.com/linkedin/ambry/pull/1175) + - Introducing partition-level histogram into adaptive tracker [(#1174)](https://github.com/linkedin/ambry/pull/1174) + - Exclude timed out response from adaptive tracker's histogram [(#1173)](https://github.com/linkedin/ambry/pull/1173) + - Add logs in CompositeClusterManager to debug writable partition mismatch [(#1172)](https://github.com/linkedin/ambry/pull/1172) + - Introduce HelixVcrCluster to CloudBackupManager and refactor ReplicationEngine and ReplicaThread. [(#1171)](https://github.com/linkedin/ambry/pull/1171) + - Minor fixes in IOException catch and metrics registry [(#1170)](https://github.com/linkedin/ambry/pull/1170) + - Fix to correct #1165. [(#1169)](https://github.com/linkedin/ambry/pull/1169) + - Fix NullPointerException and 'no more capacity' issues in blob store [(#1168)](https://github.com/linkedin/ambry/pull/1168) + - Cloud tokens [(#1166)](https://github.com/linkedin/ambry/pull/1166) + - Blobs get TTL upload should be uploaded to Cloud. [(#1165)](https://github.com/linkedin/ambry/pull/1165) + - Make CompositeClusterManager more robust to NPEs and other errors [(#1164)](https://github.com/linkedin/ambry/pull/1164) + - Avoid unnecessary round trips to Azure when uploading blobs [(#1163)](https://github.com/linkedin/ambry/pull/1163) + - Fixing the intermittent Helix tool test failure [(#1162)](https://github.com/linkedin/ambry/pull/1162) + - Introduce container metrics [(#1161)](https://github.com/linkedin/ambry/pull/1161) + - Add more error message to help debug invalid offset [(#1160)](https://github.com/linkedin/ambry/pull/1160) + - Refactor operation tracker ctor and introduce custom percentiles [(#1159)](https://github.com/linkedin/ambry/pull/1159) + - Add HelixVcrCluster and HelixVcrClusterFactory. [(#1158)](https://github.com/linkedin/ambry/pull/1158) + - Misc minor fixes in Helix tool, ReplicationEngine and Composite Manager [(#1157)](https://github.com/linkedin/ambry/pull/1157) + - Create ZkServerWrapper to speed up test. [(#1156)](https://github.com/linkedin/ambry/pull/1156) + - Set network proxy in config rather than jvm args [(#1155)](https://github.com/linkedin/ambry/pull/1155) + - Combined cloud blob crypto service [(#1154)](https://github.com/linkedin/ambry/pull/1154) + - Provide option to use GetBlobOperation for BlobInfo [(#1153)](https://github.com/linkedin/ambry/pull/1153) + - Avoid calling clusterMap.getReplicas() in VCR mode. [(#1152)](https://github.com/linkedin/ambry/pull/1152) + - Add support for cluster name in request URI [(#1151)](https://github.com/linkedin/ambry/pull/1151) + - Introduce (un)satisfied request metrics to better evaluate availability [(#1150)](https://github.com/linkedin/ambry/pull/1150) + - Add metrics for AzureCloudDestination [(#1149)](https://github.com/linkedin/ambry/pull/1149) + - Add VirtualReplicatorClusterFactory and refactor endToEndCloudBackupTest SSL config. [(#1148)](https://github.com/linkedin/ambry/pull/1148) + - Fix intermittent index test failure [(#1146)](https://github.com/linkedin/ambry/pull/1146) + - Disable bucketing test temporarily [(#1145)](https://github.com/linkedin/ambry/pull/1145) + - Fix server startup failure due to invalid stats type [(#1143)](https://github.com/linkedin/ambry/pull/1143) + - Add VCRServer, StaticVCRCluster and tests [(#1142)](https://github.com/linkedin/ambry/pull/1142) + - Fix hostname mismatch issue in test. [(#1141)](https://github.com/linkedin/ambry/pull/1141) + - Add CloudBackupManger Implementation. [(#1140)](https://github.com/linkedin/ambry/pull/1140) + - Add CloudDestinationFactory to pass to CloudBackupManager [(#1139)](https://github.com/linkedin/ambry/pull/1139) + - Refactor VirtualReplicatorClusterMap to VirtualReplicatorCluster. [(#1137)](https://github.com/linkedin/ambry/pull/1137) + - Introduce CloudDataNode and CloudReplica [(#1136)](https://github.com/linkedin/ambry/pull/1136) + - Stats-related changes in aggregation tool and health report [(#1135)](https://github.com/linkedin/ambry/pull/1135) + - Refactor ReplicationManager and Introduce VirtualReplicatorCluster interface. [(#1134)](https://github.com/linkedin/ambry/pull/1134) + - Azure Backup: Write blob metadata into Azure CosmosDB [(#1133)](https://github.com/linkedin/ambry/pull/1133) + - Upgrade helix to 0.8.3 [(#1131)](https://github.com/linkedin/ambry/pull/1131) + - Support to pass externalAssetTag from HTTP header to NotificationSystem. [(#1130)](https://github.com/linkedin/ambry/pull/1130) + - Cloud blob store [(#1129)](https://github.com/linkedin/ambry/pull/1129) + - Introduce request handlers for account metadata [(#1126)](https://github.com/linkedin/ambry/pull/1126) + - Supporting cluster wide stats aggregation for partition class [(#1125)](https://github.com/linkedin/ambry/pull/1125) + - Added isBackedUp option for Container objects [(#1124)](https://github.com/linkedin/ambry/pull/1124) + - Avoid returning 416 when range end past blob [(#1123)](https://github.com/linkedin/ambry/pull/1123) + - Pass IdSigningService into SecurityServiceFactory [(#1120)](https://github.com/linkedin/ambry/pull/1120) + - Introducing secure path validation in Container [(#1119)](https://github.com/linkedin/ambry/pull/1119) + - Allow NettyServer to use its own ssl impl [(#1117)](https://github.com/linkedin/ambry/pull/1117) + - Make Bootstrap tool use Helix Cluster Manager for validation [(#1116)](https://github.com/linkedin/ambry/pull/1116) + - Introducing AmbryStatsReport to support multiple types of stats [(#1115)](https://github.com/linkedin/ambry/pull/1115) + - Fix size calculation in serializeString [(#1114)](https://github.com/linkedin/ambry/pull/1114) + - Address review comments on #1109 [(#1111)](https://github.com/linkedin/ambry/pull/1111) + - Add edit functionality to AccountUpdateTool [(#1110)](https://github.com/linkedin/ambry/pull/1110) + - Support for raw mode in GetBlobOptions [(#1109)](https://github.com/linkedin/ambry/pull/1109) + - Updating format version for Delete records [(#1108)](https://github.com/linkedin/ambry/pull/1108) + - Dump index tool fixes [(#1106)](https://github.com/linkedin/ambry/pull/1106) + - Warp data as many as possible in SSLTranmission#write(ByteBuffer) [(#1105)](https://github.com/linkedin/ambry/pull/1105) + - Merge recent kafka changes into SSLTransmission [(#1104)](https://github.com/linkedin/ambry/pull/1104) + - Make cluster manager initialization more resilient [(#1103)](https://github.com/linkedin/ambry/pull/1103) + - Two harmless changes for test and perf tuning. [(#1102)](https://github.com/linkedin/ambry/pull/1102) + - Populate correct blob size on getBlobInfo requests [(#1101)](https://github.com/linkedin/ambry/pull/1101) + - Changed BlobIdTransformer to enforce correct BlobIdProperty size for composite blobs [(#1100)](https://github.com/linkedin/ambry/pull/1100) + - Override BlobProperties blob size with the size field in metadata content [(#1099)](https://github.com/linkedin/ambry/pull/1099) + - Extract stitch request serde code [(#1098)](https://github.com/linkedin/ambry/pull/1098) + - Add metric to track number of SSL handshaking connections [(#1096)](https://github.com/linkedin/ambry/pull/1096) + - Add config for selecting PRNG algorithm in JdkSslFactory [(#1095)](https://github.com/linkedin/ambry/pull/1095) + - BlobIdTransformer now will transform the listed datachunk IDs in a metadata chunk [(#1094)](https://github.com/linkedin/ambry/pull/1094) + - Adding a container config for a whitelist of content types [(#1092)](https://github.com/linkedin/ambry/pull/1092) + - Changing impl of keeping sealed index segs in mem [(#1091)](https://github.com/linkedin/ambry/pull/1091) + - Granular (colo-level) update support in the Helix tool [(#1090)](https://github.com/linkedin/ambry/pull/1090) + - Improve CopyingAsyncWritableChannel for prod use [(#1088)](https://github.com/linkedin/ambry/pull/1088) + - [stitched uploads] Support stitch API in frontend [(#1087)](https://github.com/linkedin/ambry/pull/1087) + - Fix arg bug in AccountUpdateTool [(#1086)](https://github.com/linkedin/ambry/pull/1086) + - Adding tests to verify replication with different versions of BlobId behaves correctly [(#1085)](https://github.com/linkedin/ambry/pull/1085) + - Make cross-colo listening optional within Helix ClusterManager [(#1084)](https://github.com/linkedin/ambry/pull/1084) + - Introduce QuotaManager for rest requests. [(#1083)](https://github.com/linkedin/ambry/pull/1083) + - Make StaticClusterManager handle Replica_Unavailable server error [(#1082)](https://github.com/linkedin/ambry/pull/1082) + - [stitched uploads] Implement Router.stitchBlob() [(#1081)](https://github.com/linkedin/ambry/pull/1081) + - Deduplicate list of IDs received for GET [(#1080)](https://github.com/linkedin/ambry/pull/1080) + - Save local backup when using AccountUpdateTool [(#1079)](https://github.com/linkedin/ambry/pull/1079) + - Add more debug messages to catch bug related to SimpleOperationTracker. [(#1078)](https://github.com/linkedin/ambry/pull/1078) + - Fixing some config variables and a log message [(#1077)](https://github.com/linkedin/ambry/pull/1077) + - Use try-finally idiom with locks correctly [(#1076)](https://github.com/linkedin/ambry/pull/1076) + - Cancel scheduled persistor task when shutting down BlobStore [(#1075)](https://github.com/linkedin/ambry/pull/1075) + - Improving DumpIndexTool to detect crafted IDs and duplicates across keys if required [(#1074)](https://github.com/linkedin/ambry/pull/1074) + - Define Comparator at class level for certain classes that do not. [(#1073)](https://github.com/linkedin/ambry/pull/1073) + - Ensure MessageInfo deleted flag is set correctly for deleted messages [(#1072)](https://github.com/linkedin/ambry/pull/1072) + - Reporting extra dirs on disk [(#1071)](https://github.com/linkedin/ambry/pull/1071) + - Sending BlobInfo headers on getBlob() [(#1070)](https://github.com/linkedin/ambry/pull/1070) + - [Helix cluster manager] Nodes should initialize even if there are ZK Connectivity problems [(#1069)](https://github.com/linkedin/ambry/issues/1069) + - Fixing a bug in the replication metadata response logging [(#1067)](https://github.com/linkedin/ambry/pull/1067) + - Adding support at the frontend to get clustermap state [(#1066)](https://github.com/linkedin/ambry/pull/1066) + - Adding a method (and impls) to get a snapshot of the ClusterMap [(#1065)](https://github.com/linkedin/ambry/pull/1065) + - Disable router GetBlobOperation test involving Encryption [(#1064)](https://github.com/linkedin/ambry/pull/1064) + - Intermittent error in Router Tests [(#1063)](https://github.com/linkedin/ambry/issues/1063) + - Supporting getting specified types of stats report in BlobStoreStats [(#1062)](https://github.com/linkedin/ambry/pull/1062) + - Make replication GetRequest fetch deleted and expired blobs [(#1060)](https://github.com/linkedin/ambry/pull/1060) + - Reducing logging size + metrics for size tracking for metadata response [(#1059)](https://github.com/linkedin/ambry/pull/1059) + - Make SecurityService.postProcessRequest call async [(#1058)](https://github.com/linkedin/ambry/pull/1058) + - [Move Replica] Enable StatsManager to dynamically add/remove store [(#1057)](https://github.com/linkedin/ambry/pull/1057) + - Separating unconditional throttle cfg b/w inter & intra dc replica threads [(#1056)](https://github.com/linkedin/ambry/pull/1056) + - Separate throttling control for remote and local replication [(#1055)](https://github.com/linkedin/ambry/issues/1055) + - Ignore dynamic fields when comparing InstanceConfigs [(#1053)](https://github.com/linkedin/ambry/pull/1053) + - Introduce shorter blob ID (V6) [(#1051)](https://github.com/linkedin/ambry/pull/1051) + - Making TTL required true by default for containers [(#1050)](https://github.com/linkedin/ambry/pull/1050) + - Temporarily suppress logging of replication messages [(#1049)](https://github.com/linkedin/ambry/pull/1049) + - Adding metrics and logging for replica thread throttling [(#1045)](https://github.com/linkedin/ambry/pull/1045) + - Keep track of error occurred instances during stats aggregation [(#1044)](https://github.com/linkedin/ambry/pull/1044) + - Set default replication throttling sleep configs to 0 [(#1043)](https://github.com/linkedin/ambry/pull/1043) + - Preserve CRCs in messages when they are transformed during replication [(#1042)](https://github.com/linkedin/ambry/pull/1042) + - Add error message in clusterwide stats aggregation [(#1041)](https://github.com/linkedin/ambry/pull/1041) + - Attach tracking info to frontend responses [(#1040)](https://github.com/linkedin/ambry/pull/1040) + - Make server detect Disk_Unavailable correctly [(#1039)](https://github.com/linkedin/ambry/pull/1039) + - Make router handle Replica_Unavailable properly [(#1038)](https://github.com/linkedin/ambry/pull/1038) + - Fixing a bug with upgrade tool-partition class interaction [(#1037)](https://github.com/linkedin/ambry/pull/1037) + - StoreCopier now warms up transformer i.e. allows it to invoke batched… [(#1035)](https://github.com/linkedin/ambry/pull/1035) + - Add support for xid in the bootstrap tool [(#1033)](https://github.com/linkedin/ambry/pull/1033) + - Enhance frontend config to allow flexible upload and download endpoints for signing [(#1032)](https://github.com/linkedin/ambry/pull/1032) + - Adding bootstrap functionality to Journal [(#1029)](https://github.com/linkedin/ambry/pull/1029) + - Fix the random NPE in xidTest [(#1028)](https://github.com/linkedin/ambry/pull/1028) + - Fixing bugs with TTL updates [(#1027)](https://github.com/linkedin/ambry/pull/1027) + - Prevent busy polling in replication thread [(#1026)](https://github.com/linkedin/ambry/pull/1026) + - Catch disk I/O errors and dynamically shutdown BlobStore [(#1025)](https://github.com/linkedin/ambry/pull/1025) + - Increase timeout to pass test. [(#1024)](https://github.com/linkedin/ambry/pull/1024) + - Add support for xids in the cluster manager [(#1023)](https://github.com/linkedin/ambry/pull/1023) + - [stitched uploads] Support individual datachunk upload [(#1022)](https://github.com/linkedin/ambry/pull/1022) + - Add Account and Container to NotificationSystem [(#1021)](https://github.com/linkedin/ambry/pull/1021) + - Add V5 support to BlobID.getLongForm() [(#1020)](https://github.com/linkedin/ambry/pull/1020) + - Adding support for TTL updates in StoreCopier [(#1019)](https://github.com/linkedin/ambry/pull/1019) + - Adding a config for providing a default GetOption at the frontend [(#1018)](https://github.com/linkedin/ambry/pull/1018) + - Adding ttl required setting to container config [(#1017)](https://github.com/linkedin/ambry/pull/1017) + - Add accountName/containerName to NotificationSystem [(#1016)](https://github.com/linkedin/ambry/pull/1016) + - Use BlobId data type to optimize Delete and UpdateTTL operations [(#1015)](https://github.com/linkedin/ambry/pull/1015) + - Frontend connections warm up in booting up. [(#1014)](https://github.com/linkedin/ambry/pull/1014) + - Fixed logs in ambry-tools, ReplicaThread bug [(#1013)](https://github.com/linkedin/ambry/pull/1013) + - Supporting TTL updates in BlobStoreStats [(#1011)](https://github.com/linkedin/ambry/pull/1011) + - Adding Router integration tests for TTL update [(#1010)](https://github.com/linkedin/ambry/pull/1010) + - Adding server integration tests for TTL update [(#1009)](https://github.com/linkedin/ambry/pull/1009) + - Added deprecated blob count logging in ConsistencyCheckerTool [(#1008)](https://github.com/linkedin/ambry/pull/1008) + - Fix a bug of AUTH_FAILURE in RouterServerTestFramework [(#1006)](https://github.com/linkedin/ambry/pull/1006) + - Fixing bugs with some GET and TTL update paths [(#1005)](https://github.com/linkedin/ambry/pull/1005) + - Instantiate Notifier in HelixAccountServiceFactory ctor [(#1003)](https://github.com/linkedin/ambry/pull/1003) + - Map Server Blob_Authorization_Failure to Router. [(#1002)](https://github.com/linkedin/ambry/pull/1002) + - Fix bug in appendFrom [(#1000)](https://github.com/linkedin/ambry/pull/1000) + - Some fixes after commons upgraded [(#999)](https://github.com/linkedin/ambry/pull/999) + - Do larger IO for putRequest [(#998)](https://github.com/linkedin/ambry/pull/998) + - Supporting replication of TTL updates [(#997)](https://github.com/linkedin/ambry/pull/997) + - InputStream implementations should honor contract. [(#995)](https://github.com/linkedin/ambry/pull/995) + - Adding support for TTL update in AmbryRequests [(#993)](https://github.com/linkedin/ambry/pull/993) + - Increasing timeout and allowed mem usage for integration tests [(#992)](https://github.com/linkedin/ambry/pull/992) + - Provide the option to use direct IO in compaction. [(#991)](https://github.com/linkedin/ambry/pull/991) + - Fix NullPointerException during Stats Aggregation [(#990)](https://github.com/linkedin/ambry/pull/990) + - Added StoreKeyConverter support to replication [(#989)](https://github.com/linkedin/ambry/pull/989) + - Introducing "Replica_Unavailable" as a new type of ServerErrorCode [(#988)](https://github.com/linkedin/ambry/pull/988) + - Providing a configuration for keeping the index in memory [(#987)](https://github.com/linkedin/ambry/pull/987) + - Handling a recovery case that wasn't handled before [(#986)](https://github.com/linkedin/ambry/pull/986) + - Introduce PutBlobOptions in router API [(#983)](https://github.com/linkedin/ambry/pull/983) + - Changed StoreKeyConverter interface to support caching [(#982)](https://github.com/linkedin/ambry/pull/982) + - Added BlobIdTransformer and test [(#980)](https://github.com/linkedin/ambry/pull/980) + - Changes to BlobStoreCompactor to handle TTL update records [(#978)](https://github.com/linkedin/ambry/pull/978) + - Changes to Store to support TTL updates [(#977)](https://github.com/linkedin/ambry/pull/977) + - Simplify bloom filter generation when initializing IndexSegment [(#976)](https://github.com/linkedin/ambry/pull/976) + - StoreKeyConverter returned map can now have null values... [(#975)](https://github.com/linkedin/ambry/pull/975) + - Add bits for BlobDataType in BlobId flag. [(#973)](https://github.com/linkedin/ambry/pull/973) + - Add support for message transformation during replication [(#970)](https://github.com/linkedin/ambry/pull/970) + - Generate bloom file and persist when initializing existing IndexSegment [(#969)](https://github.com/linkedin/ambry/pull/969) + - Add metrics for indexSegments and replication get request. [(#968)](https://github.com/linkedin/ambry/pull/968) + - Adding new server error codes [(#967)](https://github.com/linkedin/ambry/pull/967) + - Adding support for notifications for replication of TTL updates [(#966)](https://github.com/linkedin/ambry/pull/966) + - Adding support for partition override as rollback plan [(#965)](https://github.com/linkedin/ambry/pull/965) + - Adding some debugging messages to help debug a build failure [(#964)](https://github.com/linkedin/ambry/pull/964) + - Do storeKey conversion for keys in GET/DELETE requests [(#961)](https://github.com/linkedin/ambry/pull/961) + - Added equals() impl for MessageInfo [(#960)](https://github.com/linkedin/ambry/pull/960) + - Fix for replication bug with empty store [(#959)](https://github.com/linkedin/ambry/pull/959) + - Supporting TTL update at the frontend [(#958)](https://github.com/linkedin/ambry/pull/958) + - Separate hard delete rate from compaction rate. [(#957)](https://github.com/linkedin/ambry/pull/957) + - Add an option for NettyPerfClient to read blobIds in file. [(#956)](https://github.com/linkedin/ambry/pull/956) + - Max size for getIndexEntries() should be Long.MAX_VALUE [(#955)](https://github.com/linkedin/ambry/pull/955) + - Improve build performance, minor fixes [(#954)](https://github.com/linkedin/ambry/pull/954) + - StoreKeyConverter in ambry-tools, changed StoreKeyConverter interface slightly [(#953)](https://github.com/linkedin/ambry/pull/953) + - Refactor postBlob code into handler class [(#951)](https://github.com/linkedin/ambry/pull/951) + - Compaction read buffer size can be same as clean up rate [(#950)](https://github.com/linkedin/ambry/pull/950) + - store.compaction.min.buffer.size minimum value can be 0 [(#949)](https://github.com/linkedin/ambry/pull/949) + - Disable compaction bundle read if storeCompactionMinBufferSize is 0 [(#948)](https://github.com/linkedin/ambry/pull/948) + - Add metrics for compaction bundle read. [(#947)](https://github.com/linkedin/ambry/pull/947) + - Made ctors for MessageFormatInputStream test impls public [(#946)](https://github.com/linkedin/ambry/pull/946) + - Public test input streams [(#945)](https://github.com/linkedin/ambry/pull/945) + - Adding TTL update support at the Router [(#944)](https://github.com/linkedin/ambry/pull/944) + - Fixes and enhancements to MessageInfoAndMetadataListSerde [(#943)](https://github.com/linkedin/ambry/pull/943) + - Adding ttl update to the notification system [(#942)](https://github.com/linkedin/ambry/pull/942) + - Cleanup replication code [(#939)](https://github.com/linkedin/ambry/pull/939) + - Wired in StoreKeyConverterFactory [(#938)](https://github.com/linkedin/ambry/pull/938) + - Updating PersistentIndex to handle TTL update entries [(#937)](https://github.com/linkedin/ambry/pull/937) + - Changed ctor for StoreKeyConverterFactoryImpl to match common pattern… [(#936)](https://github.com/linkedin/ambry/pull/936) + - Added string build method for StoreKeyFactory interface [(#935)](https://github.com/linkedin/ambry/pull/935) + - Using the repl policy in container to choose partition [(#934)](https://github.com/linkedin/ambry/pull/934) + - StoreKeyConverter default implementations [(#933)](https://github.com/linkedin/ambry/pull/933) + - MessageFormatInputStream does not conform with InputStream [(#932)](https://github.com/linkedin/ambry/issues/932) + - Introduce BufferedInputStream for non MessageFormatFlags.All cases. [(#931)](https://github.com/linkedin/ambry/pull/931) + - Do bundled read in compaction copy phase. [(#930)](https://github.com/linkedin/ambry/pull/930) + - Introducing "STOPPED" replicas list into Helix InstanceConfig [(#929)](https://github.com/linkedin/ambry/pull/929) + - Add all replicas to OperationTracker if originating DC is unknown [(#928)](https://github.com/linkedin/ambry/pull/928) + - Resolves possible race conditions for PartitionsState on init [(#927)](https://github.com/linkedin/ambry/pull/927) + - Adding a ttlUpdated field in MessageInfo [(#926)](https://github.com/linkedin/ambry/pull/926) + - Added IOException to Transformer interface [(#922)](https://github.com/linkedin/ambry/pull/922) + - Remove subMap to flattern Stats Report [(#921)](https://github.com/linkedin/ambry/pull/921) + - Allowing for multiple values for the same key in IndexSegment [(#920)](https://github.com/linkedin/ambry/pull/920) + - Adding replication policy to container config [(#919)](https://github.com/linkedin/ambry/pull/919) + - Updates to Helix Cluster Map Update tool [(#918)](https://github.com/linkedin/ambry/pull/918) + - Fix statsBasedCompaction comparator bug [(#917)](https://github.com/linkedin/ambry/pull/917) + - Fix PartitionManager by adding the serverPropsFilePath option (#692) [(#914)](https://github.com/linkedin/ambry/pull/914) + - Add option to add customized http header for NettyPerfClient. [(#912)](https://github.com/linkedin/ambry/pull/912) + - Added StoreKeyConverter and StoreKeyConverterFactory interfaces (#910) [(#911)](https://github.com/linkedin/ambry/pull/911) + - Adding StoreKeyConverter and StoreKeyConverterFactory interfaces [(#910)](https://github.com/linkedin/ambry/issues/910) + - Add optional hint to include exception message in response [(#909)](https://github.com/linkedin/ambry/pull/909) + - Modify selector metrics to remove timeout cases. [(#908)](https://github.com/linkedin/ambry/pull/908) + - Add optional native SSL support [(#907)](https://github.com/linkedin/ambry/pull/907) + - Initialize HelixAdmin in constructor and re-assign it during participation [(#906)](https://github.com/linkedin/ambry/pull/906) + - Add logs to track Seal/Unseal BlobStore [(#904)](https://github.com/linkedin/ambry/pull/904) + - Adding request/response protocol for TTL updates [(#903)](https://github.com/linkedin/ambry/pull/903) + - Introducing the concept of "partition class" [(#902)](https://github.com/linkedin/ambry/pull/902) + - Improve Helix Update tool [(#901)](https://github.com/linkedin/ambry/pull/901) + - Blob_Id_V3 encrypted bit decommission. [(#899)](https://github.com/linkedin/ambry/pull/899) + - Introduce BLOB_ID_V4 and routerBlobidCurrentVersion is still 3. [(#898)](https://github.com/linkedin/ambry/pull/898) + - Introducing a UpdateRecord [(#897)](https://github.com/linkedin/ambry/pull/897) + - Explicitly ignore dynamic new node additions [(#896)](https://github.com/linkedin/ambry/pull/896) + - Change rackId field to a string [(#895)](https://github.com/linkedin/ambry/pull/895) + - Adding a message format for TTL update [(#894)](https://github.com/linkedin/ambry/pull/894) + - Add Conditional Delete in frontend [(#893)](https://github.com/linkedin/ambry/pull/893) + - Zero copy alternative: data pre-fetch. [(#892)](https://github.com/linkedin/ambry/pull/892) + - fix metric bug for get/put processingTimeBySize [(#891)](https://github.com/linkedin/ambry/pull/891) + - Add a ServerAdminTool to control BlobStore [(#889)](https://github.com/linkedin/ambry/pull/889) + - Making the starts with check for user metadata case insensitive [(#887)](https://github.com/linkedin/ambry/pull/887) + - Fixes a bug and removes/changes some configs [(#885)](https://github.com/linkedin/ambry/pull/885) + - Add start BlobStore API on server side [(#884)](https://github.com/linkedin/ambry/pull/884) + - Skip accountId and containerId check if blobId version is 1. [(#881)](https://github.com/linkedin/ambry/pull/881) + - Introduce Stop BlobStore API on server side [(#880)](https://github.com/linkedin/ambry/pull/880) + - Disable compaction on given store in CompactionManager [(#879)](https://github.com/linkedin/ambry/pull/879) + - Prioritize error code in GET/PUT operations [(#877)](https://github.com/linkedin/ambry/pull/877) + - Add metrics to track blob access not in local datacenter [(#876)](https://github.com/linkedin/ambry/pull/876) + - Separating out 500s into 500, 503 and 507 [(#873)](https://github.com/linkedin/ambry/pull/873) + - Set storeValidateAuthorization default value false. (#871) [(#872)](https://github.com/linkedin/ambry/pull/872) + - Fixing a bug with ensuring account and container injected [(#870)](https://github.com/linkedin/ambry/pull/870) + - Fixing a mem leak in DiskReformatter [(#869)](https://github.com/linkedin/ambry/pull/869) + - Map store Authorization_Failure to HTTP Forbidden. (#860) [(#867)](https://github.com/linkedin/ambry/pull/867) + - Expose static method for getting blob ID version [(#866)](https://github.com/linkedin/ambry/pull/866) + - Making more classes required for SecurityServiceFactory public [(#865)](https://github.com/linkedin/ambry/pull/865) + - Removed untimed waits and fixing a test [(#864)](https://github.com/linkedin/ambry/pull/864) + - Making the constructor of AcctAndContInj protected [(#863)](https://github.com/linkedin/ambry/pull/863) + - Sending a clustermap and accntInjector to the SecurityServiceFactory [(#862)](https://github.com/linkedin/ambry/pull/862) + - Add SSL handshake and first byte metrics [(#861)](https://github.com/linkedin/ambry/pull/861) + - Fixing a metric name in Non Blocking Router [(#859)](https://github.com/linkedin/ambry/pull/859) + - Validate accountId and containerId in store server. [(#857)](https://github.com/linkedin/ambry/pull/857) + - Adding some more logging in tests to debug #855 [(#856)](https://github.com/linkedin/ambry/pull/856) + - Exposing encrypted info about blob in response headers [(#854)](https://github.com/linkedin/ambry/pull/854) + - Counting aborts due to inactive channels as client disconnects [(#853)](https://github.com/linkedin/ambry/pull/853) + - Ensure response body closed on SecurityService::processResponse errors. [(#849)](https://github.com/linkedin/ambry/pull/849) + - Changing store options when fetching blobs in StoreCopier [(#848)](https://github.com/linkedin/ambry/pull/848) + - Adding check for instanceConfig == null to setSealedReplicas [(#847)](https://github.com/linkedin/ambry/pull/847) + - Fix AccountUpdateTool test case [(#846)](https://github.com/linkedin/ambry/pull/846) + - Updating DiskReformatter to copy partition files to scratch disk in atomic fashion [(#844)](https://github.com/linkedin/ambry/pull/844) + - Log thread death reasons instead of printing [(#843)](https://github.com/linkedin/ambry/pull/843) + - Adding some info to a test failure [(#842)](https://github.com/linkedin/ambry/pull/842) + - Set default container json version to 2 [(#841)](https://github.com/linkedin/ambry/pull/841) + - BlobId getVersion() should be public to support tools (#839) [(#840)](https://github.com/linkedin/ambry/pull/840) + - Add support for parsing BlobId preamble without a clustermap [(#837)](https://github.com/linkedin/ambry/pull/837) + - Fix an incorrect default in RouterConfig documentation [(#830)](https://github.com/linkedin/ambry/pull/830) + - Add support for BlobId crafting [(#829)](https://github.com/linkedin/ambry/pull/829) + - Select remote datacenter when not found locally [(#827)](https://github.com/linkedin/ambry/pull/827) + - Treating one more exception message as a client disconnect [(#824)](https://github.com/linkedin/ambry/pull/824) + - Adding encrypted info in the BlobId flag [(#822)](https://github.com/linkedin/ambry/pull/822) + - Adding CryptoJobMetrics and Tracker to track detailed crypto job metrics [(#821)](https://github.com/linkedin/ambry/pull/821) + - Add account versioning and local backup on updates [(#818)](https://github.com/linkedin/ambry/pull/818) + - Adding encryption key comparison in BlobValidator [(#817)](https://github.com/linkedin/ambry/pull/817) + - Adding metrics for Encryption [(#816)](https://github.com/linkedin/ambry/pull/816) + - Adding a required config to the examples [(#815)](https://github.com/linkedin/ambry/pull/815) + - Frontend not starting with QuickStart Description: Missing kms.default.container.key [(#814)](https://github.com/linkedin/ambry/issues/814) + - Adding support to NettyPerfCient to target account and container [(#813)](https://github.com/linkedin/ambry/pull/813) + - Add AccountUpdateTool option to specify container version [(#812)](https://github.com/linkedin/ambry/pull/812) + - Stop logging client cert when client auth is not required [(#810)](https://github.com/linkedin/ambry/pull/810) + - Disabling another stats test that fails intermittently [(#808)](https://github.com/linkedin/ambry/pull/808) + - Adding a preprocess step in security service [(#807)](https://github.com/linkedin/ambry/pull/807) + - Config for limiting size of multipart POST requests [(#806)](https://github.com/linkedin/ambry/pull/806) + - Fixing a bug with injection of metrics [(#805)](https://github.com/linkedin/ambry/pull/805) + - Adding support for OPTIONS [(#804)](https://github.com/linkedin/ambry/pull/804) + - Introduce BlobId V3 and the idea of native and crafted ids [(#803)](https://github.com/linkedin/ambry/pull/803) + - Problem with setting up HTTPS for ambry-frontend [(#802)](https://github.com/linkedin/ambry/issues/802) + - Adding encryption support to Router [(#801)](https://github.com/linkedin/ambry/pull/801) + - Enabling new HeaderFormat, BlobKeyRecord, GetResponse, ReplicaMetadata version [(#800)](https://github.com/linkedin/ambry/pull/800) + - Make account name matching error clearer. [(#798)](https://github.com/linkedin/ambry/pull/798) + - Add alloc/free time metrics to DiskSpaceAllocator [(#796)](https://github.com/linkedin/ambry/pull/796) + - Added option to disable reverse DNS lookups. [(#795)](https://github.com/linkedin/ambry/pull/795) + - Setting a valid datacenter ID in the blob ID [(#794)](https://github.com/linkedin/ambry/pull/794) + - Added enable config for dynamic seal/unseal BlobStore [(#793)](https://github.com/linkedin/ambry/pull/793) + - Add read support for V2 container schema [(#792)](https://github.com/linkedin/ambry/pull/792) + - Tracking the age of a blob at its time of access [(#791)](https://github.com/linkedin/ambry/pull/791) + - Bumping up Helix version [(#789)](https://github.com/linkedin/ambry/pull/789) + - Adding the ability to create signed URLs [(#786)](https://github.com/linkedin/ambry/pull/786) + - Adding some more handling for recognizing client disconnects [(#785)](https://github.com/linkedin/ambry/pull/785) + - Add Message Format support for encryption [(#782)](https://github.com/linkedin/ambry/pull/782) + - Allows CatchupStatus req to spec num replicas that hv to be caught up [(#780)](https://github.com/linkedin/ambry/pull/780) + - BlobStore changes to support dynamic Read-Write/Read-Only change (#771) [(#779)](https://github.com/linkedin/ambry/pull/779) + - Counting client resets separately from actual internal errors [(#778)](https://github.com/linkedin/ambry/pull/778) + - Add tool to generate accounts for existing service IDs [(#777)](https://github.com/linkedin/ambry/pull/777) + - Fixing the index segment size check when writing PersistentIndex [(#776)](https://github.com/linkedin/ambry/pull/776) + - Fixing building UberJar [(#775)](https://github.com/linkedin/ambry/pull/775) + - Enabling PutRequestV4 [(#774)](https://github.com/linkedin/ambry/pull/774) + - Making sure ordering of tests does not matter for BlobStorage tests [(#773)](https://github.com/linkedin/ambry/pull/773) + - Ensuring that admin commands run only on partitions on the node [(#772)](https://github.com/linkedin/ambry/pull/772) + - Added 'setReplicaSealedState' to ClusterParticipant (#737) [(#771)](https://github.com/linkedin/ambry/pull/771) + - Fixing KMSFactory and CryptoServiceFacotry's constructor [(#770)](https://github.com/linkedin/ambry/pull/770) + - Aggregating most store metrics across all stores [(#769)](https://github.com/linkedin/ambry/pull/769) + - Fixing a bug with the use of MetricRegistry [(#768)](https://github.com/linkedin/ambry/pull/768) + - Make MockSSLSession constructor public [(#764)](https://github.com/linkedin/ambry/pull/764) + - Adding account and container names to BlobInfo and HEAD response [(#763)](https://github.com/linkedin/ambry/pull/763) + - Add AccessDenied error code and ambry-error-code header [(#762)](https://github.com/linkedin/ambry/pull/762) + - Ensure that router logs system health errors [(#761)](https://github.com/linkedin/ambry/pull/761) + - Adding CryptoJobHandler to assist in encryting and decrypting content [(#760)](https://github.com/linkedin/ambry/pull/760) + - Add support for encryption keys in the protocol [(#759)](https://github.com/linkedin/ambry/pull/759) + - Ensuring that the private blob properties matches that of the container [(#758)](https://github.com/linkedin/ambry/pull/758) + - Improving DumpIndexTool - can be used as both standalone tool or library [(#757)](https://github.com/linkedin/ambry/pull/757) + - Adding a tool that ensures a storage node's peers have caught up [(#754)](https://github.com/linkedin/ambry/pull/754) + - Changing behavior of ReplControl for empty origin list input [(#753)](https://github.com/linkedin/ambry/pull/753) + - Fix the test failure in serverTest. [(#752)](https://github.com/linkedin/ambry/pull/752) + - Change constructor for MockHelixAccountServiceFactory by default to use MockHelixPropertyStore [(#751)](https://github.com/linkedin/ambry/pull/751) + - Adding more fine grained percentage reporting [(#750)](https://github.com/linkedin/ambry/pull/750) + - Adding verification and logging to include accountId and containerId in tools [(#749)](https://github.com/linkedin/ambry/pull/749) + - Add blacklist for query parameters [(#748)](https://github.com/linkedin/ambry/pull/748) + - Fix race condition between notification and updating account. [(#745)](https://github.com/linkedin/ambry/pull/745) + - Adding support for log4j in tests [(#744)](https://github.com/linkedin/ambry/pull/744) + - Enable BlobId v2 write. [(#743)](https://github.com/linkedin/ambry/pull/743) + - Adds background thread to pull account updates from ZK [(#742)](https://github.com/linkedin/ambry/pull/742) + - Introduce an API to get catchup status of peers [(#741)](https://github.com/linkedin/ambry/pull/741) + - Renaming DefaultCompactionPolicy to StatsBasedCompactionPolicy [(#739)](https://github.com/linkedin/ambry/pull/739) + - Reflect changes in operation name in readme [(#736)](https://github.com/linkedin/ambry/pull/736) + - Adding a metric to track the number of bytes saved by compaction [(#735)](https://github.com/linkedin/ambry/pull/735) + - Fix NPE when building blobProperties without account and container [(#733)](https://github.com/linkedin/ambry/pull/733) + - Print partition ids when logging Put and Delete requests [(#732)](https://github.com/linkedin/ambry/pull/732) + - Makes notifier nullable for HelixAccountService [(#730)](https://github.com/linkedin/ambry/pull/730) + - Fix intermittent failure in HelixAccountServiceTest [(#729)](https://github.com/linkedin/ambry/pull/729) + - Enabling MessageInfoList V3 and DeleteMessageFormat V2 [(#728)](https://github.com/linkedin/ambry/pull/728) + - Moving a non-error in replication to trace logging [(#727)](https://github.com/linkedin/ambry/pull/727) + - fix a bug in accountUpdateTool [(#725)](https://github.com/linkedin/ambry/pull/725) + - Enable Blob props V2 and Delete Request V2 (write) [(#724)](https://github.com/linkedin/ambry/pull/724) + - Improves equal check for account and container [(#723)](https://github.com/linkedin/ambry/pull/723) + - Adds Listener for AccountService [(#722)](https://github.com/linkedin/ambry/pull/722) + - More unit test cases to ensure LogSegment ordering [(#721)](https://github.com/linkedin/ambry/pull/721) + - Adds better logging for HelixAccountService [(#718)](https://github.com/linkedin/ambry/pull/718) + - Introducing ability to control replication from certain DCs [(#717)](https://github.com/linkedin/ambry/pull/717) + - More sanity checks for compactor [(#714)](https://github.com/linkedin/ambry/pull/714) + - Improving the sanity check in BlobStoreCompactor [(#712)](https://github.com/linkedin/ambry/pull/712) + - Changing to compactAllPolicy because of a bug in stats [(#711)](https://github.com/linkedin/ambry/pull/711) + - Adding KeyManagementService and CryptoService interface and default impl [(#710)](https://github.com/linkedin/ambry/pull/710) + - Fixing a build failure due to runtime class dependencies [(#709)](https://github.com/linkedin/ambry/pull/709) + - Add wiring to pass AccountService to SecurityService [(#708)](https://github.com/linkedin/ambry/pull/708) + - Refactoring some tools [(#707)](https://github.com/linkedin/ambry/pull/707) + - Revert "Removes InMemoryUnknownAccountService" [(#706)](https://github.com/linkedin/ambry/pull/706) + - Removes InMemoryUnknownAccountService [(#705)](https://github.com/linkedin/ambry/pull/705) + - Adding a tool that can copy data from one store to another [(#704)](https://github.com/linkedin/ambry/pull/704) + - Ensure that known data chunk deletions do not initiate background deletes [(#703)](https://github.com/linkedin/ambry/pull/703) + - Rewriting replication test to make it more concise [(#702)](https://github.com/linkedin/ambry/pull/702) + - Adds two default containers for UNKNOWN_ACCOUNT [(#701)](https://github.com/linkedin/ambry/pull/701) + - Use padding to support different key sizes in the same segment [(#698)](https://github.com/linkedin/ambry/pull/698) + - Integrates AccountService with Frontend. [(#697)](https://github.com/linkedin/ambry/pull/697) + - Add postProcessRequest to SecurityService [(#696)](https://github.com/linkedin/ambry/pull/696) + - Generates meaningful blob ids in InMemory router [(#695)](https://github.com/linkedin/ambry/pull/695) + - Adding an API to disable requests selectively at storage server [(#694)](https://github.com/linkedin/ambry/pull/694) + - Moves InMemoryRouter to router module. [(#693)](https://github.com/linkedin/ambry/pull/693) + - PartitionManager not working [(#692)](https://github.com/linkedin/ambry/issues/692) + - fix error message in Utils.preAllocateFileIfNeeded [(#691)](https://github.com/linkedin/ambry/pull/691) + - Introduces InMemoryUnknownAccountService [(#690)](https://github.com/linkedin/ambry/pull/690) + - Adds unknown account and container. [(#689)](https://github.com/linkedin/ambry/pull/689) + - Removing issuer/creator AccountId from BlobPropertiesV2 [(#688)](https://github.com/linkedin/ambry/pull/688) + - CLI tool to create or update accounts. [(#687)](https://github.com/linkedin/ambry/pull/687) + - Addressing comments from PR 606 (Cluster wide stats aggregation [(#686)](https://github.com/linkedin/ambry/pull/686) + - Make ContainerBlobsResource public [(#685)](https://github.com/linkedin/ambry/pull/685) + - Fix an incorrect assumption made by Helix Cluster Manager [(#684)](https://github.com/linkedin/ambry/pull/684) + - Adding more logging to threads in case of crashes [(#683)](https://github.com/linkedin/ambry/pull/683) + - Fixing logging in BlobStoreStats [(#682)](https://github.com/linkedin/ambry/pull/682) + - Moving admin functions to frontend [(#680)](https://github.com/linkedin/ambry/pull/680) + - Fixing rare condition test failure in MessageFormatRecordTest [(#678)](https://github.com/linkedin/ambry/pull/678) + - Fix a test failure [(#677)](https://github.com/linkedin/ambry/pull/677) + - Add AclService interfaces [(#676)](https://github.com/linkedin/ambry/pull/676) + - Adding more logging to StoreStats and CompactionPolicy [(#674)](https://github.com/linkedin/ambry/pull/674) + - Removes HelixPropertyStoreFactory [(#672)](https://github.com/linkedin/ambry/pull/672) + - Giving operation names public visibility [(#671)](https://github.com/linkedin/ambry/pull/671) + - Making some ServerAdminTool methods public [(#670)](https://github.com/linkedin/ambry/pull/670) + - Adds AccountService and AccountServiceFactory interfaces. [(#669)](https://github.com/linkedin/ambry/pull/669) + - commenting out a faulty test [(#665)](https://github.com/linkedin/ambry/pull/665) + - Adding codecov [(#664)](https://github.com/linkedin/ambry/pull/664) + - Unit test intermittently fails. [(#663)](https://github.com/linkedin/ambry/issues/663) + - Adding build and license badges [(#662)](https://github.com/linkedin/ambry/pull/662) + - Introduces AccountService. [(#661)](https://github.com/linkedin/ambry/pull/661) + - Adding travis-ci config [(#659)](https://github.com/linkedin/ambry/pull/659) + - Fixing server tests that were failing intermittently [(#658)](https://github.com/linkedin/ambry/pull/658) + - Adding more trace statements for router operations [(#657)](https://github.com/linkedin/ambry/pull/657) + - Disable a failing test [(#656)](https://github.com/linkedin/ambry/pull/656) + - Making modifications for Throttler to check rate on every call [(#654)](https://github.com/linkedin/ambry/pull/654) + - Use java TimeUnit enum instead of raw multiplication for time unit conversions (#597) [(#653)](https://github.com/linkedin/ambry/pull/653) + - Refactoring of tools [(#652)](https://github.com/linkedin/ambry/pull/652) + - Enable CRCs in the protocol [(#651)](https://github.com/linkedin/ambry/pull/651) + - Introducing new MessageInfoList version with AccountId, containerId and opTime [(#650)](https://github.com/linkedin/ambry/pull/650) + - 1. Adding new DeleteRecord V2 and DeleteRequest protocol V2 [(#649)](https://github.com/linkedin/ambry/pull/649) + - Adding new BlobProperties V2 with accountId and containerId [(#648)](https://github.com/linkedin/ambry/pull/648) + - Introduce DiskSpaceAllocator [(#647)](https://github.com/linkedin/ambry/pull/647) + - Blob id v2 [(#646)](https://github.com/linkedin/ambry/pull/646) + - Adding a config to selectively enable different compaction triggers [(#645)](https://github.com/linkedin/ambry/pull/645) + - Add support for dynamically updating partition sealed state. [(#644)](https://github.com/linkedin/ambry/pull/644) + - Additional speed up in cluster manager initialization [(#643)](https://github.com/linkedin/ambry/pull/643) + - Set Java 8 as the minimum supported JVM version [(#642)](https://github.com/linkedin/ambry/pull/642) + - Changing HardDeleter to use DiskIOScheduler instead of Throttler [(#641)](https://github.com/linkedin/ambry/pull/641) + - Speed up cluster manager initialization [(#640)](https://github.com/linkedin/ambry/pull/640) + - Storing the offset for delete check in compaction log [(#639)](https://github.com/linkedin/ambry/pull/639) + - Introducing support for getting peers of a given data node [(#638)](https://github.com/linkedin/ambry/pull/638) + - Avoid empty Get requests in replication [(#634)](https://github.com/linkedin/ambry/pull/634) + - Fix broken url to "Better Bloom Filter" paper [(#633)](https://github.com/linkedin/ambry/pull/633) + - Making some tests methods public/protected for building tools over Ambry [(#631)](https://github.com/linkedin/ambry/pull/631) + - Making StoreToolsMetric constructor public [(#630)](https://github.com/linkedin/ambry/pull/630) + - Introduces Notifier and TopicListener [(#629)](https://github.com/linkedin/ambry/pull/629) + - Inflates Account and Container from Json Metadata [(#628)](https://github.com/linkedin/ambry/pull/628) + - Adding some extra tests for the compactor [(#626)](https://github.com/linkedin/ambry/pull/626) + - Making some test methods and classes public for building tools on top of Ambry [(#625)](https://github.com/linkedin/ambry/pull/625) + - Introduces Account module. [(#624)](https://github.com/linkedin/ambry/pull/624) + - Exposing tests as separate jars [(#623)](https://github.com/linkedin/ambry/pull/623) + - 1. Adding log msgs in HardDeleter. 2. Fixing throttler in store tools [(#622)](https://github.com/linkedin/ambry/pull/622) + - Fix 3 lgtm.com alerts: do not test reference equality, fix int overflow [(#620)](https://github.com/linkedin/ambry/pull/620) + - Change Ambry open source code to support PUT method. [(#619)](https://github.com/linkedin/ambry/pull/619) + - Shutting down all stores in a disk in parallel [(#618)](https://github.com/linkedin/ambry/pull/618) + - Utility to verify compaction + fixes for bugs found [(#617)](https://github.com/linkedin/ambry/pull/617) + - Remove blob size requirement in the frontend [(#616)](https://github.com/linkedin/ambry/pull/616) + - Adding store metrics to track shutdown times [(#615)](https://github.com/linkedin/ambry/pull/615) + - Adding getAllPartitions() to ClusterMap [(#614)](https://github.com/linkedin/ambry/pull/614) + - Fixing some bugs with the AdaptiveOperationTracker [(#613)](https://github.com/linkedin/ambry/pull/613) + - Adding a few startup log messages for HelixClusterManager [(#612)](https://github.com/linkedin/ambry/pull/612) + - Making the operation tracker for GET configurable [(#611)](https://github.com/linkedin/ambry/pull/611) + - Fix Utils#addSecondsToEpochTime() [(#610)](https://github.com/linkedin/ambry/pull/610) + - Handling case in recovery where PUT entry for a DELETE may not exist [(#608)](https://github.com/linkedin/ambry/pull/608) + - Changing server socket setup to be compatible with IPV4/6 [(#607)](https://github.com/linkedin/ambry/pull/607) + - Cluster wide quota stats via Helix [(#606)](https://github.com/linkedin/ambry/pull/606) + - Improvements to the Helix BootstrapUpgrade tool [(#605)](https://github.com/linkedin/ambry/pull/605) + - Fixing expiration values in IndexValue for overflow cases [(#604)](https://github.com/linkedin/ambry/pull/604) + - Fixing log-index recovery [(#602)](https://github.com/linkedin/ambry/pull/602) + - Changing log level for certain external packages to reduce verbosity [(#601)](https://github.com/linkedin/ambry/pull/601) + - Ensure router handles zero length buffers properly [(#600)](https://github.com/linkedin/ambry/pull/600) + - Fixing TTL value to -1 if expiration value is > Integer.MAX [(#599)](https://github.com/linkedin/ambry/pull/599) + - Fixing config files [(#598)](https://github.com/linkedin/ambry/pull/598) + - Fixing a cast that was causing in overflow in IndexSegment [(#595)](https://github.com/linkedin/ambry/pull/595) + - data loss on windows platform [(#594)](https://github.com/linkedin/ambry/issues/594) + - Adding a trigger compaction request at the server [(#593)](https://github.com/linkedin/ambry/pull/593) + - Unknown error throwed when file size matches exact 4*1024*1024 bytes [(#592)](https://github.com/linkedin/ambry/issues/592) + - Enhancing ambry tools [(#591)](https://github.com/linkedin/ambry/pull/591) + - Removed avro dependency for StatsManager [(#590)](https://github.com/linkedin/ambry/pull/590) + - Adding logging and metrics for compaction [(#589)](https://github.com/linkedin/ambry/pull/589) + - Increase netty version to 4.1.6 [(#588)](https://github.com/linkedin/ambry/pull/588) + - Introduces Account and Container classes. [(#587)](https://github.com/linkedin/ambry/pull/587) + - Bucketing for BlobStoreStats [(#586)](https://github.com/linkedin/ambry/pull/586) + - Convert ClusterMap gauge metrics from Boolean to Long [(#585)](https://github.com/linkedin/ambry/pull/585) + - Added error catching for stats publishing [(#584)](https://github.com/linkedin/ambry/pull/584) + - Removing auto-persistence for compactor created index [(#583)](https://github.com/linkedin/ambry/pull/583) + - uncommenting compactor actions [(#582)](https://github.com/linkedin/ambry/pull/582) + - Fixing two bugs with revalidation [(#581)](https://github.com/linkedin/ambry/pull/581) + - Moving stats manager and related classes to com.github.ambry.server [(#580)](https://github.com/linkedin/ambry/pull/580) + - Replaced Partition with MockPartitionId in StatsManagerTest [(#579)](https://github.com/linkedin/ambry/pull/579) + - Improving CompactionManager using cost benefit analysis [(#577)](https://github.com/linkedin/ambry/pull/577) + - Adding a thread to run compactions on stores [(#576)](https://github.com/linkedin/ambry/pull/576) + - Adding revalidation of StoreFindToken [(#575)](https://github.com/linkedin/ambry/pull/575) + - Added node level quota stats [(#574)](https://github.com/linkedin/ambry/pull/574) + - Fixing a couple of intermittent router tests [(#573)](https://github.com/linkedin/ambry/pull/573) + - Adding SSL latency metrics and public access logging [(#572)](https://github.com/linkedin/ambry/pull/572) + - Adding CompactionManagerV0 [(#571)](https://github.com/linkedin/ambry/pull/571) + - Introduce dynamic cluster management [(#569)](https://github.com/linkedin/ambry/pull/569) + - Introducing BlobStoreCompactor [(#568)](https://github.com/linkedin/ambry/pull/568) + - Rename ClusterManager to StaticClusterManager [(#566)](https://github.com/linkedin/ambry/issues/566) + - Wake up RequestResponseHandler when the last chunk becomes ready [(#565)](https://github.com/linkedin/ambry/pull/565) + - Adding more features to CuratedLogIndexState [(#564)](https://github.com/linkedin/ambry/pull/564) + - Adding support for passing service ID to NotificationSystem on deletes [(#563)](https://github.com/linkedin/ambry/pull/563) + - Adding more logging to triage HardDelete pause resume test failure [(#562)](https://github.com/linkedin/ambry/pull/562) + - Ensure network client is woken up when put channel is closed [(#561)](https://github.com/linkedin/ambry/pull/561) + - Fix spurious error messages when putting simple blobs. [(#560)](https://github.com/linkedin/ambry/pull/560) + - Spurious errors in the log for simple blob puts [(#559)](https://github.com/linkedin/ambry/issues/559) + - Changes to CompactionDetails and CompactionLog to change APIs and fields [(#557)](https://github.com/linkedin/ambry/pull/557) + - Single store blob stats v0 [(#554)](https://github.com/linkedin/ambry/pull/554) + - Maintaining version in StoreFindToken during ser and deser [(#553)](https://github.com/linkedin/ambry/pull/553) + - Adding HTTPS support to ambry-frontend [(#552)](https://github.com/linkedin/ambry/pull/552) + - Use CRCs to distinguish real id collisions from those due to fast replication [(#549)](https://github.com/linkedin/ambry/pull/549) + - Avoid empty Get requests in replication [(#548)](https://github.com/linkedin/ambry/issues/548) + - Blob store consumption stats [(#547)](https://github.com/linkedin/ambry/pull/547) + - Introducing an adaptive operation tracker [(#545)](https://github.com/linkedin/ambry/pull/545) + - Commenting out hard delete pause and resume test failure [(#544)](https://github.com/linkedin/ambry/pull/544) + - Making the index friendly to a switch of active index segments [(#543)](https://github.com/linkedin/ambry/pull/543) + - Moving the creation of Index and Log state in tests to a common class [(#542)](https://github.com/linkedin/ambry/pull/542) + - Adding new fields to IndexSegment and IndexValue [(#541)](https://github.com/linkedin/ambry/pull/541) + - Avoid upfront size limitation for router puts [(#540)](https://github.com/linkedin/ambry/pull/540) + - Adding APIs that the BlobStoreCompactor will eventually use [(#537)](https://github.com/linkedin/ambry/pull/537) + - Upgrading netty version to 4.1.4 [(#536)](https://github.com/linkedin/ambry/pull/536) + - Writing StoreFindToken in Version_2 [(#534)](https://github.com/linkedin/ambry/pull/534) + - Fixing build failures [(#533)](https://github.com/linkedin/ambry/pull/533) + - Printing progress messages in PartitionManager [(#532)](https://github.com/linkedin/ambry/pull/532) + - Adhering to RFC7232 [(#527)](https://github.com/linkedin/ambry/pull/527) + - Adding more metrics to index(bloom filter) [(#526)](https://github.com/linkedin/ambry/pull/526) + - Making Tools constructors public [(#525)](https://github.com/linkedin/ambry/pull/525) + - Introduce dynamic cluster management in Ambry [(#524)](https://github.com/linkedin/ambry/issues/524) + - Add a tool to map static cluster map information into Helix [(#523)](https://github.com/linkedin/ambry/pull/523) + - Enhancements to HardDeletes and IndexPersistor [(#521)](https://github.com/linkedin/ambry/pull/521) + - Adding CompactionDetails and CompactionLog [(#520)](https://github.com/linkedin/ambry/pull/520) + - Fixing compatibility issues with java 7 [(#518)](https://github.com/linkedin/ambry/pull/518) + - Restructuring tools and making some APIs public [(#516)](https://github.com/linkedin/ambry/pull/516) + - Adding metrics and throttling to ambry-tools [(#515)](https://github.com/linkedin/ambry/pull/515) + - Adding support to compare blob content across replicas to BlobValidator [(#513)](https://github.com/linkedin/ambry/pull/513) + - Move cleanup of failed composite blobs to the background [(#512)](https://github.com/linkedin/ambry/pull/512) + - Fixing Replication Bug by way of introducing StoreDescriptor having IncarnationID [(#511)](https://github.com/linkedin/ambry/pull/511) + - Adding GetBlobOptionsBuilder [(#510)](https://github.com/linkedin/ambry/pull/510) + - Using store abstractions in tools + supporting segmented logs in tools [(#509)](https://github.com/linkedin/ambry/pull/509) + - Fix a race condition in the ChunkFiller [(#508)](https://github.com/linkedin/ambry/pull/508) + - Fixing a couple of issues with startup disk failure handling [(#506)](https://github.com/linkedin/ambry/pull/506) + - Removing some checks from the newScheduler unit test [(#504)](https://github.com/linkedin/ambry/pull/504) + - Log segmentation tests [(#503)](https://github.com/linkedin/ambry/pull/503) + - Writing StoreFindToken and BlobReadOptions in new formats [(#502)](https://github.com/linkedin/ambry/pull/502) + - Ensure data chunks of a deleted composite blob get deleted [(#497)](https://github.com/linkedin/ambry/pull/497) + - Storing the lag of local from remote as part of the RemoteReplicaInfo [(#494)](https://github.com/linkedin/ambry/pull/494) + - Applying consistent styling for all java files [(#491)](https://github.com/linkedin/ambry/pull/491) + - Adding an ambry prefix to the failure reason header [(#490)](https://github.com/linkedin/ambry/pull/490) + - Index changes for log segmentation [(#488)](https://github.com/linkedin/ambry/pull/488) + - Fixing a bug when Log::close() is called more than once [(#487)](https://github.com/linkedin/ambry/pull/487) + - Improving Index to Log Comparison in DataDump Tool [(#486)](https://github.com/linkedin/ambry/pull/486) + - Adding DiskManager and DiskIOScheduler (Reapplying PR #474) [(#485)](https://github.com/linkedin/ambry/pull/485) + - Adding support in the Router and Admin to get deleted/expired blobs [(#483)](https://github.com/linkedin/ambry/pull/483) + - fix calculateDiskInHardStateCount logic [(#481)](https://github.com/linkedin/ambry/pull/481) + - Restructuring tools [(#480)](https://github.com/linkedin/ambry/pull/480) + - Router should not depend on the size in blob properties for puts [(#479)](https://github.com/linkedin/ambry/issues/479) + - Prevent DeleteManager from incrementing error metric for non-errors [(#478)](https://github.com/linkedin/ambry/pull/478) + - Changes to the Log to support log segmentation [(#477)](https://github.com/linkedin/ambry/pull/477) + - Adding ConcurrencyTestTool [(#475)](https://github.com/linkedin/ambry/pull/475) + - Adding DiskManager and DiskIOScheduler [(#474)](https://github.com/linkedin/ambry/pull/474) + - Revamping DataDump Tool and adding more operations [(#473)](https://github.com/linkedin/ambry/pull/473) + - Adding an abstraction for log segments [(#472)](https://github.com/linkedin/ambry/pull/472) + - Moving hard delete classes out of PersistentIndex [(#470)](https://github.com/linkedin/ambry/pull/470) + - Adding Pair class to get rid of javafx dependency [(#468)](https://github.com/linkedin/ambry/pull/468) + - Adding additional checks on Blob ID parsing [(#467)](https://github.com/linkedin/ambry/pull/467) + - Add a config for router.delete.success.target [(#466)](https://github.com/linkedin/ambry/pull/466) + - Range request cleanup. [(#465)](https://github.com/linkedin/ambry/pull/465) + - Adding an Offset class to refer to Log offsets [(#464)](https://github.com/linkedin/ambry/pull/464) + - Make sslConfig agnostic of ssl-enabled DCs and enable router ssl tests [(#462)](https://github.com/linkedin/ambry/pull/462) + - Adding RSC wrapper for InputStream [(#461)](https://github.com/linkedin/ambry/pull/461) + - Moving two functions from RSC to RestRequest [(#460)](https://github.com/linkedin/ambry/pull/460) + - Moving RSCInputStream to commons to make it more accesible [(#459)](https://github.com/linkedin/ambry/pull/459) + - Ensure get blob error metrics get updated correctly [(#458)](https://github.com/linkedin/ambry/pull/458) + - Fixing blob size header validation issue [(#456)](https://github.com/linkedin/ambry/pull/456) + - Add CRCs in the protocol used for communication by routers and datanodes. [(#455)](https://github.com/linkedin/ambry/issues/455) + - Puts occasionally get Blob_Exists error due to fast replication [(#454)](https://github.com/linkedin/ambry/issues/454) + - Refactoring metrics in RestServer [(#453)](https://github.com/linkedin/ambry/pull/453) + - Ensure ChannelClosed exception not set when channel is fully read. [(#452)](https://github.com/linkedin/ambry/pull/452) + - Refactor ResponseHandler class that does failure detection [(#451)](https://github.com/linkedin/ambry/pull/451) + - Adding REST api support for range requests [(#450)](https://github.com/linkedin/ambry/pull/450) + - Removing ambry-coordinator [(#449)](https://github.com/linkedin/ambry/pull/449) + - Fixing a serialization length compute calculation [(#446)](https://github.com/linkedin/ambry/pull/446) + - Write out put requests efficiently [(#445)](https://github.com/linkedin/ambry/pull/445) + - Adding metrics for happy path response status codes [(#442)](https://github.com/linkedin/ambry/pull/442) + - Adding backpressure support to NettyRequest [(#440)](https://github.com/linkedin/ambry/pull/440) + - Adding support for getting blob info and data in a single router call. [(#439)](https://github.com/linkedin/ambry/pull/439) + - Avoid incorrectly treating Blob_Deleted as a failure during replication. [(#438)](https://github.com/linkedin/ambry/pull/438) + - Delete successfully put data chunks of unsuccessful put operations. [(#437)](https://github.com/linkedin/ambry/pull/437) + - Removing CoordinatorBackedRouter [(#435)](https://github.com/linkedin/ambry/pull/435) + - Miscellaneous fixes to the router [(#429)](https://github.com/linkedin/ambry/pull/429) + - When request sending fails at the NetworkClient, notify response handler only on network errors [(#428)](https://github.com/linkedin/ambry/pull/428) + - Router level range request support [(#427)](https://github.com/linkedin/ambry/pull/427) + - Adding client and correlation id details to public access log [(#426)](https://github.com/linkedin/ambry/pull/426) + - Add chunking and size related metrics in the router [(#425)](https://github.com/linkedin/ambry/pull/425) + - Ensure operation tracker does not eliminate down replicas [(#424)](https://github.com/linkedin/ambry/pull/424) + - Ensure exceptions are always set for failed router operations [(#423)](https://github.com/linkedin/ambry/pull/423) + - Make the router resilient to unexpected errors [(#422)](https://github.com/linkedin/ambry/pull/422) + - Refactor get blob operation test to avoid blocking selector poll [(#421)](https://github.com/linkedin/ambry/pull/421) + - Prevent NetworkClient from returning duplicate failed responses [(#420)](https://github.com/linkedin/ambry/pull/420) + - Fixing some of the mis-configured rate metrics [(#419)](https://github.com/linkedin/ambry/pull/419) + - Fix gradlew script to use bash [(#417)](https://github.com/linkedin/ambry/pull/417) + - Cleaning up error logging and metrics [(#416)](https://github.com/linkedin/ambry/pull/416) + - fix for --keep-size option, it can fail if file does not exist [(#415)](https://github.com/linkedin/ambry/pull/415) + - Handling the way BlockingChannelInfo handle connection failures [(#414)](https://github.com/linkedin/ambry/pull/414) + - Avoid repeated connection initializations in the NetworkClient. [(#413)](https://github.com/linkedin/ambry/pull/413) + - Implementing new Metadata Content Format version for range reqs [(#411)](https://github.com/linkedin/ambry/pull/411) + - Always inform the failure detector when responses come in from the network client [(#410)](https://github.com/linkedin/ambry/pull/410) + - Use format expressions in new trace logging messages [(#409)](https://github.com/linkedin/ambry/pull/409) + - Adding trace logging to resource state policy [(#408)](https://github.com/linkedin/ambry/pull/408) + - Rename some replication metrics and fix 3-node dev configs [(#407)](https://github.com/linkedin/ambry/pull/407) + - Casting to Long explicitly in a test [(#406)](https://github.com/linkedin/ambry/pull/406) + - Fixes to README [(#404)](https://github.com/linkedin/ambry/pull/404) + - Fix erroneous/loose bloom filter related documentation [(#402)](https://github.com/linkedin/ambry/pull/402) + - Fixing some corner case bugs [(#390)](https://github.com/linkedin/ambry/pull/390) + - Making server codec variables configurable [(#389)](https://github.com/linkedin/ambry/pull/389) + - Removing POST and wiring in GetReplicas in Admin [(#387)](https://github.com/linkedin/ambry/pull/387) + - Performance optimizations for the router [(#386)](https://github.com/linkedin/ambry/pull/386) + - Adding metrics to track thread usage in Coordinator and Router [(#385)](https://github.com/linkedin/ambry/pull/385) + - Fixing a race condition in singleton creation [(#384)](https://github.com/linkedin/ambry/pull/384) + - Fix replicationLag metric name [(#382)](https://github.com/linkedin/ambry/pull/382) + - Logging the reason for malformed request [(#381)](https://github.com/linkedin/ambry/pull/381) + - Adding a metric to track the contention in requestor pool [(#380)](https://github.com/linkedin/ambry/pull/380) + - Changing max of router scaling unit. [(#379)](https://github.com/linkedin/ambry/pull/379) + - Refactoring router error code unit tests and adding additional GetOperation unit tests [(#375)](https://github.com/linkedin/ambry/pull/375) + - Adding cross colo related metrics for the router [(#374)](https://github.com/linkedin/ambry/pull/374) + - Fixes deadlock issue and refactoring in SimpleByteBufferPoolTest. [(#371)](https://github.com/linkedin/ambry/pull/371) + - Changing APIs of buildBlobProps and buildUm in RestUtils [(#370)](https://github.com/linkedin/ambry/pull/370) + - Add chunkfilling related metrics [(#369)](https://github.com/linkedin/ambry/pull/369) + - Downgrading client caused exception logging to DEBUG [(#368)](https://github.com/linkedin/ambry/pull/368) + - Suppressing more logging when client drops connections [(#367)](https://github.com/linkedin/ambry/pull/367) + - Ignoring the exception thrown when client closes connection. [(#366)](https://github.com/linkedin/ambry/pull/366) + - Removing a PutManager test that is now irrelevant [(#364)](https://github.com/linkedin/ambry/pull/364) + - Adding more logging to NetworkClient [(#362)](https://github.com/linkedin/ambry/pull/362) + - Additional metrics for the router, and some cleanup [(#361)](https://github.com/linkedin/ambry/pull/361) + - Add operation manager related metrics for the non-blocking router [(#359)](https://github.com/linkedin/ambry/pull/359) + - Miscellaneous fixes to router metrics [(#358)](https://github.com/linkedin/ambry/pull/358) + - Moving changes from ambry-frontend to ambry-admin [(#357)](https://github.com/linkedin/ambry/pull/357) + - Fixing a typo with a config in NettyConfig [(#356)](https://github.com/linkedin/ambry/pull/356) + - Handle exceptions in operation poll/handleResponse [(#354)](https://github.com/linkedin/ambry/pull/354) + - Miscellaneous changes with rest request metrics tracking [(#352)](https://github.com/linkedin/ambry/pull/352) + - Fixing interim disconnections in Selector [(#351)](https://github.com/linkedin/ambry/pull/351) + - Fixing how selector handles preparation of ssl connections [(#349)](https://github.com/linkedin/ambry/pull/349) + - Fixes to LastHttpContent generation in NettyResponseChannel [(#347)](https://github.com/linkedin/ambry/pull/347) + - Ignore inconsequential ClosedChannelException in NettyResponseChannel [(#346)](https://github.com/linkedin/ambry/issues/346) + - Changing invalid request state detection logic in NettyMessageProcessor. [(#345)](https://github.com/linkedin/ambry/pull/345) + - Adding router-server integration tests [(#344)](https://github.com/linkedin/ambry/pull/344) + - Adding property files for ssl [(#343)](https://github.com/linkedin/ambry/pull/343) + - Turn on MessageFormat BlobRecord Version2 [(#341)](https://github.com/linkedin/ambry/pull/341) + - Adding a Perf framework to micro-benchmark rest and router performance. [(#340)](https://github.com/linkedin/ambry/pull/340) + - Fix an incorrect casting in PutOperation [(#338)](https://github.com/linkedin/ambry/pull/338) + - Incorporate ReadableStreamChannel interface changes within GetBlobResult [(#337)](https://github.com/linkedin/ambry/pull/337) + - Adding security processing for POST response [(#336)](https://github.com/linkedin/ambry/pull/336) + - Use partition name as part of metric names in StoreMetrics. [(#335)](https://github.com/linkedin/ambry/pull/335) + - Fix issue with replication thread count metric [(#332)](https://github.com/linkedin/ambry/pull/332) + - Adding metrics to NetworkClient [(#331)](https://github.com/linkedin/ambry/pull/331) + - Router metrics framework [(#327)](https://github.com/linkedin/ambry/pull/327) + - Introduces metrics framework for NB Router. [(#326)](https://github.com/linkedin/ambry/pull/326) + - Adding API support for generating digests in ReadableStreamChannel [(#321)](https://github.com/linkedin/ambry/pull/321) + - Allow for ByteBufferInputStream to return underlying ByteBuffer [(#320)](https://github.com/linkedin/ambry/pull/320) + - Adding getStatus() and getHeader() APIs in RestResponseChannel [(#319)](https://github.com/linkedin/ambry/pull/319) + - Make gradle test print stacktrace on test failure [(#318)](https://github.com/linkedin/ambry/pull/318) + - A fix to the PutManagerTest [(#317)](https://github.com/linkedin/ambry/pull/317) + - Move server integration tests out of build target [(#316)](https://github.com/linkedin/ambry/pull/316) + - Removing a test assertion that is wrong. [(#314)](https://github.com/linkedin/ambry/pull/314) + - Fixing the way Selector handles SSL connection handshakes [(#310)](https://github.com/linkedin/ambry/pull/310) + - Add support for getBlob() in the router [(#308)](https://github.com/linkedin/ambry/pull/308) + - Fixing a bug with the way channel pipelines were abstracted [(#307)](https://github.com/linkedin/ambry/pull/307) + - Misc changes to address tech debt [(#306)](https://github.com/linkedin/ambry/pull/306) + - Fixing arraylist initialization in ReplicationManager [(#305)](https://github.com/linkedin/ambry/pull/305) + - Commenting out misbehaving tests [(#294)](https://github.com/linkedin/ambry/pull/294) + - Abstracting the creation of netty channel handlers [(#293)](https://github.com/linkedin/ambry/pull/293) + - Discarding a CoordinatorBackedRouter test that is no longer relevant [(#291)](https://github.com/linkedin/ambry/pull/291) + - Increasing the upper bound of router scaling unit count. [(#290)](https://github.com/linkedin/ambry/pull/290) + - Use auto port selection in Get and Delete operations. [(#289)](https://github.com/linkedin/ambry/pull/289) + - Fixing SSL related metric for replication with the thread pool fix [(#288)](https://github.com/linkedin/ambry/pull/288) + - complete router operations using a callback instead of the static method [(#287)](https://github.com/linkedin/ambry/pull/287) + - 1. Added support for BlobNotModifiedResponse 2. Fixed Connection leak in CoordinatorBackedRouter [(#286)](https://github.com/linkedin/ambry/pull/286) + - Adding layout analysis python script [(#285)](https://github.com/linkedin/ambry/pull/285) + - Adding connection stats handler [(#284)](https://github.com/linkedin/ambry/pull/284) + - Fixes to replication token server tests [(#283)](https://github.com/linkedin/ambry/pull/283) + - Fix server test cleanup and resource consumption issues. [(#282)](https://github.com/linkedin/ambry/pull/282) + - Modifying the logic that gets Ambry IDs from the URI. [(#281)](https://github.com/linkedin/ambry/pull/281) + - Keeping connections alive on GONE and NOT_FOUND responses. [(#280)](https://github.com/linkedin/ambry/pull/280) + - Adding rack-aware partition allocation algorithm [(#279)](https://github.com/linkedin/ambry/pull/279) + - Ensure chunk buffers are reused only after associated sends are complete [(#278)](https://github.com/linkedin/ambry/pull/278) + - Adding junit to the notice [(#277)](https://github.com/linkedin/ambry/pull/277) + - GetManager implementation with GetBlobInfo support [(#276)](https://github.com/linkedin/ambry/pull/276) + - Fix configs in Rest, Netty and Admin [(#275)](https://github.com/linkedin/ambry/pull/275) + - Add support for BlobInfo requests at the server [(#274)](https://github.com/linkedin/ambry/pull/274) + - Making NettyRequest detect content size mismatch with size in header. [(#273)](https://github.com/linkedin/ambry/pull/273) + - Updated the NOTICE file [(#272)](https://github.com/linkedin/ambry/pull/272) + - Fix the copyright in the notice file [(#271)](https://github.com/linkedin/ambry/pull/271) + - Change copyright to 2016 [(#270)](https://github.com/linkedin/ambry/pull/270) + - Adding notice file [(#269)](https://github.com/linkedin/ambry/pull/269) + - Fix Readme [(#268)](https://github.com/linkedin/ambry/pull/268) + - Fixing UserMetadata generation in RestUtils [(#267)](https://github.com/linkedin/ambry/pull/267) + - Add rack info to DataNodeId/Datacenter [(#266)](https://github.com/linkedin/ambry/pull/266) + - Making some fixes to help quick start of Ambry [(#265)](https://github.com/linkedin/ambry/pull/265) + - Making changes to AmbryMain and RestServerMain [(#264)](https://github.com/linkedin/ambry/pull/264) + - Add auto port selection to DataNodeId [(#262)](https://github.com/linkedin/ambry/pull/262) + - Remove PutManager large blob test [(#258)](https://github.com/linkedin/ambry/pull/258) + - Adding metrics for some components in new frontend framework [(#257)](https://github.com/linkedin/ambry/pull/257) + - Updating gradle version to 2.12 [(#256)](https://github.com/linkedin/ambry/pull/256) + - PutManager initial implementation [(#255)](https://github.com/linkedin/ambry/pull/255) + - Reintegrating ServerTool changes [(#254)](https://github.com/linkedin/ambry/pull/254) + - Prepare Ambry for open source [(#253)](https://github.com/linkedin/ambry/pull/253) + - Added single node option to ServerTool [(#252)](https://github.com/linkedin/ambry/pull/252) + - Adding metrics and conversion for the new ResponseStatus codes [(#251)](https://github.com/linkedin/ambry/pull/251) + - Rewriting AmbryBlobStorageService to make callbacks cleaner [(#250)](https://github.com/linkedin/ambry/pull/250) + - Adding RestServerError Codes and misc fixes [(#249)](https://github.com/linkedin/ambry/pull/249) + - Wiring in IdConverter and SecurityService into AmbryBlobStorageService [(#248)](https://github.com/linkedin/ambry/pull/248) + - Updates to node failure detection in replication [(#247)](https://github.com/linkedin/ambry/pull/247) + - Adding new RestServiceErrorCode for Authorization failure [(#246)](https://github.com/linkedin/ambry/pull/246) + - Making the IdConverter interface async [(#245)](https://github.com/linkedin/ambry/pull/245) + - Adding SecurityService and DefaultSecurityService for Ambry [(#244)](https://github.com/linkedin/ambry/pull/244) + - Changes to not aggressively replicate from nodes that are down. [(#243)](https://github.com/linkedin/ambry/pull/243) + - Fixing a bug in HealthCheckHandler that made requests hang on keep-alive [(#241)](https://github.com/linkedin/ambry/pull/241) + - Adding IdConverter and IdConverterFactory interfaces. [(#240)](https://github.com/linkedin/ambry/pull/240) + - Added DeleteManager and DeleteOperation. [(#239)](https://github.com/linkedin/ambry/pull/239) + - Adding support for GET of sub-resources. [(#238)](https://github.com/linkedin/ambry/pull/238) + - Removing NettyServerDeployer to simplify code in NettyServer [(#237)](https://github.com/linkedin/ambry/pull/237) + - Adding Integration test for HealthCheck [(#235)](https://github.com/linkedin/ambry/pull/235) + - Simplifying the APIs and usage of ByteBufferAsyncWritableChannel. [(#234)](https://github.com/linkedin/ambry/pull/234) + - Support for multipart POST via the RestServer [(#233)](https://github.com/linkedin/ambry/pull/233) + - Adding a new method prepare() in RestRequest [(#232)](https://github.com/linkedin/ambry/pull/232) + - Adding support for Cookies [(#231)](https://github.com/linkedin/ambry/pull/231) + - Use the NetworkClient in the router; remove deprecated classes [(#230)](https://github.com/linkedin/ambry/pull/230) + - Fixing a failing test in AsyncRequestResponseHandlerTest. [(#229)](https://github.com/linkedin/ambry/pull/229) + - Reformatting code in rest and router package [(#228)](https://github.com/linkedin/ambry/pull/228) + - Adding Integration tests for ambry-admin and ambry-frontend [(#227)](https://github.com/linkedin/ambry/pull/227) + - Rework Router-Network interaction [(#226)](https://github.com/linkedin/ambry/pull/226) + - Adding NettyMultipartRequest to handle decoding of multipart requests. [(#225)](https://github.com/linkedin/ambry/pull/225) + - Adding PublicAccessLogRequestHandler and HealthCheckReqeustHandler to the new frontend framework [(#224)](https://github.com/linkedin/ambry/pull/224) + - Changing return type of getArgs() in RestRequest. [(#223)](https://github.com/linkedin/ambry/pull/223) + - Introduce a factory class for generating Selector and ConnectionManager for pluggability. [(#222)](https://github.com/linkedin/ambry/pull/222) + - Adding OperationTracker for NB Router. [(#221)](https://github.com/linkedin/ambry/pull/221) + - Removing ReadableStreamChannel.read() [(#220)](https://github.com/linkedin/ambry/pull/220) + - Fixing ambry-frontend [(#218)](https://github.com/linkedin/ambry/pull/218) + - Adding keep-alive support [(#217)](https://github.com/linkedin/ambry/pull/217) + - Introducing Ambry non blocking frontend [(#216)](https://github.com/linkedin/ambry/pull/216) + - Rest response channel cleanup [(#215)](https://github.com/linkedin/ambry/pull/215) + - Adding support for Metadata Blob [(#214)](https://github.com/linkedin/ambry/pull/214) + - Rest response channel upgrade [(#212)](https://github.com/linkedin/ambry/pull/212) + - Non-blocking Router Framework [(#211)](https://github.com/linkedin/ambry/pull/211) + - Stripping off UserMetadata prefix on storage [(#210)](https://github.com/linkedin/ambry/pull/210) + - Separate out SocketServer related metrics from NetworkMetrics [(#209)](https://github.com/linkedin/ambry/pull/209) + - Change to FutureResult to accept Exception instead of RuntimeException [(#208)](https://github.com/linkedin/ambry/pull/208) + - Replication fix to add thread pools per remote datacenter [(#207)](https://github.com/linkedin/ambry/pull/207) + - Fix a bug with replication token persistence [(#206)](https://github.com/linkedin/ambry/pull/206) + - ReadableStreamChannel interface change [(#204)](https://github.com/linkedin/ambry/pull/204) + - Changing UserMetadata to be added to headers [(#203)](https://github.com/linkedin/ambry/pull/203) + - Buffer pool for router. [(#202)](https://github.com/linkedin/ambry/pull/202) + - Request response handler interface change [(#201)](https://github.com/linkedin/ambry/pull/201) + - Fix build failures [(#200)](https://github.com/linkedin/ambry/pull/200) + - Logging and end-to-end request metrics for front end framework. [(#199)](https://github.com/linkedin/ambry/pull/199) + - 1. Adding documentation for SSLTrans [(#198)](https://github.com/linkedin/ambry/pull/198) + - Bringing back the old PutRequest API as deprecated [(#197)](https://github.com/linkedin/ambry/pull/197) + - Store ttl unit test. [(#196)](https://github.com/linkedin/ambry/pull/196) + - Bumping upper bound for replication fetch size [(#195)](https://github.com/linkedin/ambry/pull/195) + - PutRequest protocol change to support large blobs [(#194)](https://github.com/linkedin/ambry/pull/194) + - clear up the ServerTest [(#193)](https://github.com/linkedin/ambry/pull/193) + - Fixing client side ssl metrics [(#191)](https://github.com/linkedin/ambry/pull/191) + - Tool to verify hard deletes, with some improvements [(#190)](https://github.com/linkedin/ambry/pull/190) + - GET, POST, DELETE and HEAD in front end. [(#189)](https://github.com/linkedin/ambry/pull/189) + - update Send.writeTo() interface to return bytes written [(#187)](https://github.com/linkedin/ambry/pull/187) + - address more comments for pull request 185 [(#186)](https://github.com/linkedin/ambry/pull/186) + - add more metrics for ssl [(#185)](https://github.com/linkedin/ambry/pull/185) + - Change the unit from nanosecond to second for one parameter in ambry tool [(#184)](https://github.com/linkedin/ambry/pull/184) + - Ensure segment rollover checks are done during store deletes [(#183)](https://github.com/linkedin/ambry/pull/183) + - 1. Adding more trace logging [(#182)](https://github.com/linkedin/ambry/pull/182) + - update ambry tool to support ssl [(#180)](https://github.com/linkedin/ambry/pull/180) + - Fixes to Selector and SocketServer and BlockingChannelConnectionPool [(#179)](https://github.com/linkedin/ambry/pull/179) + - Printing ssl params [(#178)](https://github.com/linkedin/ambry/pull/178) + - support setting ssl protocol and cipher suit to sslSocket in client side [(#177)](https://github.com/linkedin/ambry/pull/177) + - Fixing minor code issue for coordinator operation [(#176)](https://github.com/linkedin/ambry/pull/176) + - Fixing minor test issue [(#175)](https://github.com/linkedin/ambry/pull/175) + - ServerTest Fix [(#174)](https://github.com/linkedin/ambry/pull/174) + - prevent crash if setting the number of inter colo replication threads to 0 [(#173)](https://github.com/linkedin/ambry/pull/173) + - Response handler rewrite [(#172)](https://github.com/linkedin/ambry/pull/172) + - address comments from Sriram about the SSLBlockingChannel [(#171)](https://github.com/linkedin/ambry/pull/171) + - Adding metrics reporter for RestServer [(#170)](https://github.com/linkedin/ambry/pull/170) + - fixed file not found error in unit test [(#169)](https://github.com/linkedin/ambry/pull/169) + - Server side SSL changes [(#168)](https://github.com/linkedin/ambry/pull/168) + - Fat jar build file changes [(#167)](https://github.com/linkedin/ambry/pull/167) + - Adding a Coordinator backed Router [(#166)](https://github.com/linkedin/ambry/pull/166) + - remove per node metrics in Selector [(#165)](https://github.com/linkedin/ambry/pull/165) + - Fixing ServerTest [(#164)](https://github.com/linkedin/ambry/pull/164) + - Support Blocking SSL client used in replication and coordinator [(#163)](https://github.com/linkedin/ambry/pull/163) + - Fixing ServerTest [(#162)](https://github.com/linkedin/ambry/pull/162) + - Fixing the intermittant failures in ambry-network tests. [(#161)](https://github.com/linkedin/ambry/pull/161) + - hard delete crash recovery fix [(#160)](https://github.com/linkedin/ambry/pull/160) + - fix a bug to stop killing the processor thread [(#159)](https://github.com/linkedin/ambry/pull/159) + - Adding SSL support for Data Node [(#158)](https://github.com/linkedin/ambry/pull/158) + - Make hard delete shut down gracefully. [(#157)](https://github.com/linkedin/ambry/pull/157) + - Logging for ambry-rest and ambry-admin [(#156)](https://github.com/linkedin/ambry/pull/156) + - Fix package names [(#155)](https://github.com/linkedin/ambry/pull/155) + - 1.Adding new utilities to DumpData. 2. Fixing BlobValidator tool [(#154)](https://github.com/linkedin/ambry/pull/154) + - Handle closed channel exceptions; use atomic references for hard delete tokens [(#153)](https://github.com/linkedin/ambry/pull/153) + - Adding more logging during invalidation to log remote replica info [(#152)](https://github.com/linkedin/ambry/pull/152) + - Fix hard delete shutdown issue [(#151)](https://github.com/linkedin/ambry/pull/151) + - Integrate Selector [(#150)](https://github.com/linkedin/ambry/pull/150) + - Add more logging and fix a metric for hard deletes [(#149)](https://github.com/linkedin/ambry/pull/149) + - Fixing validation of corruption in storekey during message stream validation [(#148)](https://github.com/linkedin/ambry/pull/148) + - Fixing empty message info list written to store [(#147)](https://github.com/linkedin/ambry/pull/147) + - Fix the way exceptions are printed during hard delete iteration [(#146)](https://github.com/linkedin/ambry/pull/146) + - Disabling testFindDeletedEntries test for now [(#145)](https://github.com/linkedin/ambry/pull/145) + - Fix a test [(#144)](https://github.com/linkedin/ambry/pull/144) + - 1. Adding more logging to message sieving. 2. Some trivial fixes in tools [(#143)](https://github.com/linkedin/ambry/pull/143) + - change the max disk capacity to 10TB [(#142)](https://github.com/linkedin/ambry/pull/142) + - Fix the hard delete end to end test [(#141)](https://github.com/linkedin/ambry/pull/141) + - Fix hard delete server test hang issue, but disable it for now until we fix the root cause. [(#140)](https://github.com/linkedin/ambry/pull/140) + - 1. ServerTool to upload files to ambry to a specific partition 2. Fixing network tests which was hanging [(#139)](https://github.com/linkedin/ambry/pull/139) + - add new metric in coordinator to record the blob already exists error [(#138)](https://github.com/linkedin/ambry/pull/138) + - Introducing ambry-admin and ambry-rest modules [(#137)](https://github.com/linkedin/ambry/pull/137) + - add trace log to verify the processing time for metadate exchange, relat... [(#136)](https://github.com/linkedin/ambry/pull/136) + - Ignoring corrupt blobs during replication [(#135)](https://github.com/linkedin/ambry/pull/135) + - Added an index consistency checker [(#134)](https://github.com/linkedin/ambry/pull/134) + - Changes for hard deletes [(#133)](https://github.com/linkedin/ambry/pull/133) + - Changes to consistency checker in admin tools [(#132)](https://github.com/linkedin/ambry/pull/132) + - add more log to analyze the time consuming for replication process [(#131)](https://github.com/linkedin/ambry/pull/131) + - Avoid looking up a deleted key's delete status when processing replication requests [(#130)](https://github.com/linkedin/ambry/pull/130) + - Fix cross colo get policy to correctly ignore down replicas [(#129)](https://github.com/linkedin/ambry/pull/129) + - add ingraph metric to monitor the total time cost for replication [(#128)](https://github.com/linkedin/ambry/pull/128) + - Calculate segment entry sizes correctly [(#127)](https://github.com/linkedin/ambry/pull/127) + - More logging in needToRolloverIndex [(#126)](https://github.com/linkedin/ambry/pull/126) + - Fix to ignore down replicas for operations [(#125)](https://github.com/linkedin/ambry/pull/125) + - Use index end offset to synchronize store operations [(#123)](https://github.com/linkedin/ambry/pull/123) + - Print blob ids more judiciously [(#122)](https://github.com/linkedin/ambry/pull/122) + - Adding Consistency Checker Tool [(#121)](https://github.com/linkedin/ambry/pull/121) + - Fixing reseting of blob output [(#120)](https://github.com/linkedin/ambry/pull/120) + - Adding getBlob, getBlobProperties, getUserMetadata to AdmintTool [(#119)](https://github.com/linkedin/ambry/pull/119) + - Fix race conditions with deletes [(#118)](https://github.com/linkedin/ambry/pull/118) + - Persist token periodically [(#117)](https://github.com/linkedin/ambry/pull/117) + - Ensure journal always has the last segment's entries [(#116)](https://github.com/linkedin/ambry/pull/116) + - Fix issues in replication [(#115)](https://github.com/linkedin/ambry/pull/115) + - Adding support for list of blobs in BlobValidator and some format fixes [(#114)](https://github.com/linkedin/ambry/pull/114) + - Fixes to the index [(#113)](https://github.com/linkedin/ambry/pull/113) + - Unit tests, perf tool fix and formatting [(#112)](https://github.com/linkedin/ambry/pull/112) + - Addressing feedback for AdminTool and BlobValidator [(#111)](https://github.com/linkedin/ambry/pull/111) + - Handling the case where number of nodes to replicate from is 0 [(#110)](https://github.com/linkedin/ambry/pull/110) + - 1. Fixing and adding new features to DumpData 2. Adding BlobInfoTool [(#109)](https://github.com/linkedin/ambry/pull/109) + - Fix some issues in ReplicationManager [(#108)](https://github.com/linkedin/ambry/pull/108) + - Adding more logging to track unknown format error [(#107)](https://github.com/linkedin/ambry/pull/107) + - Change defaults for certain timeouts [(#106)](https://github.com/linkedin/ambry/pull/106) + - Better logging in failure detection [(#105)](https://github.com/linkedin/ambry/pull/105) + - Register the metric correctly [(#104)](https://github.com/linkedin/ambry/pull/104) + - Fixes for metrics [(#103)](https://github.com/linkedin/ambry/pull/103) + - Miscellaneous fixes [(#102)](https://github.com/linkedin/ambry/pull/102) + - Fix failure detection and socket connect timeout [(#101)](https://github.com/linkedin/ambry/pull/101) + - Adding new metrics to track cross colo calls [(#100)](https://github.com/linkedin/ambry/pull/100) + - Adding more logging to crosscoloParallelOperationPolicy [(#99)](https://github.com/linkedin/ambry/pull/99) + - package cleanup and add basic interface for non blocking implementation [(#98)](https://github.com/linkedin/ambry/pull/98) + - CrossDCGetOperationPolicy [(#97)](https://github.com/linkedin/ambry/pull/97) + - Fix datanode and disk retry backoff values [(#96)](https://github.com/linkedin/ambry/pull/96) + - Add an option to getRequest to return expired blobs [(#95)](https://github.com/linkedin/ambry/pull/95) + - Fix resource state metrics [(#94)](https://github.com/linkedin/ambry/pull/94) + - 1. Fixing appendFrom in Log to read entire bytes. 2. Add more checks for index update. 3. Fixing multiple puts and deletes [(#93)](https://github.com/linkedin/ambry/pull/93) + - Changing GetPolicy to SerialOperationPolicy [(#92)](https://github.com/linkedin/ambry/pull/92) + - Handle dynamic failures [(#91)](https://github.com/linkedin/ambry/pull/91) + - Logging and metric fixes [(#90)](https://github.com/linkedin/ambry/pull/90) + - Tweaking timeouts [(#89)](https://github.com/linkedin/ambry/pull/89) + - ResponseFailureHandler class and related changes to enable cluster map soft states [(#88)](https://github.com/linkedin/ambry/pull/88) + - Adding more log statements to debug latency issues with getPolicy of 2 [(#87)](https://github.com/linkedin/ambry/pull/87) + - Fix a comment about the default for coordinator operation timeout [(#86)](https://github.com/linkedin/ambry/pull/86) + - Adding more logging to debug getPolicy of parallelism 2 [(#85)](https://github.com/linkedin/ambry/pull/85) + - Fixing error message [(#84)](https://github.com/linkedin/ambry/pull/84) + - small logging cleanup [(#83)](https://github.com/linkedin/ambry/pull/83) + - 1. Ensure that store operations catches other Exceptions and converts th... [(#82)](https://github.com/linkedin/ambry/pull/82) + - Quiet logs. Should not WARN now that we have multiple get requests outst... [(#81)](https://github.com/linkedin/ambry/pull/81) + - Change how we handle read from blocking channel in ByteBufferInputStream [(#80)](https://github.com/linkedin/ambry/pull/80) + - Remove debug logging [(#79)](https://github.com/linkedin/ambry/pull/79) + - 1. Change BlockingByteChannel to return the size of the stream. This is ... [(#78)](https://github.com/linkedin/ambry/pull/78) + - more logging [(#77)](https://github.com/linkedin/ambry/pull/77) + - add debug logging [(#76)](https://github.com/linkedin/ambry/pull/76) + - Fixing how read from blocking channel works [(#75)](https://github.com/linkedin/ambry/pull/75) + - changing logging to info for better debugging [(#74)](https://github.com/linkedin/ambry/pull/74) + - adding trace for debugging [(#73)](https://github.com/linkedin/ambry/pull/73) + - Replication tweaks [(#72)](https://github.com/linkedin/ambry/pull/72) + - Ensure mountpaths are absolute paths [(#71)](https://github.com/linkedin/ambry/pull/71) + - Fixing Long compare to work with Java 6 [(#70)](https://github.com/linkedin/ambry/pull/70) + - Clean up replication, metrics and code review feedback for previous review [(#69)](https://github.com/linkedin/ambry/pull/69) + - Fix coordinator test to corrupt blob id string sufficiently [(#68)](https://github.com/linkedin/ambry/pull/68) + - Replication changes to batch pull changes from partitions [(#67)](https://github.com/linkedin/ambry/pull/67) + - Change Get Policy to have two requests outstanding in parallel [(#66)](https://github.com/linkedin/ambry/pull/66) + - Enable a way to control proxy calls for all operations [(#65)](https://github.com/linkedin/ambry/pull/65) + - Fixes [(#64)](https://github.com/linkedin/ambry/pull/64) + - Remove printStackTrace calls from pull 59 [(#63)](https://github.com/linkedin/ambry/pull/63) + - Added basic test for replica metadata request and some logging to debug a bug ... [(#62)](https://github.com/linkedin/ambry/pull/62) + - fixes [(#61)](https://github.com/linkedin/ambry/pull/61) + - Fixes to journal restore and multiple deletes [(#60)](https://github.com/linkedin/ambry/pull/60) + - Replication changes for materializing streams and doing batch gets and replica metadata request [(#59)](https://github.com/linkedin/ambry/pull/59) + - fix bug to ensure journal is populated properly on re start [(#58)](https://github.com/linkedin/ambry/pull/58) + - Fix bug and add more logging [(#57)](https://github.com/linkedin/ambry/pull/57) + - 1. Add better logging for replication [(#56)](https://github.com/linkedin/ambry/pull/56) + - Add trace logging for replication throttling [(#55)](https://github.com/linkedin/ambry/pull/55) + - server fixes [(#54)](https://github.com/linkedin/ambry/pull/54) + - Cleaner logging in Coordinator [(#53)](https://github.com/linkedin/ambry/pull/53) + - 1. Ensure all formats can be backwards compatible [(#52)](https://github.com/linkedin/ambry/pull/52) + - Change blob id to use base64 [(#51)](https://github.com/linkedin/ambry/pull/51) + - Minor fixes [(#50)](https://github.com/linkedin/ambry/pull/50) + - bug fixes and improvements [(#49)](https://github.com/linkedin/ambry/pull/49) + - Index fix to remove strong constraint check [(#48)](https://github.com/linkedin/ambry/pull/48) + - Fix for add replica and other improvements [(#47)](https://github.com/linkedin/ambry/pull/47) + - 1. Handling error scenarios in Coordinator 2. Adding new metrics to track server startup time and shutdown time [(#46)](https://github.com/linkedin/ambry/pull/46) + - Adding ratio of Current to Total capacity used Store metrics [(#45)](https://github.com/linkedin/ambry/pull/45) + - fixes and cleanups [(#44)](https://github.com/linkedin/ambry/pull/44) + - Fixing ReplicaLag metric name [(#43)](https://github.com/linkedin/ambry/pull/43) + - 1. Adding ReplicaLag metrics 2. Ambry-353: Change how coordinator deleteBlob handles 'not found' from all servers [(#42)](https://github.com/linkedin/ambry/pull/42) + - Update metric to not use ':' since it is not supported in LI [(#41)](https://github.com/linkedin/ambry/pull/41) + - Metrics cleanup, replication fix and add constraint checking [(#40)](https://github.com/linkedin/ambry/pull/40) + - fix logging [(#39)](https://github.com/linkedin/ambry/pull/39) + - Making Coordinator implement Closeable interface [(#38)](https://github.com/linkedin/ambry/pull/38) + - Changing getRandomLong to take in a Random Object [(#37)](https://github.com/linkedin/ambry/pull/37) + - Fix operation corruption metric bug [(#36)](https://github.com/linkedin/ambry/pull/36) + - Adding Metrics to Ambry Server to track Latency and Rate based on Blob size [(#35)](https://github.com/linkedin/ambry/pull/35) + - Adding Connection Pool Metrics to BlockingChannelConnectionPool [(#34)](https://github.com/linkedin/ambry/pull/34) + - Ambry server changes [(#33)](https://github.com/linkedin/ambry/pull/33) + - Adding Public Access log and fixing connection leaks on channel disconnect [(#32)](https://github.com/linkedin/ambry/pull/32) + - Fixes to ServerTest and ReplicaThread [(#31)](https://github.com/linkedin/ambry/pull/31) + - Config Property files for 3 servers [(#30)](https://github.com/linkedin/ambry/pull/30) + - Clean up NotificationSystem interface [(#29)](https://github.com/linkedin/ambry/pull/29) + - 1. Update coding standards [(#28)](https://github.com/linkedin/ambry/pull/28) + - Comment out Java 7 dependency. Fix intermittent test failure. [(#27)](https://github.com/linkedin/ambry/pull/27) + - Fix name of some coordinator request metrics. [(#26)](https://github.com/linkedin/ambry/pull/26) + - Fix error in data format corrupt error metric [(#25)](https://github.com/linkedin/ambry/pull/25) + - Build and start JMX reporter in coordinator for metrics. [(#24)](https://github.com/linkedin/ambry/pull/24) + - fixes [(#23)](https://github.com/linkedin/ambry/pull/23) + - Added coordinator and clustermap metrics. [(#22)](https://github.com/linkedin/ambry/pull/22) + - 1. Fix ordering of messages during get [(#20)](https://github.com/linkedin/ambry/pull/20) + - Fixes for replication and notification system [(#19)](https://github.com/linkedin/ambry/pull/19) + - 1. Make all error logging in Operations to log the exception [(#18)](https://github.com/linkedin/ambry/pull/18) + - Fixes to replication [(#17)](https://github.com/linkedin/ambry/pull/17) + - Add toString to and trivial tests for BlobProperties [(#16)](https://github.com/linkedin/ambry/pull/16) + - BlobProperties cleanup (TTL and UserMetadataSize) [(#15)](https://github.com/linkedin/ambry/pull/15) + - Replication changes, new connection pool, more metrics and bug fixes [(#14)](https://github.com/linkedin/ambry/pull/14) + - Replication part 1 changes and partition assignment change [(#13)](https://github.com/linkedin/ambry/pull/13) + - Add metrics, addpartition tool and minor changes to Verifiable Properties [(#12)](https://github.com/linkedin/ambry/pull/12) + - Minor clean up of coordinator and clustermap [(#11)](https://github.com/linkedin/ambry/pull/11) + - Store recovery, make java 6 changes and linux cleanup [(#10)](https://github.com/linkedin/ambry/pull/10) + - Add Coordinator to Ambry. [(#9)](https://github.com/linkedin/ambry/pull/9) + - Add metrics, on disk index, error handling, lot more unit tests [(#8)](https://github.com/linkedin/ambry/pull/8) + - Fix clustermap test so build is not broken [(#7)](https://github.com/linkedin/ambry/pull/7) + - Completed message format + store integration + store unit tests [(#6)](https://github.com/linkedin/ambry/pull/6) + - adding missing file [(#5)](https://github.com/linkedin/ambry/pull/5) + - Initial cluster map commit. [(#4)](https://github.com/linkedin/ambry/pull/4) + - Adding configs and java docs [(#3)](https://github.com/linkedin/ambry/pull/3) + - Add logging to ambry [(#2)](https://github.com/linkedin/ambry/pull/2) + - changes to fix junit and other build issues [(#1)](https://github.com/linkedin/ambry/pull/1) + diff --git a/version.properties b/version.properties index 4fb9d64266..e948d7fbdd 100644 --- a/version.properties +++ b/version.properties @@ -1,3 +1,4 @@ #Version of the produced binaries. This file is intended to be checked-in. #It will be automatically bumped by release automation. -version=0.3.0 +version=0.3.1 +previousVersion=0.3.0