4 research outputs found

    First Class Futures: Specification and implementation of Update Strategies

    Get PDF
    International audienceA natural way to benefit from distribution is via asynchronous invocations to methods or services. Upon invocation, a request is enqueued at the destination side and the caller can continue its execution. But a question remains: “what if one wants to manipulate the result of an asynchronous invocation?” First-class futures provide a transparent and easy-to-program answer: a future acts as the placeholder for the result of an asynchronous invocation and can be safely transmitted between processes while its result is not needed. Synchronization occurs automatically upon an access to the result. As references to futures disseminate, a strategy is necessary to propagate the result of each request to the processes that need it. This paper studies the efficient transmission of results: it presents three strategies in a semi-formal manner, providing experimental results highlighting their benefits and drawbacks

    First Class Futures: a Study of Update Strategies

    Get PDF
    Futures enable an efficient and easy to use programming paradigm for distributed applications. A natural way to benefit from distribution is to perform asynchronous invocations to methods or services. Upon invocation, a request is en-queued at the destination side and the caller can continue its execution. But a question remains: ``what if one wants to manipulate the result of an asynchronous invocation?'' First-class futures provide a transparent and easy-to-program answer: a future acts as the placeholder for the result of an asynchronous invocation and can be safely transmitted between processes while its result is not needed. Synchronization occurs automatically upon an access requiring the result. As references to futures disseminate, a strategy is necessary to propagate the result of each request to the processes that need it. This report studies the efficient transmission of results: it presents three main strategies in a semi-formal manner, and provides a cost analysis with some experiments to determine the efficiency of each strategy

    Asynchronous Components with Futures: Semantics and Proofs in Isabelle/HOL

    Get PDF
    International audienceComponents provide an easy to use programming paradigm allowing for better re-usability of application code. In the context of distributed programming, autonomous hierarchical components provide a simple model for creating efficient applications. This paper presents a model for distributed components communicating asynchronously using futures – placeholders for results. Our components communicate via asynchronous requests and replies where the requests are enqueued at the target component, and the invoker receives a future. Then, future references can be dispersed among components. When the result is available for a future, it needs to be transmitted to all interested components, as determined by a future update strategy. We present formal semantics of our component model incorporating formalisation of one such future update strategy. Our model has been mechanically formalised in Isabelle/HOL, together with the proof of properties. This approach validates the actual implementation of the future update strategy itself

    Analysis of different future objects update strategies in proactive

    No full text
    In large-scale distributed systems, asynchronous communication and future objects are becoming wide spread mechanisms to tolerate high latencies and to improve global performances. Automatic continuation, that is the propagation of a future object outside the activity that has generated it, can be used to further increase concurrency at system level through the anticipation of tasks. An important aspect of automatic continuation, which can cause different performance in different application and deployment scenarios, is the mechanism for updating result values of future objects, when they are ready. In this paper, we analyze the behaviour of the implementation of different updating strategies, by comparing them with the one currently implemented in ProActive. The experimental results show that the lazy home-based strategy behaves better than other strategies in some application scenarios that are very common in distributed applications. 1
    corecore