Uploaded image for project: 'REEF'
  1. REEF
  2. REEF-335

Remove the use of managed C++ in the bridge

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: In Progress
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: REEF Bridge
    • Labels:

      Description

      Some of the code in the bridge is written in managed C++. That isn't available as part of the open source .NET (yet). We should replace those code parts with C# or native C++.

        Attachments

          Issue Links

          1.
          Insert C# interface between managed C++ and current C# Sub-task Closed Doug Service  
          2.
          Replace managed C++ with pure C++ Sub-task Closed Doug Service  
          3.
          Add avsc to C# code generation for the Java/Bridge interop to the C# build. Sub-task Resolved Doug Service

          100%

          Original Estimate - Not Specified Original Estimate - Not Specified
          Time Spent - 168h
          4.
          Move current bridge Avro messages to lang/common/bridge/avro Sub-task Resolved Doug Service

          100%

          Original Estimate - 48h
          Time Spent - 48h
          5.
          Replace interop call to StartHandlerOnNext() between Java/C# bridges Sub-task Closed Doug Service

          71%

          Original Estimate - 168h
          Time Spent - 120h Remaining Estimate - 48h
          6.
          Split the manged bridge into an executable C# assembly and Java jar file Sub-task Open Doug Service

          0%

          Original Estimate - 336h
          Remaining Estimate - 336h
          7.
          Add protocol negotiation to the Java/C# avro interface so header message strings can be replace with integers. Sub-task Closed Doug Service

          0%

          Original Estimate - 336h
          Remaining Estimate - 336h
          8.
          Avro bridge C# code generation Sub-task Resolved Doug Service

          100%

          Original Estimate - 72h
          Time Spent - 72h
          9.
          Add Avro message protocol serializer to C# side Sub-task Resolved Doug Service

          100%

          Original Estimate - 168h Original Estimate - 168h
          Time Spent - 240h
          10.
          Design and implement Avro Java/C# bridge as compile time option Sub-task Closed Doug Service

          0%

          Original Estimate - 336h
          Remaining Estimate - 336h
          11.
          Add Avro message protocol serializer to Java side Sub-task Resolved Doug Service

          88%

          Original Estimate - 168h Original Estimate - 168h
          Time Spent - 192h Remaining Estimate - 24h
          12.
          Modify msbuild Avro code generation to support multiple CS from single avsc. Sub-task Resolved Doug Service

          100%

          Original Estimate - 48h
          Time Spent - 48h
          13.
          Utility class that converts an asynchronous API into a synchronous API Sub-task Resolved Doug Service

          100%

          Original Estimate - 168h Original Estimate - 168h
          Time Spent - 336h
          14.
          Replace interop call to clrSystemAllocatedEvaluatorHandlerOnNext() between Java/C# bridges Sub-task Closed Doug Service

          40%

          Original Estimate - 72h Original Estimate - 72h
          Time Spent - 48h Remaining Estimate - 72h
          15.
          Replace interop call to clrSystemActiveContextHandlerOnNext() Sub-task Open Doug Service

          0%

          Original Estimate - 72h
          Remaining Estimate - 72h
          16.
          Replace interop call to clrSystemTaskMessageHandlerOnNext() Sub-task Open Doug Service

          0%

          Original Estimate - 24h
          Remaining Estimate - 24h
          17.
          Replace interop call to clrSystemFailedTaskHandlerOnNext() Sub-task Open Doug Service

          0%

          Original Estimate - 24h
          Remaining Estimate - 24h
          18.
          Replace interop call to clrSystemHttpServerHandlerOnNext() Sub-task Open Doug Service

          0%

          Original Estimate - 24h
          Remaining Estimate - 24h
          19.
          Replace interop call to clrSystemFailedEvaluatorHandlerOnNext() Sub-task Open Doug Service

          0%

          Original Estimate - 24h
          Remaining Estimate - 24h
          20.
          Replace interop call to clrSystemCompletedTaskHandlerOnNext() Sub-task Open Doug Service

          0%

          Original Estimate - 24h
          Remaining Estimate - 24h
          21.
          Replace interop call to clrSystemRunningTaskHandlerOnNext() Sub-task Open Doug Service

          0%

          Original Estimate - 24h
          Remaining Estimate - 24h
          22.
          Replace interop call to clrSystemSuspendedTaskHandlerOnNext() Sub-task Open Doug Service

          0%

          Original Estimate - 24h
          Remaining Estimate - 24h
          23.
          Replace interop call to clrSystemCompletedEvaluatorHandlerOnNext() Sub-task Open Doug Service

          0%

          Original Estimate - 24h
          Remaining Estimate - 24h
          24.
          Replace interop call to clrSystemClosedContextHandlerOnNext() Sub-task Open Doug Service

          0%

          Original Estimate - 24h
          Remaining Estimate - 24h
          25.
          Replace interop call to clrSystemFailedContextHandlerOnNext() Sub-task Open Doug Service

          0%

          Original Estimate - 24h
          Remaining Estimate - 24h
          26.
          Replace interop call to clrSystemContextMessageHandlerOnNext() Sub-task Open Doug Service

          0%

          Original Estimate - 24h
          Remaining Estimate - 24h
          27.
          Replace interop call to callClrSystemOnRestartHandler() Sub-task Open Doug Service

          0%

          Original Estimate - 24h
          Remaining Estimate - 24h
          28.
          Replace interop call to clrSystemDriverRestartActiveContextHandlerOnNext() Sub-task Open Doug Service

          0%

          Original Estimate - 24h
          Remaining Estimate - 24h
          29.
          Replace interop call to clrSystemDriverRestartRunningTaskHandlerOnNext() Sub-task Open Doug Service

          0%

          Original Estimate - 24h
          Remaining Estimate - 24h
          30.
          Replace interop call to clrSystemDriverRestartCompletedHandlerOnNext() Sub-task Open Doug Service

          0%

          Original Estimate - 24h
          Remaining Estimate - 24h
          31.
          Replace interop call to clrSystemDriverRestartFailedEvaluatorHandlerOnNext() Sub-task Open Doug Service

          0%

          Original Estimate - 24h
          Remaining Estimate - 24h
          32.
          Replace interop call to clrSystemProgressProviderGetProgress() Sub-task Open Doug Service

          0%

          Original Estimate - 24h
          Remaining Estimate - 24h
          33.
          Replace interop call to clrSystemSetupBridgeHandlerManager() Sub-task Open Doug Service

          0%

          Original Estimate - 24h
          Remaining Estimate - 24h
          34.
          Use external executor and Runnable in MultiAsyncToSync Sub-task Resolved Sergiy Matusevych

          97%

          Original Estimate - 24h Original Estimate - 24h
          Time Spent - 48h Remaining Estimate - 1h
          35.
          Create RemoteManager with given host and port; clean up the RM factory API Sub-task Resolved Sergiy Matusevych

          76%

          Original Estimate - 4h Original Estimate - 4h
          Time Spent - 13h Remaining Estimate - 4h
          36.
          Make ProtocolSerializer java class injectable by Tang Sub-task Resolved Sergiy Matusevych

          50%

          Original Estimate - 24h Original Estimate - 24h
          Time Spent - 24h Remaining Estimate - 24h
          37.
          Use injection in C# ProtocolSerializer Sub-task Closed Sergiy Matusevych

          85%

          Original Estimate - 72h
          Time Spent - 24h Remaining Estimate - 4h Time Not Required
          38.
          Implement network transport for the Java-CLR bridge Sub-task Closed Sergiy Matusevych

          0%

          Original Estimate - 120h
          Remaining Estimate - 120h
          39.
          Implement network transport for the Java-CLR bridge in C# Sub-task Resolved Sergiy Matusevych

          0%

          Original Estimate - 120h
          Remaining Estimate - 120h
          40.
          Message framework skeleton for all Java to C# calls Sub-task Closed Doug Service  
          41.
          Cross language tests of bridge messaging components Sub-task Closed Doug Service  
          42.
          Proof of concept replacing managed C++ with pinvoke Sub-task Closed Doug Service  
          43.
          Add native dll project for bridge pinvoke code Sub-task Closed Doug Service  
          44.
          Add new C# .NET Core executable project to dotnet solution for C# side of two process bridge Sub-task Resolved Doug Service  
          45.
          Add gRPC code generation to C# side of two process bridge project Sub-task Resolved Doug Service  
          46.
          Create Java project for gRPC two process bridge Sub-task Resolved Tyson Condie  
          47.
          Make Driver Service a static configuration Sub-task Open Tyson Condie  
          48.
          Implement C# bridge client using gRPC generated stubs Sub-task In Progress Doug Service  
          49.
          Implement HelloREEF on C# bridge client Sub-task In Progress Doug Service  
          50.
          Add Azure batch support to new bridge Sub-task Open Tyson Condie  

            Activity

              People

              • Assignee:
                dougservice Doug Service
                Reporter:
                markus.weimer Markus Weimer
              • Votes:
                1 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:

                  Time Tracking

                  Estimated:
                  Original Estimate - 3,628h Original Estimate - 3,628h
                  3,628h
                  Remaining:
                  Time Spent - 1,885h Remaining Estimate - 2,265h
                  2,265h
                  Logged:
                  Time Spent - 1,885h Remaining Estimate - 2,265h
                  1,885h