Permalink
Commits on Feb 11, 2017
  1. fixed grammar error (#70)

    paloobi committed with lomafor Jan 20, 2017
  2. Fix d2 quarantine pre-healthchecking related issues

    1. d2 quarantine uses the requesting thread for pre-enabling healthcheck.
    2. The pre-healthchecking accesses all trackerclients, which might exahust
       the file handle or connections when the downstream service host number is huge.
    
    RB=916286
    G=si-core-reviewers
    R=ssheng,dhoa
    A=dhoa
    Chao Xu committed Feb 10, 2017
  3. Support surrogate pairs for UTF-16 strings in URI encoding/decoding a…

    …nd releasing new version of pegasus
    
    RB=916880
    G=si-dev
    R=xma
    A=xma
    Kenta Labur committed Feb 10, 2017
Commits on Feb 8, 2017
  1. EntityStreams: added the capability to all the Throwable, in particul…

    …ar the unchecked "Error"s
    
    TestEntityStream: refactored the tests to check for both RuntimeException and Error thrown inside the handlers
    
    RB=912675
    BUG=SI-3319
    G=si-core-reviewers
    R=ssheng,jodzga,ssodhani
    A=jodzga
    fcapponi committed Feb 7, 2017
Commits on Feb 7, 2017
  1. releasing 10.1.1

    Jesse Jie committed Feb 7, 2017
Commits on Feb 2, 2017
  1. fix the changelog

    Jesse Jie committed Feb 2, 2017
  2. Using Treemap to allow QueryTunnelUtil.decode to parse case insensiti…

    …ve http headers
    
    RB=906111
    G=si-core-reviewers
    R=kbalasub,mnchen,jnchen,dhoa,xma,kvidhani,ssheng
    A=ssheng,xma,mnchen
    Jesse Jie committed Feb 2, 2017
Commits on Feb 1, 2017
Commits on Jan 31, 2017
  1. Release 10.0.2

    ssheng committed Jan 31, 2017
  2. [pegasus] Implement disruptor interfaces and core classes

    RB=891773
    G=si-core-reviewers,si-dev
    R=bfeng,lrosen,dhoa,nweragam
    A=bfeng,dhoa
    ssheng committed Jan 31, 2017
Commits on Jan 28, 2017
  1. Reduce the error messages generated by quarantine

    Quarantine can spam the logfile with error messages when the cluster has many hosts.
    This change trying to cut down some of the messages:
    
    . For failing response (eg when OPTIONS method is not supported), reduce the level to debug as
      most of the services have been identified and disabled.
    . For delay error messages: reduce the level to debug so errors won't show up in logfile in most cases.
    . RateLimtting the final error message.
    
    RB=897071
    G=si-core-reviewers
    R=ssheng,dhoa
    A=dhoa
    Chao Xu committed Jan 14, 2017
Commits on Jan 27, 2017
  1. Release 10.0.1

    ssheng committed Jan 27, 2017
  2. [pegasus] Delay releasing channel until entity stream is either done …

    …or aborted
    
    RB=898748
    G=si-core-reviewers
    R=dhoa,bfeng,sihde,cgetz
    A=dhoa
    ssheng committed Jan 27, 2017
Commits on Jan 25, 2017
  1. Add attribute pagingSupported in method schema and indicate in restsp…

    …ec if get_all and finder methods support paging.
    
    The feature was requested by partner engineering team who wanted to
    indicate to external developers if a method supported paging.
    
    The solution was to look at method parameters of finder and get_all
    methods and if it contained PagingContextParam, then add an attribute to
    the idl to indicate the method supported paging.
    This change has the side effect of generating modified idls for any
    existing resource that had a get_all or finder method with paging. Hence
    it was decided to make this change a major version so current users do
    not see un-intended changes to rest specs.
    
    Backward Compatibility:
    The pegasus backwards compatibility checker is updated to include the
    pagingSupported field during the checks.
      - Adding paging support to existing method is backward compatible.
      - Removing pagain support to existing method is backward incompatible.
        This is because a client might have application logic relying on the
    servers pagination support and removing it can cause undesired
    side-effects.
    
    RB=885516
    G=si-dev
    R=aponniah,xma,mnchen
    A=aponniah,kvidhani
    karthikbalasub committed Dec 15, 2016
Commits on Jan 24, 2017
  1. RootBuilderSpec should provide a way to tell if it is a subresource.

    RB=902053
    BUG=VOYINF-13393
    G=si-dev
    R=klabur,xma
    A=klabur,xma
    mchen07 committed Jan 24, 2017
Commits on Jan 20, 2017
  1. Remove the route percent checking in the test

    Consistent hashing can generate unbalanced distribution, depending on the
    random numbers generated. Therefore checking the final routing numbers is
    not very stable, which causes random testing failure. Removing these checkings
    from the test. Now we only check the points for each host.
    
    RB=900756
    G=si-core-reviewers
    R=ssheng,dhoa
    A=jnchen
    Chao Xu committed Jan 20, 2017
  2. Allow http.maxResponseSize to be Long type

    maxResponseSize allows to be Long but the converter forces Integer which causes
    problem when the data is set to bigger than Integer.
    
    RB=900430
    G=si-core-reviewers
    R=ssheng,dhoa
    A=ssheng
    Chao Xu committed Jan 20, 2017
Commits on Jan 14, 2017
  1. Fix unit test failure caused by code change

    RB=896997
    G=si-core-reviewers
    R=ssheng,dhoa
    A=dhoa
    Chao Xu committed Jan 14, 2017
Commits on Jan 13, 2017
  1. Force to convert QuarantineLatency to String

    Without the forcing, it ends up with a number when used to serialize the properties for ZK writes. This is inconsistent to d2-config-cmdline original behavior and causes problem when d2-config-service tries to de-serialize it back because the number is always converted to Integer instead of Long type.
    
    RB=896742
    G=si-core-reviewers
    R=ssheng,dhoa
    A=dhoa
    Chao Xu committed Jan 13, 2017
Commits on Dec 22, 2016
  1. Fixed test failures in TestMultiplexerRunMode and TestParseqTraceDebu…

    …gRequestHandler
    
    RB=888618
    G=si-dev
    R=jodzga,mnchen,aponniah,kbalasub
    A=kbalasub
    lomafor committed Dec 22, 2016
Commits on Dec 21, 2016
  1. [pegasus] Remove unnecessary AnyRecord allocation in CollectionRespon…

    …seBuilder
    
    CollectionResponseBuilder.buildRestLiResponseData method wraps a DataMap object into a new AnyRecord object, but that AnyRecord object is never used despite of redirecting the wrapped DataMap object to a paging metadata. This adds about 2% allocation pressure based on profile, and could be avoided by passing the DataMap object to paging metadata directly.
    Note this allocation could be optimized via escape analysis if the method becomes hot and gets compiled by C2, but this fix will still remove extra computation (i.e. object initialization).
    
    RB=887380
    G=si-dev
    R=kbalasub,sihde,mnchen,dhoa,xma,kvidhani,ssheng
    A=kbalasub
    Chen Li(Performance Engineering) committed Dec 20, 2016
Commits on Dec 20, 2016
  1. Fix bug in pegasus plugin. Run publishRestliIdl task only if rest-spec

    is not equivalent.
    
    RB=885639
    BUG=TOOLS-128634
    R=klabur,xma,mnchen
    A=klabur,xma,mnchen
    karthikbalasub committed Dec 16, 2016
Commits on Dec 19, 2016
  1. fixed the missing dep build issue

    RB=886487
    G=si-dev
    R=kbalasub,aponniah
    A=kbalasub
    lomafor committed Dec 19, 2016
Commits on Dec 16, 2016
  1. Release 9.0.3

    ssheng committed Dec 16, 2016
  2. [pegasus] Add utility methods to convert rest and stream TransportCal…

    …lback
    
    RB=883693
    G=si-core-reviewers
    R=wjohnson,bfeng
    A=bfeng
    ssheng committed Dec 16, 2016
  3. Added null annotation to generated data models

    RB=854847
    BUG=SI-3125
    G=si-dev
    R=smurali,cazhang,xma,wfender,kramgopa,nshankar
    A=smurali,kbalasub,cazhang
    lomafor committed Dec 16, 2016
  4. release 9.0.2

    lomafor committed Dec 16, 2016
  5. Fix wrong error message in converting key string.

    RB=884997
    BUG=SI-3244
    G=si-dev
    R=kbalasub,klabur,xma
    A=xma
    mchen07 committed Dec 15, 2016
Commits on Dec 15, 2016
  1. Update CHANGELOG with recent commits.

    RB=884669
    G=si-dev
    A=jnchen
    Chen Li(Performance Engineering) committed Dec 15, 2016
Commits on Dec 12, 2016
  1. [RecordTemplate] Do not allocate _cache until the first usage.

    RecordTemplate uses DataObjectToObjectCache<Object> as a cache to access Wrapped and CustomType data, _cache field is allocated as part of the initialization of RecordTemplate. However, this allocation could become a waste if _cache is never used (i.e. in EmptyRecord), and it won't become dead and garbage-collected until the RecordTemplate object dies. By profiling restli-perf-pegasus server, we found that around 2% - 3% of TLAB (thread local allocation buffer) allocation (2.6GB) was due to DataObjectToObjectCache, and another 10% (11GB) was due to HashMap referred by DataObjectToObjectCache. To reduce memory footprint/allocation, this patch defers the allocation of _cache field until the first usage to make sure _cache is always useful. Result showed that DataObjectToObjectCache allocation became negligible, and HashMap allocation dropped to 2% (2GB).
    
    RB=879362
    G=si-dev
    R=kbalasub,sihde,mnchen,dhoa,xma,kvidhani,ssheng
    A=jnchen,dhoa,mnchen
    Chen Li(Performance Engineering) committed Dec 12, 2016
Commits on Dec 9, 2016
  1. Update CHANGELOG with recent commits (RB=876305).

    RB=880630
    G=si-dev
    R=jodzga
    A=jodzga,xma
    Chen Li(Performance Engineering) committed Dec 9, 2016
  2. Upgraded parseq version to 2.6.4.

    Added setting plan class that reflects type of request on async
    resources implemented using ParSeq.
    
    RB=876002
    jodzga committed Dec 5, 2016
Commits on Dec 7, 2016
  1. [pegasus] Add two APIs to DataMapUtils.java to support mapping DataMa…

    …p objects to Json ByteString and Pson ByteString.
    
    RestResponseBuilder.encodeResult needs to set the builder's entity with the incoming dataMap object. This is currently done by converting the dataMap object to a raw byte array (either in Json or Pson format) and passing the array to RestResponseBuilder.setEntity. Then inside setEntity it converts the array to a ByteString object by calling ByteString.copy, which involves allocating an extra raw byte array (because they want to make the ByteString object independant of the original array). This process adds unnecessary memory footprint because we allocate two byte arrays, and the first one becomes dead after the second one copies it. In restli-perf-pegasus test, this shows up as 8% - 9% memory usage (allocation pressure) from Java flight recorder. The extra allocation could be avoided by a few approaches. 1) in RestResponseBuilder.setEntity, use ByteString(byte[] bytes) constructor instead of ByteString.copy, but this requires to make the constructor from private to public, which is kinda a violation of the original OO design. 2) add APIs to DataMapUtils.java to support mapping DataMap objects to Json ByteString and Pson ByteString without copying (via ByteString.unsafeWrap). This patch chose the second approach because there's no need to change any existing data structure. With the patch, restli-perf-pegasus shows smaller memory footprint (roughly the same 10 min period), and less GC occurrances (25 -> 23, 2 less ParallelScavenge young gc).
    
    RB=876305
    G=si-dev
    R=kbalasub,sihde,mnchen,dhoa,xma,kvidhani,ssheng
    A=sihde
    Chen Li(Performance Engineering) committed Dec 6, 2016