[ https://issues.apache.org/jira/browse/MAHOUT-1529?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13987443#comment-13987443 ]
Anand Avati commented on MAHOUT-1529: ------------------------------------- Some thoughts - As an algo implementor, does one really care about platform specific details like checkpoint(mem) vs checkpoint(disk) vs cache() etc.? would it not be enough to present one generic call, like .materialize() which would either trigger the computation in the physical layer (or give it a hint)? For persistence, why not just have the explicit .writeDRM() and be done? So as an API consumer there is: .materialize() -- (trigger optimizer and computation, thereby avoiding future duplicate evaluations, translates to .checkpoint(MEM) in spark for e.g). .writeDRM(filename) -- serialize computed DRM to persistence store (implies materialization if not already) > Finalize abstraction of distributed logical plans from backend operations > ------------------------------------------------------------------------- > > Key: MAHOUT-1529 > URL: https://issues.apache.org/jira/browse/MAHOUT-1529 > Project: Mahout > Issue Type: Improvement > Reporter: Dmitriy Lyubimov > Fix For: 1.0 > > > We have a few situations when algorithm-facing API has Spark dependencies > creeping in. > In particular, we know of the following cases: > (1) checkpoint() accepts Spark constant StorageLevel directly; > (2) certain things in CheckpointedDRM; > (3) drmParallelize etc. routines in the "drm" and "sparkbindings" package. > (5) drmBroadcast returns a Spark-specific Broadcast object -- This message was sent by Atlassian JIRA (v6.2#6252)