[elephant-devel] Design Suggestion Request

Daniel Salama lists at infoway.net
Thu Jul 27 19:32:55 UTC 2006


That's an excellent idea. I wasn't aware there's a blog for Elephant.  
Is there one?

Thanks,
Daniel

On Jul 27, 2006, at 3:14 PM, Ben wrote:

> i wonder if these sorts of design issues for elephant newbies might be
> laid out in a document or tutorial.  perhaps the "blog in a minute"
> tutorial can be updated to reflect your more mature codebase and
> mature approaches to designing applications?  or a design faq?
>
> just an idea,
> Ben
>
> On 7/27/06, Ian Eslick <eslick at csail.mit.edu> wrote:
>> All,
>>
>> I think the long term goal is to make read/write policy something  
>> that
>> is integrated into a per-class policy with per-instance state.   
>> Robert,
>> have you forwarded that discussion we had about DCM to the list?   
>> If so
>> it should be in the archives from several months back.  The short  
>> story
>> is that you want to have different policies with different amounts of
>> explicit control based on your problem.
>>
>> For small DB's where ACID properties aren't important - just keep
>> everything in memory as if Elephant wasn't there.  If you want to  
>> save
>> something - just tell the object to store itself to get the  
>> benefits of
>> auto serialization.
>>
>> For larger DB's you might want a tiered approach:
>> - Critical new objects have read-from-memory but write-through-to- 
>> disk
>> for fast reads but safe writes
>> - Non-critical new objects are read/write from memory unless  
>> explicitly
>> checkpointed
>> - Critical objects that aren't new are read/write from disk (existing
>> Elephant default) so you don't overwhelm
>> your physical memory
>>
>> Rucksack has some of the same features as DCM, but is not yet  
>> ready for
>> real deployment (since I last looked a few months back).
>>
>> The 0.6.0 manual should have a section on indexing and the function
>> reference should have get-instances-by-class (an elephant function in
>> elephant/classindex.lisp).  defpclass may not be documented but is  
>> just
>> shorthand for adding the :metaclass class option.  Just M-. defpclass
>> with elephant loaded.  In fact the doc strings are available for all
>> these if you do M-. via Slime when the elephant package is loaded.
>>
>> The select-if is a function I use locally that just accepts each  
>> element
>> of the list accepted by the predicate, it's not a part of elephant.
>>
>> I'm not sure when we'll get to adding new major features but if  
>> someone
>> would like to dive in and think about this I'm happy to answer  
>> questions
>> about the rationale behind the code.
>>
>> Ian
>>
>> Daniel Salama wrote:
>> > Granded. Now, your original suggestion addressed the issue of using
>> > collections in slots and instead of collections of objects,  
>> simply to
>> > use collections of references to objects, which make sense and in a
>> > way is somewhat along the lines of what indexes do (from a  
>> general PoV).
>> >
>> > Not having looked at DCM yet, is it possible to just use the
>> > "persistence machinery" and DCM in a more seamless fashion? For
>> > example, if I declare a persistent CLOS class, can I hook that  
>> up to
>> > DCM and get the benefits of DCM and persistence at the same  
>> time? From
>> > Ian's last statement, this doesn't seem possible yet, but I may  
>> be wrong.
>> >
>> > Thanks,
>> > Daniel
>> >
>> > On Jul 27, 2006, at 2:07 PM, Robert L. Read wrote:
>> >
>> >> A reasonable way to work is to use completely persistent  
>> objects and
>> >> see how the performance
>> >> is for you --- LISP and elephant support this kind of rapid
>> >> prototyping extremely well.  I may be
>> >> a bit old-fashioned---but I often find that I end up having to  
>> take
>> >> explicit control of the write-back
>> >> policy in any case, and I personally never find having to remember
>> >> when to write things a burden,
>> >> since they are almost always part of a "business rule", if your  
>> using
>> >> a 3-tiered application.
>> >>
>> >> On the other hand, you can follow your plan based on Ian's  
>> idea, and
>> >> similar layer on secondary
>> >> indexes once prototyping shows that you need them.
>> >
>> _______________________________________________
>> elephant-devel site list
>> elephant-devel at common-lisp.net
>> http://common-lisp.net/mailman/listinfo/elephant-devel
>>
> _______________________________________________
> elephant-devel site list
> elephant-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/elephant-devel




More information about the elephant-devel mailing list