Hi,
sorry if this is OT. i installed Goods (80) from SqueakMap. The SUnit tests failed in below method: KKDefaultConnection >> defaultLogin ^ 'squeak', (Time millisecondClockValue hex allButFirst: 3) i added asFloat (float respondsTo: hex), but now im unsure if i missed some dependency package (which might change SmallInteger?). I'm running a 3.9b-7052 image. After the change all tests pass. Different question: anyone using GOODS in production? How does it compare to Magma? If i read the documentation correctly it should be possible work with classes/objects stored in goods with either c++, smalltalk, java, etc.? Curious, Dirk _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Dirk Vleugels wrote:
> Hi, > > sorry if this is OT. > > i installed Goods (80) from SqueakMap. The SUnit tests failed in below > method: > > KKDefaultConnection >> defaultLogin > ^ 'squeak', (Time millisecondClockValue hex allButFirst: 3) > > i added asFloat (float respondsTo: hex), but now im unsure if i missed > some dependency package (which might change SmallInteger?). I'm > running a 3.9b-7052 image. I haven't yet used GOODS under Squeak3.9 but I'd suggest that you change this to: KKDefaultConnection >> defaultLogin ^ 'squeak', Time millisecondClockValue printStringHex > > After the change all tests pass. > > Different question: anyone using GOODS in production? How does it > compare to Magma? If i read the documentation correctly it should be > possible work with classes/objects stored in goods with either c++, > smalltalk, java, etc.? I have several systems which use GOODS in production in various forms (ranging from somewhat batch-style to interactive use). I am also working with a client who is planning to release a GOODS-based system. I cannot compare it to Magma (never used Magma) but I can point out some issues: 1) commit/rollback performance can be poor if your caches are large (large numbers of objects loaded). If you load the latest development version from SqueakSource you will get some improvement but it still effectively scales linearly with the size of this cache. 2) Avi's WriteBarrier (on SqueakMap) was an attempt to avoid problem #1. The latest development release doesn't support WriteBarrier so I'd recommend that you try both combinations (current release of GOODS client + WriteBarrier) or (development releast of GOODS client without WriteBarrier).. 3) There is no direct support for "indexing" so you have to do it manually with BTree's (Avi has BTree package on SqueakMap), Dictionaries or whatever datastructure suits your searching needs. FWIW I believe that Magma has significant support for automatic indexing. 4) You can, in principle, access your database from C++, Java etc but you must provide more type information. The GOODS wiki page details this: http://minnow.cc.gatech.edu/squeak/3494 Hope this helps, David _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
It's been some time since the ODBs have been talked about in this list.
It would be great to hear current experiences (with the latest versions) that people had. The good and the bad. In my case, I don't have a lot of volume yet, but my experiences were: Magma ====== Good: New cool query syntax (no one else has this). Excellent support from Chris Müller and list. Clean syntax Indexes for various classes (Dates, Strings, Numbers, etc.) ReadStrategies Native Smalltalk Integration package to use with Seaside. Bad: Hard to set up (the latest beta version with queries at least) Insert & update performance (inserting ~260 items on a magma collection takes >30'' on a single commit) GOODS ====== Good: Very simple to set up Cleanest / less intrusive syntax of all ODBs I've seen Pretty fast on inserts (on my not so large data sets at least) Distributable / multi-language Bad: Maintained by a single guy (I'm always scared of this... what if he decides to run a restaurant?) Not native Smalltalk No indexes (must use Avi's BTree) No queries OmniBase ======== Good: Seems to have been widely tested in several smalltalks Bad: Locking problem on Macs and Linux with Squeak has not been resolved. Hence, if you use Squeak, Windows is the only alternative. I've tested it yesterday on my Mac and the locking issues were still there. I don't know if it is still this way under Linux. Ugliest syntax (for me, at least) No query language. Licencing? (don't really know about this) But it would be great, at least for me, to hear what others been through when they decided to implement an ODB. Thanks r. _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
> GOODS
> Bad: must be compiled with GCC 2. Compiles on GCC 3 but will crash on big datasets. Does not compile on GCC 4. I find such issues always reassuring. I don't want to dis GOODS. I think it's cool for small datasets. Philippe _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by Dirk Vleugels
I would just like to clarify, the Magma set up is "one-click" and
always has been. Ramiro was describing his experience loading the "queries beta" version a couple of weeks ago, which was not one-click. That version was finished and announced last week, it is no longer in beta, is therefore now a one-click install. I would also like to clarify the performance comment. Ramiro, I profiled your NYSE instance getValuesFor: 'aapl' from: ('1/1/2004' asDate) to: ('1/1/2006' asDate) which addeds 504 objects and would like to clarify a couple of points about the 33 second profile: - 5.4 seconds was spent getting the data from Yahoo - 18.1 seconds spent doing 504 queries on the MagmaSet to determine if the object being added already exists. (NOTE 6 of which in DateAndTime>>#asUTC). - 10 seconds for the actual commit MagmaSets are expensive to add to, because every object requires it to query to see if that object already exists. You could use a MagmaCollection here and would see the time cut in half, 5.4 seconds for Yahoo and 10 seconds for the commmit. This is why I cringe at public declarations about performance. One persons 260 objects is different than anothers. I think the only meaningful way to describe or compare performance is with 1) well-explained execution contexts (hardware, etc.), 2) detailed descriptions of the task being measured, and 3) what performance-tuning considerations (which, in Magma's case, can have a 10X improvement) were done. MagmaBenchmarker attempts to address these items: 1) the execution context includes computer, cpu, speed, memory, and disk 2) the benchmarking methods names are descriptive in what they do 3) the implementation of the methods can be examined to see what performance tuning mechanisms were used, if any To see this output for the latest Magma: http://minnow.cc.gatech.edu/squeak/5606 I certainly don't want to proclaim Magma is blazing fast, but the MagmaBenchmarker on the current version just demonstrated, on my circa 2004 laptop, insertion of 1000 objects (100 at a time, 10 commits) into a MagmaCollection in 4 seconds flat (5 without WriteBarrier). Understanding performance requires context, lots of context.. - Chris > Magma > ====== > > Good: > New cool query syntax (no one else has this). > Excellent support from Chris Müller and list. > Clean syntax > Indexes for various classes (Dates, Strings, Numbers, etc.) > ReadStrategies > Native Smalltalk > Integration package to use with Seaside. > Bad: > Hard to set up (the latest beta version with queries at least) > Insert & update performance (inserting ~260 items on a magma > collection takes >30'' on a single commit) > > > > GOODS > ====== > > Good: > Very simple to set up > Cleanest / less intrusive syntax of all ODBs I've seen > Pretty fast on inserts (on my not so large data sets at least) > Distributable / multi-language > Bad: > Maintained by a single guy (I'm always scared of this... what if he > > decides to run a restaurant?) > Not native Smalltalk > No indexes (must use Avi's BTree) > No queries > > > OmniBase > ======== > Good: > Seems to have been widely tested in several smalltalks > Bad: > Locking problem on Macs and Linux with Squeak has not been resolved. > > Hence, if you use Squeak, Windows is the only alternative. I've > tested it yesterday on my Mac and the locking issues were still > there. I don't know if it is still this way under Linux. > Ugliest syntax (for me, at least) > No query language. > Licencing? (don't really know about this) > > > But it would be great, at least for me, to hear what others been > through when they decided to implement an ODB. > Thanks > > > r. _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by Ramiro Diaz Trepat
Some corrections:
> OmniBase > ======== > Good: > Seems to have been widely tested in several smalltalks > Bad: > Locking problem on Macs and Linux with Squeak has not been resolved. > Hence, if you use Squeak, Windows is the only alternative. I've > tested it yesterday on my Mac and the locking issues were still > there. I don't know if it is still this way under Linux. There is only a locking problem, if you have multiple Squeak images accessing the same database from Mac and/or Linux, else it works just fine. > Licencing? (don't really know about this) It has been open-sourced, all parts including the garbage collector. Cheers, Lukas -- Lukas Renggli http://www.lukas-renggli.ch _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by Chris Muller
Hi,
I'm currently using 3.8 based MVC only image + Seaside. Can I use Magma without Morphic System? Thanks in advance On Aug 17, 2006, at 2:00 PM, Chris Muller wrote: > I would just like to clarify, the Magma set up is "one-click" and > always has been. Ramiro was describing his experience loading the > "queries beta" version a couple of weeks ago, which was not one-click. > That version was finished and announced last week, it is no longer in > beta, is therefore now a one-click install. > > I would also like to clarify the performance comment. Ramiro, I > profiled your > > NYSE instance getValuesFor: 'aapl' from: ('1/1/2004' asDate) to: > ('1/1/2006' asDate) > > which addeds 504 objects and would like to clarify a couple of points > about the 33 second profile: > > - 5.4 seconds was spent getting the data from Yahoo > - 18.1 seconds spent doing 504 queries on the MagmaSet to determine > if the object being added already exists. (NOTE 6 of which in > DateAndTime>>#asUTC). > - 10 seconds for the actual commit > > MagmaSets are expensive to add to, because every object requires it to > query to see if that object already exists. You could use a > MagmaCollection here and would see the time cut in half, 5.4 seconds > for Yahoo and 10 seconds for the commmit. > > This is why I cringe at public declarations about performance. One > persons 260 objects is different than anothers. I think the only > meaningful way to describe or compare performance is with 1) > well-explained execution contexts (hardware, etc.), 2) detailed > descriptions of the task being measured, and 3) what performance- > tuning > considerations (which, in Magma's case, can have a 10X improvement) > were done. > > MagmaBenchmarker attempts to address these items: > > 1) the execution context includes computer, cpu, speed, memory, and > disk > 2) the benchmarking methods names are descriptive in what they do > 3) the implementation of the methods can be examined to see what > performance tuning mechanisms were used, if any > > To see this output for the latest Magma: > > http://minnow.cc.gatech.edu/squeak/5606 > > I certainly don't want to proclaim Magma is blazing fast, but the > MagmaBenchmarker on the current version just demonstrated, on my circa > 2004 laptop, insertion of 1000 objects (100 at a time, 10 commits) > into > a MagmaCollection in 4 seconds flat (5 without WriteBarrier). > > Understanding performance requires context, lots of context.. > > - Chris > > > >> Magma >> ====== >> >> Good: >> New cool query syntax (no one else has this). >> Excellent support from Chris Müller and list. >> Clean syntax >> Indexes for various classes (Dates, Strings, Numbers, etc.) >> ReadStrategies >> Native Smalltalk >> Integration package to use with Seaside. >> Bad: >> Hard to set up (the latest beta version with queries at least) >> Insert & update performance (inserting ~260 items on a magma >> collection takes >30'' on a single commit) >> >> >> >> GOODS >> ====== >> >> Good: >> Very simple to set up >> Cleanest / less intrusive syntax of all ODBs I've seen >> Pretty fast on inserts (on my not so large data sets at least) >> Distributable / multi-language >> Bad: >> Maintained by a single guy (I'm always scared of this... what if he >> >> decides to run a restaurant?) >> Not native Smalltalk >> No indexes (must use Avi's BTree) >> No queries >> >> >> OmniBase >> ======== >> Good: >> Seems to have been widely tested in several smalltalks >> Bad: >> Locking problem on Macs and Linux with Squeak has not been resolved. >> >> Hence, if you use Squeak, Windows is the only alternative. I've >> tested it yesterday on my Mac and the locking issues were still >> there. I don't know if it is still this way under Linux. >> Ugliest syntax (for me, at least) >> No query language. >> Licencing? (don't really know about this) >> >> >> But it would be great, at least for me, to hear what others been >> through when they decided to implement an ODB. >> Thanks >> >> >> r. > > _______________________________________________ > Seaside mailing list > [hidden email] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by Chris Muller
Yes, Chris is right on the miss use I did of the MagmaSet.
I will refine and repost whenever I have finer numbers. But probably I will start using MagmaCollections instead of MagmaSets, and resolve the uniqueness of the elements outside Magma. This will probably help a lot with performance. The other issue I am having right now is that I was unable to get the operators ( >= <=) to work properly on the new query system (based on the #where method). But I am looking at this issue right now with Chris, and it might be a problem on my code. Lukas, regarding OmniBase's locking issue on Mac, whenever I try the most basic things (like connect on a single machine/image) I get the warning window about the locking problem, and if I click proceed, nothing happens. Maybe I am doning something wrong that you can tell me about. I have tried with the OmniBase on SqueakMap, but also with the releases from SqueakSource.com. I'm glad it's all open now. Thanks _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Free forum by Nabble | Edit this page |