Marius Eriksen considers that scalability problems appear when leaky abstractions are used, exemplifying with RDBMS, GC, and threads, presenting abstractions that help dealing with scalability issues: map-reduce, shared-nothing web applications, big table, all providing narrow access to explicit resources.
Marius Eriksen works on systems infrastructure at Twitter. Prior to that he architected Mixer Labs' GeoAPI.com database services, and worked on systems infrastructure at Google.
QCon is a conference that is organized by the community, for the community.The result is a high quality conference experience where a tremendous amount of attention and investment has gone into having the best content on the most important topics presented by the leaders in our community.QCon is designed with the technical depth and enterprise focus of interest to technical team leads, architects, and project managers.
JPA as 'dishonest abstraction'
JPA is *not* an abstraction. It is a View in a classic MVC design pattern. The model being good, old RDBMS. A view is *not* an abstraction of a model. Nor is JPA or ORM is an abstraction of RDBMS.
Like many other views, JPA presents the user an 'object-oriented' view of a relational database. Like any other views, JPA does not substitute or abstract the underlying model, just provides yet another perspective to a model and one takes (or rejects) a view purely based on their world view.
For a Java developer dealing with a complex graph like domain model, yes, there is some definite advantage of taking a JPA view of a relational schema.
For a batch upload of million flat records from a CSV file -- JPA brings nothing to the table.