Change search
ReferencesLink to record
Permanent link

Direct link
Instant pickles: generating object-oriented pickler combinators for fast and extensible serialization
EPFL, Switzerland.
Typesafe, Switzerland.ORCID iD: 0000-0002-2659-5271
EPFL, Switzerland.
EPFL, Switzerland.
2013 (English)In: OOPSLA 2013: Proceedings of the 2013 ACM SIGPLAN International Conference on Object Oriented Programming Systems Languages & Applications, 2013, 183-202 p.Conference paper (Refereed)
Abstract [en]

As more applications migrate to the cloud, and as "big data" edges into even more production environments, the performance and simplicity of exchanging data between compute nodes/devices is increasing in importance. An issue central to distributed programming, yet often under-considered, is serialization or pickling, i.e., persisting runtime objects by converting them into a binary or text representation. Pickler combinators are a popular approach from functional programming; their composability alleviates some of the tedium of writing pickling code by hand, but they don't translate well to object-oriented programming due to qualities like open class hierarchies and subtyping polymorphism. Furthermore, both functional pickler combinators and popular, Java-based serialization frameworks tend to be tied to a specific pickle format, leaving programmers with no choice of how their data is persisted. In this paper, we present object-oriented pickler combinators and a framework for generating them at compile-time, called scala/pickling, designed to be the default serialization mechanism of the Scala programming language. The static generation of OO picklers enables significant performance improvements, outperforming Java and Kryo in most of our benchmarks. In addition to high performance and the need for little to no boilerplate, our framework is extensible: using the type class pattern, users can provide both (1) custom, easily interchangeable pickle formats and (2) custom picklers, to override the default behavior of the pickling framework. In benchmarks, we compare scala/pickling with other popular industrial frameworks, and present results on time, memory usage, and size when pickling/ unpickling a number of data types used in real-world, large-scale distributed applications and frameworks.

Place, publisher, year, edition, pages
2013. 183-202 p.
National Category
Computer Science
URN: urn:nbn:se:kth:diva-165626DOI: 10.1145/2509136.2509547ISI: 000327697300010ScopusID: 2-s2.0-84888192972ISBN: 978-145032374-1OAI: diva2:808709
2013 ACM SIGPLAN International Conference on Object Oriented Programming Systems Languages & Applications, Indianapolis, IN, USA, October 26-31, 2013

QC 20150521

Available from: 2015-04-29 Created: 2015-04-29 Last updated: 2015-05-21Bibliographically approved

Open Access in DiVA

No full text

Other links

Publisher's full textScopus

Search in DiVA

By author/editor
Haller, Philipp
Computer Science

Search outside of DiVA

GoogleGoogle Scholar
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

Altmetric score

Total: 27 hits
ReferencesLink to record
Permanent link

Direct link