Source author record

Carla Ferreira

Carla Ferreira appears in the imported research catalog. Authorship, coauthor and topic links are available while profile ownership is still unclaimed.

ResearcherUnclaimed source record

Catalog footprint

What is connected

8works
4topics
4close collaborators

Actions

Connect this record

Log in to claim

Research graph

See the researcher in context

Open full explorer

Inspect adjacent papers, topics, institutions and collaborators without losing the researcher page.

Building this map preview

BZPEER is loading the nearby papers, people, topics and institutions for this page.

Published work

8 published item(s)

preprint2022arXiv

A coordination-free, convergent, and safe replicated tree

The tree is an essential data structure in many applications. In a distributed application, such as a distributed file system, the tree is replicated.To improve performance and availability, different clients should be able to update their replicas concurrently and without coordination. Such concurrent updates converge if the effects commute, but nonetheless, concurrent moves can lead to incorrect states and even data loss. Such a severe issue cannot be ignored; ultimately, only one of the conflicting moves may be allowed to take effect. However, as it is rare, a solution should be lightweight. Previous approaches would require preventative cross-replica coordination, or totally order move operations after-the-fact, requiring roll-back and compensation operations. In this paper, we present a novel replicated tree that supports coordination-free concurrent atomic moves, and provably maintains the tree invariant. Our analysis identifies cases where concurrent moves are inherently safe, and we devise a lightweight, coordination-free, rollback-free algorithm for the remaining cases, such that a maximal safe subset of moves takes effect. We present a detailed analysis of the concurrency issues with trees, justifying our replicated tree data structure. We provide mechanized proof that the data structure is convergent and maintains the tree invariant. Finally, we compare the response time and availability of our design against the literature.

preprint2020arXiv

Robust Contract Evolution in a TypeSafe MicroServices Architecture

Microservices architectures allow for short deployment cycles and immediate effects but offer no safety mechanisms when service contracts need to be changed. Maintaining the soundness of microservice architectures is an error-prone task that is only accessible to the most disciplined development teams. We present a microservice management system that statically verifies service interfaces and supports the seamless evolution of compatible interfaces. We define a compatibility relation that captures real evolution patterns and embodies known good practices on the evolution of interfaces. Namely, we allow for the addition, removal, and renaming of data fields of a producer module without breaking or needing to upgrade consumer services. The evolution of interfaces is supported by runtime generated proxy components that dynamically adapt data exchanged between services to match with the statically checked service code.The model was instantiated in a core language whose semantics is defined by a labeled transition system and a type system that prevents breaking changes from being deployed. Standard soundness results for the core language entail the existence of adapters, hence the absence of adaptation errors and the correctness of the management model. This adaptive approach allows for gradual deployment of modules, without halting the whole system and avoiding losing or misinterpreting data exchanged between system nodes. Experimental data shows that an average of 69% of deployments that would require adaptation and recompilation are safe under our approach.

preprint2015arXiv

Extending Eventually Consistent Cloud Databases for Enforcing Numeric Invariants

Geo-replicated databases often operate under the principle of eventual consistency to offer high-availability with low latency on a simple key/value store abstraction. Recently, some have adopted commutative data types to provide seamless reconciliation for special purpose data types, such as counters. Despite this, the inability to enforce numeric invariants across all replicas still remains a key shortcoming of relying on the limited guarantees of eventual consistency storage. We present a new replicated data type, called bounded counter, which adds support for numeric invariants to eventually consistent geo-replicated databases. We describe how this can be implemented on top of existing cloud stores without modifying them, using Riak as an example. Our approach adapts ideas from escrow transactions to devise a solution that is decentralized, fault-tolerant and fast. Our evaluation shows much lower latency and better scalability than the traditional approach of using strong consistency to enforce numeric invariants, thus alleviating the tension between consistency and availability.

preprint2015arXiv

Preventing Atomicity Violations with Contracts

Software developers are expected to protect concurrent accesses to shared regions of memory with some mutual exclusion primitive that ensures atomicity properties to a sequence of program statements. This approach prevents data races but may fail to provide all necessary correctness properties.The composition of correlated atomic operations without further synchronization may cause atomicity violations. Atomic violations may be avoided by grouping the correlated atomic regions in a single larger atomic scope. Concurrent programs are particularly prone to atomicity violations when they use services provided by third party packages or modules, since the programmer may fail to identify which services are correlated. In this paper we propose to use contracts for concurrency, where the developer of a module writes a set of contract terms that specify which methods are correlated and must be executed in the same atomic scope. These contracts are then used to verify the correctness of the main program with respect to the usage of the module(s). If a contract is well defined and complete, and the main program respects it, then the program is safe from atomicity violations with respect to that module. We also propose a static analysis based methodology to verify contracts for concurrency that we applied to some real-world software packages. The bug we found in Tomcat 6.0 was immediately acknowledged and corrected by its development team.

preprint2012arXiv

Identification of the Risk Related to a Process on Hospital Emergency Service: a Case Study

This paper, framed in a vast investigation, describes the application of techniques and methodologies in Organizational Engineering connected to the associated risk to the processes developed in an Emergency Service of an important Portuguese Hospital. The transactions performed in an emergency service and the consequent risk identification (negative behaviour associated to those transactions) is done based on static and dynamic models, developed during the business modelling. Any non-trivial system is better portrayed trough a small number of reasonably independent models. From this point of view it is important to look at the systems from a "micro" perspective, which allows us to analyse the system at the transaction level. All processes have some associated risk (inherent risk). Its identification will be decisive for future analysis and for the consequent decision over the need, or not, to study internal control mechanisms. This decision will depend on the risk level that the organization considers acceptable.

preprint2012arXiv

Real dqds for the nonsymmetric tridiagonal eigenvalue problem

We present a new transform, triple dqds, to help to compute the eigenvalues of a real tridiagonal matrix C using real arithmetic. The algorithm uses the real dqds transform to shift by a real number and triple dqds to shift by a complex conjugate pair. We present what seems to be a new criteria for splitting the current pair L,U. The algorithm rejects any transform which suffers from excessive element growth and then tries a new transform. Our numerical tests show that the algorithm is about 100 times faster than the Ehrlich-Aberth method of D. A. Bini, L. Gemignani and F. Tisseur. Our code is comparable in performance to a complex dqds code and is sometimes 3 times faster.

preprint2012arXiv

Structure-preserving Schur methods for computing square roots of real skew-Hamiltonian matrices

Our contribution is two-folded. First, starting from the known fact that every real skew-Hamiltonian matrix has a real Hamiltonian square root, we give a complete characterization of the square roots of a real skew-Hamiltonian matrix W. Second, we propose a structure exploiting method for computing square roots of W. Compared to the standard real Schur method, which ignores the structure, our method requires significantly less arithmetic.

preprint2012arXiv

Urgency/Emergency Health Processes' Modelling: A Case Study

The growing complexity and sophistication of the organizational information systems, and hospital ones particularly, render difficult their comprehension and, consequently, the implementation of control mechanisms that may assure, at all times, the auditability of the above mentioned systems, without having to use models. This paper, framed in a wider investigation, aims to describe the application of techniques and methodologies, in the sphere of action of Organizational Engineering, in the modelling of business processes developed in the main Operating Theatre of the Coimbra's University Hospital Emergency Service, as a support for the implementation of an information system architecture, using for that purpose the CEO framework, developed and suggested by the Centre for Organizational Engineering (CEO), based on the UML language.