forked from twitter/finagle
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES
987 lines (769 loc) · 37 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
.. Author notes: this file is formatted with restructured text
(http://docutils.sourceforge.net/docs/user/rst/quickstart.html)
as it is included in Finagle's user's guide.
6.x
-----
6.10.0
~~~~~
`finagle-core`: Fix ServiceTimeoutException naming.
`finagle-core`: Increase default tcpConnectTimeout to 350ms.
`finagle-core`: Remove memory leak for never satisfied promises in DelayedFactory.
`finagle-memcached`: Add ClientBuilder APIs that use Name instead of Group.
`finagle`: Daemonize threads in ClientBuilders used in finagle.
6.9.0
~~~~~
- `finagle-core`: Avoid creating a new 'NoStacktrace' array for each exception.
- `finagle-core`: Better support for negative Addr resolution in StabilizingAddr.
- `finagle-core`: Make Dtab.base changeable.
- `finagle-core`: Move mask cancel filter over to Future#mask.
- `finagle-exp`: New warmup filter.
- `finagle-ostrich4`: Deprecate Netty methods.
- `finagle-serversets`: Better handling of permission exceptions in ZkResolver.
- `finagle-testers`: Small latency evaluation framework.
- `finagle`: Adhere to scala 2.10 pattern matching strictness.
6.8.1
~~~~~
- `finagle`: Upgrade ostrich to 9.2.1
- `finagle`: Upgarde util to 6.8.1
- `finagle`: Upgarde scrooge to 3.11.1
6.8.0
~~~~~
- `finagle-serversets`: Higher fidelity addrs from ZK We do the best we can with the current server set implementation.
- `finagle-mysql`: better type support
- `finagle-http`: Allow Integer to extract negative number
- `finagle-redis`: Decode nested multi-bulk replies
- `finagle-redis`: Allow expirations in the past
- `finagle-core`: bump Netty to 3.8.0.Final
- `finagle`: Return empty string when resolving an unlabeled address
- `finagle`: Don't re-scope StatsReceivers per request failure
- `finagle-thrift`: Unconditionally set TraceId and ClientId on servers
- `finagle-core`: Take -com.twitter.server.serversetZkHosts flag (for tunnelling)
- `finagle-native`: tomcat-native-1.1.27
- `finagle-mysql`: fix readLengthCodedBinary to read longs
- `finagle-testers`: library for integration testing of - `finagle services
- `finagle`: scaladoc warning cleanup
- `finagle-doc`: documented all of the stats in - `finagle-core
- `finagle-serversets`: bump server-set dependency to 1.0.56
- `finagle-stats`: adds a cautious registration to HttpMuxer / adds a default metrics endpoint to twitter-server
- `finagle-core`: verifies that statsfilter has the correct behavior
- `finagle-serversets`: Add support for parsing a !shardId on the end of a serverset address
- `finagle-http`: Use Reader for streaming
- `finagle-core`: no longer makes an anonymous exception in DefaultClient
- `finagle-core`: Using system class loader does not work when run inside sbt
- `finagle-core`: add pool_num_waited counter to WatermarkPool
- `finagle-core`: Protocol support for Wily: HTTP, thrift, mux (& thus thriftmux).
- `finagle-core`: respect standard socksProxyHost / socksProxyPort properties in ClientBuilder and Netty3Transporter default args
- `finagle-core`: buffers requests until Var[Addr] is in a ready state
- `finagle-core`: Add putLong and getLong functions to util.ByteArrays
- `finagle-core`: don't blow up if we don't have a resolvable host name
- `finagle-core`: rm allocation in RichChannelFuture.apply's operationComplete
- `finagle-core`: remove Var.apply; introduce Var.sample
- `finagle-thriftmux`: Support ClientIds at the protocol level
- `finagle-kestrel`: memory allocation improvements
- `finagle-http`: allow PUT requests to use RequestParamMap.postParams
- `finagle-memcached`: more performance and less allocations in Decoder
6.7.4
~~~~~
- `finagle-core`: Fail ChannelTransport read queue before closing the connection
- `finagle-mux`: Add session for mux message passing and bidirectional RPC
- `finagle-zipkin`: Depend on scrooge-core instead of scrooge-runtime
6.7.2
~~~~~
- `finagle-core`: LoadService: skip empty lines
- `finagle-core`: Improve GC profile of Var and Group
- `finagle-core`: added a simple defaultpool test to show how it works + more docs
- `finagle-core`: removes commented out casting filter
- `finagle-mysql`: move protocol into a dispatcher and port to new style apis.
6.7.1
~~~~~
- `finagle-*`: Tagging various tests as flaky
- `finagle-*`: Fix and reenable some formerly-flaky tests Now that Time.withXXXX is threadsafe
- `finagle-*`: Move Var to util
- `finagle-*`: Provide generic request contexts
- `finagle-*`: Use scrooge3 and up-to-date scrooge-maven-plugin settings
- `finagle-*`: upgrade Netty to 3.7.0.Final
- `finagle-core`: Add UnwritableChannel stat to ChannelStatsHandler
- `finagle-core`: Add a test for Proc exception-swallowing
- `finagle-core`: Better interface for RetryPolicy
- `finagle-core`: Ensure FIFO ordering when delivering updates to StabilizingGroup
- `finagle-core`: Export a health stat in StabilizingGroup
- `finagle-core`: Fix a race condition in ListeningSever.announce and don't announce 0.0.0.0
- `finagle-core`: Fix sourcing for SourcedExceptions
- `finagle-core`: Group: communicate via Var[Set[T]]
- `finagle-core`: Improve HeapBalancer req distribution when N=2
- `finagle-core`: Introduce staged names
- `finagle-core`: Let the number of cores be specified on the command line
- `finagle-core`: Make socket writable duration stats more useful
- `finagle-core`: Migrate RetryingFilter tests from specs to scalatest
- `finagle-core`: Move the connections gauge into ChannelStatsHandler for GC
- `finagle-core`: Reuse a single exception instance in ServerDispatcher
- `finagle-core`: Update com.twitter.finagle package documentation
- `finagle-doc`: Add Client/Server Anatomy to docs
- `finagle-doc`: Link to "Your Server as a Function"
- `finagle-http`: Proper CORS implementation on Finagle
- `finagle-http`: SPNEGO http auth (for Kerberos) with an example implementation for internal services
- `finagle-memcached`: Exclude CancelledRequestException and CancelledConectionException or cache client failure accrual
- `finagle-memcached`: Read key remapping config from ZooKeeper
- `finagle-memcached`: ZK based cache node group implementation
- `finagle-redis`: SRandMember, send command without count when None
- `finagle-serversets`: Mark ZookeeperServerSetCluster as deprecated
- `finagle-thrift`: Add a request context for ClientId
- `finagle-thrift`: Set the client id in thriftmux
6.7.0
~~~~~
Release process failed. Rolled forward to 6.7.1.
6.6.2
~~~~~
- `finagle-core`: Configurable loadBalancer for ClientConfig
- `finagle-core`: Fix the memory leak due to the GlobalStatsReceiver
- `finagle-core`: Inet util, bind to all if no host is provided
- `finagle-core`: Make Future.never a val instead of a def
- `finagle-memcached`: Fix tracing ClientRecv timestamp
- `finagle`: New ostrich version
6.6.0
~~~~~
- `finagle-core`: Add a RetryPolicy constant for retrying on ChannelClosedExceptions.
- `finagle-core`: ChannelSnooper: Print exceptions via Logger
- `finagle-core`: Finagle client/server APIs: s/target/addr/g
- `finagle-core`: Introduce swappable schedulers, ThreadPool scheduler.
- `finagle-core`: Replacing ostrich-specific Stats with StatsReceiver interface
- `finagle-core`: Tests for BroadcastStatsReceiver
- `finagle-core`: adding service name to a service exception
- `finagle-core`: fix file mispelling for StabilizingGroup.scala
- `finagle-core`: fix memory leak in Group#fromCluster
- `finagle-core`: refactor use of InetSocketAddress group and deprecate use of cluster in cache client
- `finagle-http`: Add Access-Control-Expose-Headers to Finagle CORSFilter
- `finagle-http`: Fix Path comments, improve sbt definition
- `finagle-http`: Http connection manager: close synchronously
- `finagle-http`: Make behavior of HttpMuxer match its javadoc
- `finagle-http`: Mix in Proxy with HttpMessageProxy
- `finagle-http`: bump request/response sizes to 5 megs
- `finagle-memcached`: Memcached Ketama Client Builder: Add group support that is compatible with oldlibmemcached , creates CacheNodes with ipAddress instead of hostname.
- `finagle-memcached`: Update jackson to 2.2.2
- `finagle-memcached`: allow custom key in ketama client
- `finagle-memcached`: better exception messages for invalid keys
- `finagle-memcached`: migration client
- `finagle-ostrich4`: improve perf of Counter and Stat
- `finagle-swift`: experimental swift-based thrift server and client An experimental annotation based proxy and dispatcher for thrift, using Facebook???s swift for serialization.
- `finagle-thrift`: breaking out finagle, higher-kinded-type interface
- `finagle-thrift`: fix finagle-thrift rich to work with scrooge 3.6.0
- `finagle-thrift`: move scrooge-runtime to scrooge
- `finagle-thrift`: remove use of deprecated generated ostrich ThriftServer
- `finagle-zipkin`: Add newlines to scribe message
- `finagle-zipkin`: Use better metric names for error stats
- `finagle-zipkin`: optimize scribe logging to not need slf4j
6.5.2
~~~~~
- finagle-ostrich4: set stats export URI to stats.json
- finagle-core: Introduce StabilizingGroup which cautiously removes items from a Group
- finagle-core: Add group method to ClientBuilder
- finagle-core: Add service/client name to ServiceTimeoutException
- finagle-mux: Don't allocate headers via direct buffers
- finagle-http: Implement missing modifiers in Http case class
- finagle-memcache: added support for twemcache commands
6.5.1
~~~~~
- `finagle-http`: Move routing by path and method function to RoutingService
- `finagle-redis`: Switching from Strings to ChannelBuffers for Scored Zrange commands
- `finagle-stats`: Upgrade metrics to 0.0.9
- `finagle-stream`: Revert "Stream interface (i.e. chunked) for HTTP message bodies"
- `finagle`: Fix documentation about Java & Future
- `finagle`: Refresh OWNERS/GROUPS in all subdirectories
- `finagle`: Upgrade Netty version to 3.6.6.Final
- `finagle`: Upgrade ostrich version to 9.1.2
- `finagle`: Upgrade util version to 6.3.7
- `finagle-redis`: Implement new SET syntax introduced in redis 2.6.12
- `finagle-core`: Open connection threshold et al
6.5.0
~~~~~
- `finagle-core`: fix a bug in Trace.unwind in ruby
- `finagle-core`: speed up tracing when a trace is unsampled.
- `finagle-redis`: implement PEXPIRE/PEXPIREAT/PTTL
- `finagle-redis`: Make the multiple argument version of zAdd a separate method.
- `finagle-serverset`: create a ZkAnnouncer
- `finagle-thriftmux`: make thriftmux server back compatible with thrift framed codec
- `finagle-zipkin`: Performance improvement for finagle-zipkin
- `finagle`: Gizzard: Some followup deps alignment to fix deployment classpath issues
- `finagle-memcached`: KetamaClient based on finagle-6 API
- `finagle-exception`: unique namespace for scribe
- `finagle-thrift`: Add scrooge3 support
- `finagle`: bump sbt util/finagle version
- `finagle`: Updating owner list
- `finagle`: Upgrade util to 6.3.6 and scrooge-runtime to 3.1.2
6.4.1
~~~~~
- `finagle-http`: CookieMap instead of CookieSet
- `finagle-memcached`: remove items stats test since twemcache does not carry those
- `finagle-http`: don't choke on HEAD requests
- `finagle-core`: ReusingPool: fix race between setting Future.never and initiating connect
- `finagle-thriftmux`: also release services
- `finagle-http`: Use the correct dispatcher for RichHttp and new API
- `finagle-exception`: a loadable exception reporter
- `finagle-core`: make global flags consistently camelCase
- `finagel-http`: enable tracing by default for Http
- `finagle-http`: Call super method only if response is not chunked
- `finagle-core`: Tracing changes to annotate both client and server ip addresses
- `finagle-http`: Stream interface (i.e. chunked) for HTTP message bodies
- `finagle-core`: get a resolver instance contained in the main Resolver
- `finagle-mux`: fix TagMap.iterator
- `finagle-mdns`: Adding project to sbt
- `inagle`: Fix doc
- `finagle-mysql`: refactor endec into proper fsm
- `finagle`: Update sbt project for (util, ostrich, finagle)
6.4.0
~~~~~
- `finagle-core`: Add unmanaged cache pool cluster
- `finagle-core`: Always enable TracingFilter even when no tracers are used.
- `finagle-core`: cache the cancelled connections in WatermarkPool instead of CachingPool
- `finagle-core`: Fix behavior of proxy forwarding in StatsReceiver
- `finagle-core`: Fix usage of RollupStatsReceiver in StatsFactoryWrapper.
- `finagle-core`: Generalize LoggingFilter
- `finagle-core`: HeapBalancer: fix handling of unavailable nodes
- `finagle-core`: Properly synchronize concurrent access to ProxyService state.
- `finagle-core`: Refactor Heapbalancer, remove usage of per host statsReceiver.
- `finagle-core`: share worker pools between server and client
- `finagle-exception`: Fix sourceHost supplied to chickadee exception reporter
- `finagle-http`: Add HttpConnectHandler and HttpClientCodec in the correct order when setting up an HTTP proxy client.
- `finagle-http`: add Response(status)
- `finagle-http`: EncodeBytes/decodeBytes for Request
- `finagle-http`: Refactor HeaderMap/ParamMap
- `finagle-memcache`: change to use consistent way to provide failure accrual params
- `finagle-memcached`: Propagating error message from server to client
- `finagle-memcached`: support for configuring numReps in KetamaClientBuilder
- `finagle-mux`: convert tests to use ScalaTest
- `finagle-mysql`: Ability to deal with non-ascii utf-8 characters
- `finagle-mysql`: Add ability to pass StatsReceiver to builder
- `finagle-mysql`: adds support for latin1_bin, paves the way for more charsets.
- `finagle-mysql`: Encode all the given the error information in the ServerError
- `finagle-mysql`: Fix improper use of ServiceFactory in Client
- `finagle-redis`: Fix byte encoding problem with Z(Rev)Rank
- `finagle-redis`: fixing Nil values in MBulkReplies
- `Finagle-zipkin`: decoupled sampling logic from ZipkinTracer to make a reusable SamplingTracer
- `finagle-zipkin`: Improve zipkin trace sampling
- `finagle-zipkin`: make ZipkinTracer loadable
- `finagle`: Document metrics
- `finagle`: Force service loader to return a concrete collection
- `finagle`: Refactor Future#get to Await.result
- `finagle`: Upgrade jackson to 1.9.11
- `finagle`: Upgrade ostrich to 9.1.1
- `finagle`: Upgrade util to 6.3.4
6.3.0
~~~~~
- `finagle`: Upgrade util to 6.3.0
- `finagle-thrift`: SocketAddress when serving an iface
- `finagle-core`: Specify DefaultTimer when creating a ChannelFactory
- `finagle-core`: DefaultClient/Server: Do not add TracingFilter if NullTracer is used
6.1.4
~~~~~
- `finagle-zipkin`: tracing improvements
- `finagle`: Upgrade util to 6.2.5
6.1.3
~~~~~
- `finagle-core`: Add BroadcastCounter and BroadcastStat, refactor Broadcast and Rollup Receiver.
- `finagle`: update sbt, add finagle-exp
- `finagle-doc`: Add a FAQ, add an entry about CancelledRequestExceptions
- `finagle-core`: Add client support for proxies that support HTTP CONNECT, such as squid.
- `finagle-doc`: A few wording fixes in Sphinx doc templates.
- `finagle-core`: StatsFilter: Check for WriteException-wrapped backup-request losers
- `finagle-mysql`: bug fixes
- `finagle`: Update sbt project definition
- `finagle-core`: Introduce DefaultTracer that load available Tracers via LoadService + Fix equality with NullStatsReceiver
- `finagle-core`: CachingPool: Do not schedule timer tasks if ttl is Duration.Top
6.1.2
~~~~~
Released 2013/03/21
- `finagle`: Fix flakey tests
- `finagle`: fix sbt build
- `finagle`: Upgrade util to 6.2.4
- `finagle-core`: Fix reporting bug for pending reqs
- `finagle-core`: Move Disposable/Managed to util
- `finagle-core`: Use Future.Nil
- `finagle-doc`: Improve, add Matt Ho's talk.
- `finagle-exp`: Add BackupRequestFilter, new backup request filter using response latency quantiles
- `finagle-http`: Avoid URISyntaxException
- `finagle-memcached`: Add Replication Cache Client
- `finagle-mysql`: Make prepareAndExecute and prepareAndSelect useful again.
- `finagle-mysql`: Make sure we are properly managing prepared statement
- `finagle-mysql`: Move interfaces outside of protocol package
- `finagle-redis`: Moved redis server classes from private to public
- `finagle-thrift`: fix 2.10 build
6.1.1
~~~~~
Released 2013/03/12
- `doc`: Finagle user guide!
- `finagle`: Remove finagle's dependence on jerkson.
- `finagle`: Upgrade Netty to 3.5.12
- `finagle`: Upgrade scrooge-runtime to 2.4.0
- `finagle`: Upgrade util to 6.2.2
- `finagle-core`: com.twitter.finagle.Group: introduce names, use them.
- `finagle-core`: deprivatize, document Client, Server.
- `finagle-core`: fix multiple stats bugs.
- `finagle-core`: Log Finagle's version number on startup.
- `finagle-core`: RetryingFilter, don't retry on CancelledRequestException.
- `finagle-http`: New Request object queryString utility functions.
- `finagle-http`: New Request/Response encode/decode functions.
- `finagle-memcached`: Actively reestablish zk connection whenever disconnected or expired.
- `finagle-memcached`: Cache pool cluster not updated since 2nd serverset change.
- `finagle-memcached`: Don't use deprecated FuturePool.defaultPool.
- `finagle-mysql`: Add project in the list of deployed jar.
- `finagle-mysql`: Fix race condition in the authentication process.
- `finagle-mysql`: Move it to experimental package.
- `finagle-ostrich4`: Add OstrichExporter to enable Ostrich stats in the new App stack.
- `finagle-redis`: Add support for INFO command.
- `finagle-resolver`: additional visibility for Announcers and Resolvers.
- `finagle-zipkin`: new factory methods.
6.1.0
~~~~~
Released 2013/01/30
- `finagle`: update util and ostrich dependencies
- `finagle`: libraries: preliminary 2.10 port/build
- `finagle`: Tracer use new daemon() flag; get rid of factory. Simplify.
- `finagle`: refactor clients and servers to be simpler, more logical.
- `finagle-core`: Provide a reportHostStatsTo API on ClientBuilder that per-host stats will be reported to.
- `finagle-core`: Use Groups in place of Clusters
- `finagle-core`: Create a NonShrinkingCluster
- `finagle-redis`: made zRange... commands work more like the actual redis commands
- `finagle-stats`: new project that provides a StatsReceiver based on Twitter's Metrics library.
- `finagle-http`: add new-style client and server, including a primitive URL fetcher
6.0.5
~~~~~
Released 2013/01/22
- `finagle-core`: basic SOCKS support for finagle clients, intended for use with ssh -D.
6.0.4
~~~~~
Released 2013/01/22
- `finagle-core`: CachingPool owns connections and caches them even if upstream cancels
- `finagle-core`: Eliminate varargs overhead in StatsReceiver.time and timeFuture
- `finagle-core`: LoadBalancerTest: allow the tests to be run with Google Caliper
- `finagle-core`: make snap on mapped cluster thread-safe
- `finagle-memcached`: explicitly pass in initial cache nodes when using a a static cluster
- `finagle-native`: fix up grab_and_path_tomcat_native
- `finagle-redis`: finagle redis btree sorted set commands
- `finagle-redis`: Implemented redis HMSET
- `finagle-redis`: expireAt command
6.0.3
~~~~~
Released 2012/12/18
- `finagle-mux`: new session protocol
- `documentation`: document connection management and associated configuration options
- `finagle-core`: expose newChannelTransport in Codec to allow multiplexing in clients
- `finagle-http RequestProxy`: proxy response
6.0.2
~~~~~
Released 2012/12/11
- `TimerSpec, RefcountedSpec`: make deterministic
- `finagle-core`: JSSE SSL support for intermediate certificates
- `finagle-core`: push SSLEngine all the way up to the ServerBuilder
- `finagle-core`: preclude default SourceMonitor in clients
- `finagle-core`: ReusingPool for pipelined, multiplexed clients
- `finagle-core`: remove wasteful RichLong allocations in hot path
- `finagle-core`: move acquire/release of services outside of WatermarkPool's synchronization
- `finagle-core`: remove unintended reflection-by-refinement-type
- `finagle-thrift`: actually support multiple protocols
- `finagle-ostrich4`: configurable delimiter
- `finagle-redis`: parse case-insensitive commands
6.0.1
~~~~~
Released 2012/11/26
- Use java.util.ArrayDeque in place of mutable.Queue due to https://issues.scala-lang.org/browse/SI-6690
6.0.0
~~~~~
Released 2012/11/26
- util 6.0.0 dependency
- `finagle-core`: new client/server APIs; not yet exposed to users
5.x
----
5.3.23
~~~~~~
Released 2012/11/21
- `finagle-spdy`: new codec
- `finagle-core`: ServiceTimeoutException is now a WriteException (so they can be retried)
- `finagle-core`: close channels owned by ChannelTransport before failing queues
- `finagle-core`: share ChannelStatsHandler in clients and servers to avoid excessive stats-related weakrefs
- `finagle-core`: don't leak Spooled updates in the HeapBalancer
5.3.22
~~~~~~
Released 2012/11/08
- `finagle-redis`: String commands
- `finagle-redis`: collection.Set => collection.immutable.Set per #116
- `finagle-thrift`: SeqIdFilter: Don't modify thrift requests.
- `BackupRequestFilter`: experimental service filter to perform backup requests
5.3.20
~~~~~~
Released 2012/10/26
- `finagle-redis`: fix zrevrangebyscore (https://github.com/twitter/finagle/issues/114)
- `finagle-memcached`: fix space leak when using clustering
- `finagle-core`: special case 1-hosted (static) clients to bypass loadbalancer
- `finagle-core`: Introduce an experimental buffer-based pool
5.3.19
~~~~~~
Released 2012/10/16
- Upgrade ostrich to 8.2.9
- Upgrade util to 5.3.13
- Upgrading slf4j to 1.6.1
- `finagle`: Rm usage of deprecated Predef.error.
- `finagle-core`: Changed stats name in ChannelStatsHandler from exception msg to getClass.getName
- `finagle-core`: Add counters to track disconnections due to Idle activity (both read/write)
- `finagle-core`: Add "adds"/"removes" counters in HeapBalancer to track modifications
- `finagle-core`: Added name to HeapBalancer init (via exception) if HB size is 0
- `finagle-core`: Don't log dropped events: they are actually quite numerous.
- `finagle-kestrel`: Disable failFast for kestrel.
- `finagle-memcached`: Cluster support within finagle-memcached (phase 2)
- `finagle-redis`: added new commands
5.3.18
~~~~~~
Released 2012/09/27
- `Doc`: update README with working thrift Java example
- `Doc`: fix compile errors in examples
- `finagle-http`: fix typo in RequestBuilder API
- `finagle-stress`: FrontEndServerStress refactor; now generates runnable binary
- `finagle-core`: add optional `shouldRetry` argument to RetryPolicy.tries
- `finagle-core`: pools propagate underlying availability correctly
- `finagle-core`: move fail-fast before the pool. This prevents it from masking errors from the failure accrual mechanism, and is arguably the "correct" placement
- `finagle-core`: fix argument type in RetryingFilter.apply
- `finagle-core`: failFast by default; disable for Kestrel
- `finagle-memcached`: cache-pool specific Cluster implementation
- `finagle-memcached`: add stat to cache-pool cluster
- `finagle-redis`: add scan, hscan commands
- `finagle-redis`: add list commands
5.3.9
~~~~~
Released 2012/09/07
- `finagle`: Update/fix README
- `finagle`: Upgrade util to 5.3.10
- `finagle`: Update guava to v13
- `finagle-redis`: API v2 + update example
- `finagle-thrift`: validate connections based on TApplicationException
- `finagle-core`: SSL: fix connection failure propagation in futures
5.3.8
~~~~~
2012/08/24
- `finagle-core`: Upgrade to Netty 3.5.5
5.3.7
~~~~~
Released 2012/08/24
- `Doc`: Fix mistake in finagLe README that claimed Future objects have a getContentAsync method
- `Doc`: Fix typos in README
- `finagle-thrift`: ThriftChannelBufferDecoder: fix for composite buffers
- `finagle-mysql`: MySQL codec from Ruben Oanta.
- `finagle-core`: add isSuccess to FailureAccrualFactory
- `finagle-http`: Fix file extension bug in finagle-http
5.3.6
~~~~~
Released 2012/06/17
- `Doc`: Typos
- `finagle-core`: fix canceling recurring timers
- `finagle`: kill finagle-memcached-hadoop
- `finagle-memcached`: in-process memcache server now supports expiry
- `finagle-memcached`: Adding key length validation and refactor validation logic.
5.3.5
~~~~~
Released 2012/08/10
- `finagle-core`: Fixed stats visibility
- `finagle-serversets`: allow specification of an additional endpoint name in ZookeeperServerSetCluster
- `finagle-serversets`: ZookeeperServerSetCluster.join now return an EndpointStatus + Named/Daemonized init thread
- `finagle-core`: Changed Cache's internal implementation from queue to deque (to allow LIFO behavior)
- `finagle-core`: cluster initialization honors global timeout in ClientBuilder.
- `finagle-stress`: finagle: kill obsolete benchmark
5.3.4
~~~~~
Released 2012/08/02
- `finagle`: patch public release of OSS libraries; catch up sbt
- `finagle-core`: netty 3.5.3.Final
- `finagle-core`: Timer: address review comments, fix tiny race
5.3.3
~~~~~
Released 2012/07/31
- `finagle-core`: Timer: dispose timeouts on cancellation
5.3.2
~~~~~
Released 2012/07/31
- `finagle-core`: Fix critical bug in Timer by refactoring the Timer model
- `finagle`: Add OWNERS file to finagle-memcached, finagle-redis
- `finagle-redis`: add keys and hkeys
- `finagle-zipkin`: Add a debug flag, add an i64 bit field to the thrift request header struct and as a http header
- `finagle-core`: SourceTrackingMonitor to report whether it's in client or server
- `finagle-zipkin`: Add duration to the the JVM gc annotation.
5.3.1
~~~~~
Released 2012/07/20
- `finagle-serversets`: Use authenticated zookeeper client suggested for new SD cluster migration
- `finagle-thrift`: seqid filter: improved tests
- `finagle-zipkin`: Add duration to annotations for timing operations
- `finagle-serversets`: bump up server-set version to 1.0.10 (latest) in finagle-serversets
5.3.0
~~~~~
Released 2012/06/25
- `finagle-core`: ClientBuilder and ServerBuilder's MonitorFilter to report exception sources
- `finagle-test`: Add TaskTrackingTimer benchmark
- `finagle-thrift`: SeqIdFilter: helpful exceptions
- `Dispatcher`: all write exceptions are wrapped with WriteException
5.1.0
~~~~~
Released 2012/06/14
- `finagle`: Upgrade util to 5.2.0, ostrich to 8.1.0
- `finagle-redis`: extend codec
- `finagle-memcache`: first phase of serverset support
- `finagle-b3`: we are using zipkin now
- `finagle-kestrel`: Kill com.twitter.concurrent.Channel
- `finagle-core`: JvmFiler, trace jvm events
5.0.2
~~~~~
Released 2012/06/01
- `finagle-core`: Refactor the new way of managing resources
- `finagle-core`: Add capability to drain dispatcher on expire
- `finagle-core`: ZookeeperServersetCluster notify client when underlying Cluster is ready
- `finagle-exception`: Upgrade jerkson to 0.5.0 and streamyj to 0.4.1
5.0.0
~~~~~
Released 2012/05/25
- Upgrade to scala 2.9.2
- `finagle-core`: FailFast, do not admit requests when marked failed
- `finagle-redis`: now return tuples and doubles
- `finagle-memcached`: record client recv annotation after hit/miss
- `finagle-core`: expand exception chain in StatsFilter
4.x
----
4.0.0
~~~~~
Released 2012/05/08
- `http`: add AddResponseHeadersFilter, CorsFilter
- `finagle-redis`: Add ZCard, ZRem, ZRevRange, ZRevRangeByScore commands
- `finagle-memcached`: Added b3 annotations for key hits/misses
- `finagle-memcached`: getResult/getsResult for java
- `finagle-http`: fix client codec
- `HeapBalancer`: close services that are removed from cluster
- `finagle-redis`: add tracing and stats support
- `finagle-http`: Add the client address for http traces. Also record uri after service name has been set
- `finagle-memcached`: more efficient implementation of GetResult.merged
- `finagle-redis`: return pairs for hgetall, zrangebyscores, zrevrangebyscores cmds
- `finagle-core`: introduce Transports and Dispatchers
- `tracing`: annotate client connection when tracing
- update to netty 3.4.1.Final
- prevent tenuring of response objects for responses from previously idle connections
- `finagle-redis`: add quit command
- `finagle-http`: add service multiplexer
- friendlier java interface for retries
3.x
----
3.0.0
~~~~~
Released 2012/03/14
- `ServiceToChannelHandler`: keep track of shutdowns with pending replies, don't monitor errors that occur after cancellation.
- Add two received_bytesm sent_bytes to per-channel stats.
- `http`: Add wwwAuthenticate(=) and isXmlHttpRequest
- `http`: CancelledRequestExceptions become 499s
- `clients`: experimental Fail-Fast mode (ClientBuilder.expFailFast(true))
- `b3`: Only log that a span was unfinished if we actually found one
- `thrift`: better support for one-way calls
- `server`: option for cancellation on hangup (default=true)
- `codecs`: improved support for multiplexed protocols
- upgrade to netty 3.4.0.alpha1 which fixes connect timer resolution issues. Trustin says this should be as stable as 3.3.1.Final
- `serversets`: allow for additional endpoints
- `tests`: use true ephemeral ports instead of RandomSocket
- `memcache stress`: use new command line flag library from commons
- `thrift`: concatenate arrays with System.arraycopy
- `memached`: fix bug wherein we made requests with empty keys on retries
2.x
----
2.0.1
~~~~~
Released 2012/03/01
- `commons-stats`: memoize counters
- `cluster`: don't reuse adds; keep many values per key
- `clientbuilder`: buffer handlers to avoid deadlock
2.0.0
~~~~~
Released 2012/02/27
- unify client and server factories
- `memcache stress test`: one connection per process
- `b3`: make tests deterministic
- upgrade to newest util (and to Guava r11)
1.x
----
1.11.1
~~~~~~
Released 2012/02/15
- `HeapBalancer`: safely remove services from cluster when they have requests in flight
- `http`: speed up logging
- `core`: keep track of handler walltimes
1.11.0
~~~~~~
Released 2012/02/13
- `finagle-redis`: publish.
- `http`: Message.mediaType=: no longer sets charset to utf-8
- `http`: Message.setContentType: defaults charset to utf-8
- `http`: added Message.charset, Message.charset=
- Refactor resource management inside of the builders, making lifetimes explicit
- Generic cluster API, support in the HeapBalancer for dynamic hosts list; remove other load balancers
- `redis`: memcache.Client-style interface
- `netty`: update to 3.3.1.Final, and add NPN TLS extension support
- `b3`: flush span if timeout occurs
- `b3`: java friendly tracer API
- `stress/example`: "topo", a minimal appserver-like topology for testing
- `memcache`: tunable example for benchmarking, testing
- `ServerBuilder`: major refactor & simplification
- `SummarizingStatsReceiver`: fix bug where sort didn't operate over a stable collection
1.10.0
~~~~~~
Released 2012/01/24
- `http`: Message.withX methods now have parameterized return types
- `memcached`: (Ketama) host ejection
- Noisier, more robust monitoring.
- `zk cluster`: avoid potential infinite loop
- `http streaming`: better detection, handling of dead channels
- `http`: always encode output as UTF-8
- `stream`: use offer/broker for duplex stream
- `redis`: imported finagle redis client from Tumblr. not yet published.
1.9.12
~~~~~~
Released 2012/01/05
- `SSLEngine`: do not reuse between connections
- `ServerBuilder.Server`: localAddress to get ephemeral port values
- More detailed client stats
- `kestrel`: parse parseStatsLines
- `FailFastFactory`: new fast-fail strategy with maxOutstandingConnections
- `exceptions`: add peer information to connection failures, add service name to all exceptions
- `fixes`: space leak in stats, ReliableDuplexFilter lazy load ordering
- `b3`: allow the user to specify sample rate
- `exception reporter`: share scribe connection across instances
- `finagle-ostrich`: remove, it's obsoleted by finagle-ostrich4
1.9.10
~~~~~~
Released 2011/12/02
- update to util 1.12.7
1.9.9
~~~~~
Released 2011/12/01
- update to util 1.12.6
1.9.8
~~~~~
Released 2011/11/30
- upgrade to netty 3.2.7.Final
- `streaming`: support HTTP/1.0
- `native`: fix content-length header
1.9.7
~~~~~
Released 2011/11/29
- `http`: Propagate CancelledRequestException rather than continuing
- `thrift`: deprecated LookupContext, using finagle.thrift.ClientId
- use monitors where applicable (composable widgets for handling exceptions)
- `memcache`: PHPMemCacheClient
- make RetryingFilter usable from Java
- `thrift`: convert uncaught application exceptions into TApplicationExceptions on the wire
- NoStacktrace.getStackTrace() returns non-empty stacktrace array
- kill off openConnectionsHealthThresholds (unused)
1.9.6
~~~~~
Released 2011/11/08
- `SSL`: make native provider bootstrapping code work; refactor 'Ssl' singleton
- `tracing`: Update configurations and libraries to use tracer factory introduced to make it possible to release resources properly in tracers
- `finagle-thrift`: connection options + client id
- a more flexible retry filter
1.9.5
~~~~~
Released 2011/11/04
- `ExpiringService`: add stats for idle and lifetime expiration. Deactivate() regardless of latch counter
- `Filters`: don't apply refcounts on composition, do it only (and always) in the builder
- Count pending timeouts, and export them
- `ChannelService`: release services when `prepareChannel` fails. This fixes a connection leak
- `WatermarkPool`: flush waiters on creation failure. This fixes a condition wherein we'd keep waiters unnecessarily.
- `Timeout exceptions`: include service name
- Suppress excessive logging of the exceptions that mostly caused by unreliable client connections.
- `memcached`: Add generic type support (via Client.adapt), and Array[Byte] and String instances
- `finagle-stream`: do not admit concurrent requests
- `Tracing`: Add release method to Tracer trait, add tracerFactory to builders, deprecate tracer on builders
1.9.4
~~~~~
Released 2011/10/24
- `Service`: response Future will now be cancelled if the client disconnects
- use static exceptions for TimedOutRequestException
- `kestrel`: Cancel request Future on close in kestrel ReadHandle
- `exception cleanup`: wrap all Channel exceptions with their underlying exception. This makes UnknownChannelExceptions in particular easier to debug
- `Friendlier exceptions`: In order to give very specific error messages to timeouts in finagle (so beginners know which settings in the client and server builder caused them), I'm adding lots of human-readable messages to the various TimeoutExceptions.
- `some timer bug fixes, particularly`: TimerToNettyTimer: actually cancel underlying task.
1.9.2
~~~~~
Released 2011/10/14
- `tracing`: Change SpanId to use RichU64String
- `tracing`: Trace.{enable,disable}
- `http`: http.RequestBuilder
- `http`: add common media types
1.9.1
~~~~~
Released 2011/09/28
- `memcached`: new interface for partial results (ie. retrieval failures + successes)
- `tracing`: set service name in the endpoint instead of the span
- more idiomatic KetamaClientBuilder constructor
- `tracing`: convenience methods to add binary annotations
- `finagle-http`: misc. fixes
- HeapBalancer - a new lg n load balancer (asymptotically more efficient!)
- upgrade to ostrich 4.9.0
1.9.0
~~~~~
Released 2011/08/29
- `http`: new http library
1.8.4
~~~~~
Released 2011/08/23
- `tracing`: fixed space leak
- `ssl`: integrate openssl sslengine
- `thrift`: update to sbt-thrift 2.0.1
- `stream`: always release server when we close
- `serversets`: upgraded to guava-r09
- `core`: expose stats on failed retries
1.8.3
~~~~~
Released 2011/08/12
- `thrift`: add a server-side buffered codec; fix tracing issue in buffered codec
- `http`: workaround hole in netty logic to guarantee maxRequestSize
- `serversets`: don't block on ClientBuilder construction
- `ostrich4`: update to ostrich 4.8.2
- `streaming`: reimplement HTTP chunked streaming in terms of offer/broker
- `kestrel`: buffered & merging of ReadHandles
1.8.1
~~~~~
Released 2011/08/05
- upgrade to netty 3.2.5.Final
- `kestrel`: fix visibility of ResultWithCAS
- `kestrel`: Client.{read,write}, Client.readReliably, MultiReader: suite of kestrel streaming readers (including grabby-hands replacements) using Offer/Broker
- `kestrel`: don't render timeouts > 2^31-1
- `tracing`: fix sampling bug
- `tracing`: trace the kestrel client
- quench unecessary error reporting
1.8.0
~~~~~
Released 2011/08/02
- `SSL`: perform hostname validation in the client. this is the reason for the minor bump: we change the .tls() ClientBuilder signature
- introduce util-codec dependency for use of the apache commons base 64 codec
1.7.5
~~~~~
Released 2011/07/29
- make it easier to use the NullStatsReceiver from java
- convert WriteException to a case class (github issue 25)
- add _root_. to java.util.Map import. reorder imports
- Upgrade finagle-common-stats to twitter-common-stats 0.0.16
- encode more HTTP codec errors
- adding cardinality to ServiceException
- `finagle CachingPool`: limit size to highWatermark - lowWatermark
- `exception reporting`: gzipping trace strings
- set ostrich version of finagle-ostrich4 to 4.7.3
- `ChannelServiceFactory`: encode exceptions from bootstrap.connect()
1.7.4
~~~~~
Released 2011/07/22
- `http`: convert codec exceptions into 4xx errors; report them as such upstream
- `memcache`: `gets` and `cas` support.
1.7.3
~~~~~
Released 2011/07/19
- `fix`: 1.7.2 introduced a regression in the pool that may, under certain circumstances, admit connections beyond the high watermark.
- quench exception for setting multiple Promise values when racing with write errors.
- Adds tracing support for the Memcached client. This only creates the client side annotations, no support for passing along ids and such to the memcached server.
1.7.2
~~~~~
Released 2011/07/18
- support end-to-end cancellation in finagle clients; fixes possible pool starvation conditions, and allows clients to cancel requests and reclaim resources
- `end-to-end timeouts`: introduce, .connectTimeout and .timeout. .connectTimeout is the end-to-end connection timeout (includes acquisition & TCP time), .timeout is an end-to-end request time: no requests will take longer
- some doc fixes
- misc. bug fixes