[ANN] Magma 1.0r40

Florian Minjat florian.minjat at gmail.com
Mon Sep 24 12:04:07 UTC 2007


I installed the whole new thing and tested it right away with my 'big 
update' and got an error each time (I tested three times to be sure) :
I didn't do anything to use a special collection or anything.


EXCEPTION : MagmaInvalidOid: 3298536245786 is not a valid oid. (13:49:09)
   MagmaSession>>signalExceptionLike:
      self     <-     a MagmaSession
     temps
      anException     <-     MagmaInvalidOid: 3298536245786 is not a 
valid oid.
      signalableError     <-     MagmaInvalidOid: 3298536245786 is not 
a valid oid.
     inst vars
      id     <-     2
      user     <-     a MagmaUser
	id = update
      serializer     <-     a MaObjectSerializer
      transaction     <-     a MaTransaction
      readStrategy     <-     a WAMagmaReadStrategyDefault
      definition     <-     a MagmaRepositoryDefinition
      preferences     <-     a MagmaPreferences
      anchor     <-     a MaRootAnchor
      transactionLevel     <-     1
      link     <-     a MaLocalServerLink
      strongReferences     <-     an OrderedCollection()

   MagmaSession>>submit:
      self     <-     a MagmaSession
     temps
      aMagmaRepositoryRequest     <-     a MaRefreshSegmentRequest
      result     <-     MagmaInvalidOid: 3298536245786 is not a valid oid.
     inst vars
      id     <-     2
      user     <-     a MagmaUser
	id = update
      serializer     <-     a MaObjectSerializer
      transaction     <-     a MaTransaction
      readStrategy     <-     a WAMagmaReadStrategyDefault
      definition     <-     a MagmaRepositoryDefinition
      preferences     <-     a MagmaPreferences
      anchor     <-     a MaRootAnchor
      transactionLevel     <-     1
      link     <-     a MaLocalServerLink
      strongReferences     <-     an OrderedCollection()

   MagmaSession>>refreshSegment:of:where:pageSize:using:loadObjects:
      self     <-     a MagmaSession
     temps
      aMagmaCollectionReaderSegment     <-     a 
MagmaCollectionReaderSegment  1..1 of 1 | 0
      aMagmaCollection     <-     a MagmaCollection
      aMaTerm     <-     a MaClause (login 
55581004787803423704017422417120985088..55581004787803423704017422417120985088)
      anInteger     <-     125
      aMaReadStrategy     <-     nil
      aBoolean     <-     true
      segment     <-     nil
     inst vars
      id     <-     2
      user     <-     a MagmaUser
	id = update
      serializer     <-     a MaObjectSerializer
      transaction     <-     a MaTransaction
      readStrategy     <-     a WAMagmaReadStrategyDefault
      definition     <-     a MagmaRepositoryDefinition
      preferences     <-     a MagmaPreferences
      anchor     <-     a MaRootAnchor
      transactionLevel     <-     1
      link     <-     a MaLocalServerLink
      strongReferences     <-     an OrderedCollection()

   MagmaCollection>>refreshSegment:where:pageSize:using:loadObjects:
      self     <-     a MagmaCollection
     temps
      aMagmaCollectionReaderSegment     <-     a 
MagmaCollectionReaderSegment  1..1 of 1 | 0
      aMaTerm     <-     a MaClause (login 
55581004787803423704017422417120985088..55581004787803423704017422417120985088)
      anInteger     <-     125
      aMaReadStrategy     <-     nil
      aBoolean     <-     true
     inst vars
      session     <-     a MagmaSession
      changes     <-     a MagmaCollectionChanges
      indexes     <-     an OrderedCollection(a MaSearchStringIndex 
login a MaIntegerIndex rank a MaIntegerIndex worldId)
      descriptions     <-     an OrderedCollection(a 
MagmaIndexDescription  a MagmaIndexDescription  a MagmaIndexDescription )

   MagmaCollectionReader>>refreshSegment:loadObjects:
      self     <-     a MagmaCollectionReader
     temps
      aMagmaCollectionReaderSegment     <-     a 
MagmaCollectionReaderSegment  1..1 of 1 | 0
      aBoolean     <-     true
      sortIndex     <-     nil
     inst vars
      collection     <-     a MagmaCollection
      expression     <-     a MaClause (login 
55581004787803423704017422417120985088..55581004787803423704017422417120985088)
      readStrategy     <-     nil
      trunk     <-     a MaQueryTrunk
      segment     <-     nil
      segments     <-     an OrderedCollection(a 
MagmaCollectionReaderSegment  1..1 of 1 | 0)
      pageSize     <-     125
      reversed     <-     false
      localAdditionsSegment     <-     nil

   [] in MagmaCollectionReader>>segmentContaining: {[:foundSegment | 
self refreshSegment: foundSegment loadObjects: true.  foun...]}
      self     <-     a MagmaCollectionReader
     temps
      anInteger     <-     1
      desiredSegment     <-     nil
      each     <-     a MagmaCollectionReaderSegment  1..1 of 1 | 0
      foundSegment     <-     a MagmaCollectionReaderSegment  1..1 of 
1 | 0
     inst vars
      collection     <-     a MagmaCollection
      expression     <-     a MaClause (login 
55581004787803423704017422417120985088..55581004787803423704017422417120985088)
      readStrategy     <-     nil
      trunk     <-     a MaQueryTrunk
      segment     <-     nil
      segments     <-     an OrderedCollection(a 
MagmaCollectionReaderSegment  1..1 of 1 | 0)
      pageSize     <-     125
      reversed     <-     false
      localAdditionsSegment     <-     nil

   [] in OrderedCollection(Collection)>>maDetect:ifFound:ifNone: 
{[:element |  (aBlock value: element)   ifTrue: [^ foundBlock value: 
element]...]}
      self     <-     an OrderedCollection(a 
MagmaCollectionReaderSegment  1..1 of 1 | 0)
     temps
      aBlock     <-     [] in 
MagmaCollectionReader>>segmentContaining: {[:each | each 
includesIndex: anInteger]}
      foundBlock     <-     [] in 
MagmaCollectionReader>>segmentContaining: {[:foundSegment |  self 
refreshSegment: foundSegment...etc...
      exceptionBlock     <-     [] in 
MagmaCollectionReader>>segmentContaining: {[[desiredSegment := self 
getNextSegmentAndLoad: tru...etc...
      element     <-     a MagmaCollectionReaderSegment  1..1 of 1 | 0
     inst vars
      array     <-     an Array(nil nil a MagmaCollectionReaderSegment 
  1..1 of 1 | 0 nil nil nil nil nil nil nil)
      firstIndex     <-     3
      lastIndex     <-     3

   OrderedCollection>>do:
      self     <-     an OrderedCollection(a 
MagmaCollectionReaderSegment  1..1 of 1 | 0)
     temps
      aBlock     <-     [] in 
OrderedCollection(Collection)>>maDetect:ifFound:ifNone: {[:element | 
(aBlock value: element) ...etc...
      index     <-     3
     inst vars
      array     <-     an Array(nil nil a MagmaCollectionReaderSegment 
  1..1 of 1 | 0 nil nil nil nil nil nil nil)
      firstIndex     <-     3
      lastIndex     <-     3

   OrderedCollection(Collection)>>maDetect:ifFound:ifNone:
      self     <-     an OrderedCollection(a 
MagmaCollectionReaderSegment  1..1 of 1 | 0)
     temps
      aBlock     <-     [] in 
MagmaCollectionReader>>segmentContaining: {[:each | each 
includesIndex: anInteger]}
      foundBlock     <-     [] in 
MagmaCollectionReader>>segmentContaining: {[:foundSegment |  self 
refreshSegment: foundSegment...etc...
      exceptionBlock     <-     [] in 
MagmaCollectionReader>>segmentContaining: {[[desiredSegment := self 
getNextSegmentAndLoad: tru...etc...
      element     <-     a MagmaCollectionReaderSegment  1..1 of 1 | 0
     inst vars
      array     <-     an Array(nil nil a MagmaCollectionReaderSegment 
  1..1 of 1 | 0 nil nil nil nil nil nil nil)
      firstIndex     <-     3
      lastIndex     <-     3

   MagmaCollectionReader>>segmentContaining:
      self     <-     a MagmaCollectionReader
     temps
      anInteger     <-     1
      desiredSegment     <-     nil
      each     <-     a MagmaCollectionReaderSegment  1..1 of 1 | 0
      foundSegment     <-     a MagmaCollectionReaderSegment  1..1 of 
1 | 0
     inst vars
      collection     <-     a MagmaCollection
      expression     <-     a MaClause (login 
55581004787803423704017422417120985088..55581004787803423704017422417120985088)
      readStrategy     <-     nil
      trunk     <-     a MaQueryTrunk
      segment     <-     nil
      segments     <-     an OrderedCollection(a 
MagmaCollectionReaderSegment  1..1 of 1 | 0)
      pageSize     <-     125
      reversed     <-     false
      localAdditionsSegment     <-     nil


Igor Stasenko wrote:
> On 23/09/2007, Chris Muller <asqueaker at gmail.com> wrote:
>> Sig contributed a simple change that lets you plug whatever dictionary
>> you want.  This is included in this release, so you can set it up as
>> part of your application-initialization.
>>
>> But sig's new Dictionary's themselves arrived too late to incorporate
>> as the default into this release.  There is much testing and measuring
>> and comparing with other Dictionary solutions (such as those from
>> Martin Loewis) needed before making a switch to a new default Weak
>> Dictionary.
> 
> I don't know, maybe better was to keep my dictionaries as separate
> package. Previously, i had a package with 'B' single prefix in class
> names. But then, since i implemented them mainly for use with magma i
> decided to rename them with Ma prefix and replace existing ones
> directly in magma.
> 
> And please, let me remind you, that magma uses two kinds of weak dictionaries:
> WeakIdentityKeyDictionary
> and
> WeakValueDictionary
> Previously i added a way to choose only one of them in
> MagmaPreferences class (for WeakIdentityKeyDictionary).
> 
> Now, i added snapshot, which fills the gap, and also makes use of it in
> MaOidManager and MagmaOidManager code.
> 
> Now, there's no direct references to any weak dictionary classes
> within magma client code, they are rely on those, which set in
> MagmaPreferences.
> 
> see Magma client-sig.258 in magma-tester repo. It based on Magma
> client-cmmr50.256.
> 
>>   - Chris
>>
>> On 9/23/07, Florian Minjat <florian.minjat at emn.fr> wrote:
>>> Great I'll test it with my app right away !
>>> Does it include collection optimisation from sig or others ?
>>>
>>> Florian
>>>
>>> Chris Muller wrote:
>>>> I am pleased to announce release 40 of the Magma object database for
>>>> Squeak, offering a significant boost in robustness from the previous
>>>> version:
>>>>
>>>>       - No longer constrained by Squeaks 2GB file-addressability, Magma can
>>>> now support unlimited file sizes (configured out of the box for up to
>>>> 281 Terabyte sized files).
>>>>       - Full backups are now truly "live", with no pause in service.
>>>>       - There is now support for a "warm backup," for rapid failover capability..
>>>>       - ..and server load distribution for clients that can tolerate a
>>>> slightly-behind, read-only repository (i.e., for reporting, archive
>>>> retrieval, etc.).
>>>>       - The MagmaCollectionIndex hierarchy is no longer required on the server.
>>>>       - The server correctly ignores garbage bytes sent by hackers to its
>>>> listening port.
>>>>       - Other enhancements and some important bug fixes.
>>>>
>>>> Nearly every feature and fix has originated at the request of members
>>>> of the Squeak community.  This is your database.  I plan to continue
>>>> supporting, improving, and ensuring you have a good experience using
>>>> Magma.  Please tell me what you need on the Magma mailing list.
>>>>
>>>> This one single code-base has been installed and tested successfully
>>>> in the 3.7, 3.8, 3.9, Tweak, Croquet 1.0SDK and sq3.9-7067dev07.07.1
>>>> images.  Other images may work, I just haven't tested them, you can
>>>> use the "Magma tester" to find out.  In images without
>>>> MethodProperties (3.7 and 3.8), Monticello will provide a friendly
>>>> pink warning that a few extension methods will not load.  This is ok,
>>>> just press Proceed.  It's better than maintaining different code bases
>>>> for each version of Squeak.
>>>>
>>>> Since its earliest days, Magma has been a "one-click" install and this
>>>> version is no different.  There are three configurations available on
>>>> SqueakMap and SqueakSource; "client", "server" and "tester".  The
>>>> former simply exclude certain packages that are not needed for that
>>>> function.
>>>>
>>>>  - Chris
>>>>
>>>>
>>>
>>
> 
> 


More information about the Magma mailing list