16:27:06 <Palmik> Hi guys. What would you say are the advantages of using a pure in-memory data store (such as ixset, tables, data-store), perhaps in combination with acid-state for persistence as compared to traditional DMSs such as MySQL, PostgreSQL, MongoDB, etc.
16:27:55 <Palmik> I would like to say that testing is one of them, but iirc it is possible to test monadic code with QuickCheck as well.
16:28:21 <Palmik> (An of course the advantages of all other in-memory data stores such as redis -- that is lower latency, etc.)
16:28:31 <Palmik> Is there anything that comes to mind?
16:33:26 <donri> i think acid-state has even better performance *potential* than redis because you can skip the socket layer, and for queries even the serialization overhead. not sure in practice though; cereal seems to be a bottleneck
16:34:09 <Palmik> That might be becuase ixset uses fromList toList and feeds/reads that from cereal instance for lists.
16:34:39 <Palmik> Would you say that the testing depertment has some added benefit (pure vs unpure)
16:35:47 <donri> one obvious benefit is that you can put almost any haskell type in your store, without introducing extra serialization overhead or losing functionality (compared to serializing and storing bytestrings in say an sql table)
16:36:51 <donri> i'm not sure how you'd test IO with quickcheck, so i imagine you'd need to define a free monad or somesuch for the special circumstance
16:36:54 <donri> more work
16:37:58 <donri> also with an external database you have to think about both how your data looks and behaves in the database, and how it is represented in your application
16:38:09 <donri> with acid-state they're one and the same
16:39:04 <Palmik> Yes, good pints, thanks. :)
16:39:08 <Palmik> *points
16:39:39 <donri> i'm thinking of porting my tables code to data-store
16:40:09 <donri> i've stopped working on the code since porting to tables because of a tables bug that makes important parts of the application do nothing :p
16:54:39 <levi> Heh, little problem there.
16:56:07 <donri> but i don't want to just revert to pre-port either because i did some other cleanup stuff in the process
16:56:56 <Palmik> If you have any questions about data-store, feel free to ask.
16:59:45 <donri> oh yeah i still need base 4.5 support so can't port just yet
17:02:00 <Palmik> Hmm, you use vim + ghcmod, right?
17:04:00 <Palmik> The primary reason for me removing the base 4.5 support was that when I used #ifndef MIN_VERSION_containers(0.5.0) I got errors about not being to run the CPP macro (I get the same error when using hlint).
17:04:36 <Palmik> And then systastic did not report most of other errors/warnings.
17:08:43 <donri> Palmik: i use hdevtools i think
17:09:56 <Palmik> I will try that, thanks.
17:10:19 <donri> Palmik: you could put all the CPP in an internal module and export a unified api for yourself...]
17:10:28 <donri> limit the problems to that module