Hi, thomas:

Yes, I had a look at cassandra and the java apis.  I think that using
that database or some other one would be fine, but would not be a
substitute for having a repository architected to specifically serve
the needs of this project.  I think the repository interface comes
first, then a suitable storage mechanism can be selected.

In the end I think a server of some kind exposing http methods for
storage and retieval, as well as repository proxying is needed to get
internet scale and commercial adoption

On 1/5/11, Thomas Paviot <tpav...@gmail.com> wrote:
> Hi Dave,
>
> I tried to ask this question to the cassandra users ml, but unfortunately I
> can't send any message (the antispam system doesn't like me!).
>
> All I know is that Cassandra uses the TCP Port 7000 for communication
> between nodes, port 9160 for clients (pycassa for instance) and 8080 for
> JMX.
>
> Thomas
>
> 2010/12/30 Cowdens <dave.cow...@gmail.com>
>
>>  I have not experimented with it.  Though i know little about it, my main
>> question would be around its replication: does it use http protocols for
>> replication, such that the replication wouldnt have problems getting
>> through
>> firewalls?
>>
>>  ------------------------------
>> *From:* pythonocc-users-boun...@gna.org [mailto:
>> pythonocc-users-boun...@gna.org] *On Behalf Of *Thomas Paviot
>> *Sent:* Thursday, December 30, 2010 7:43 AM
>> *To:* pythonOCC users mailing list.
>> *Subject:* Re: [Pythonocc-users] writing OCC data to a db
>>
>> One more information: there are 2 high level clients for Cassandra/Thrift
>> :
>> Pycassa (http://github.com/pycassa/pycassa) and Telephus (
>> http://github.com/driftx/Telephus).
>>
>>
>> 2010/12/30 Thomas Paviot <tpav...@gmail.com>
>>
>>> A few months ago, I had a look to the Apache Cassandra project (
>>> http://cassandra.apache.org/), contributed by Facebook, and the Thrift
>>> API (http://thrift.apache.org/). It seems to be an interesting way to
>>> design and deploy distributed databases seamlessly accessible from
>>> python.
>>> Do anyone have experimented it?
>>>
>>> 2010/12/29 Dave Cowden <dave.cow...@gmail.com>
>>>
>>> I think that a distributed repository infrastructure is what's needed
>>>> for robust sharing of objects and model data.  For sure, such
>>>> repositories would likely be based on a database-- but the repo would
>>>> need to expose crud ( create read update delete) functions via http,
>>>> so it is firwall and internet friendly.
>>>>
>>>> On 12/29/10, jelle feringa <jelleferi...@gmail.com> wrote:
>>>> > Hi,
>>>> >
>>>> > Recently I had enough of storing OCC's cad as files.
>>>> > Sometimes all you need is a database.
>>>> > Turns out that its really easy to do so. Perhaps its worth sharing how
>>>> this
>>>> > can be done...
>>>> > Though this might be pretty trivial technically speaking, it can open
>>>> up
>>>> > interesting ways of collaborating on projects.
>>>> >
>>>> > -jelle
>>>> >
>>>> >
>>>> > ================================================
>>>> > from OCC.Utils.Topology import Topo
>>>> >
>>>> > __author__ = 'jdf'
>>>> >
>>>> >
>>>> > from sqlalchemy import *
>>>> > from sqlalchemy.ext.declarative import declarative_base
>>>> > from sqlalchemy.orm import sessionmaker, scoped_session
>>>> >
>>>> > from OCC.Utils.Construct import make_cube
>>>> > #from OCC.TopoDS import TopoDS_Shape
>>>> > #
>>>> > #TopoDS_Shape.__eq__ = lambda x: TopoDS_Shape.IsEqual(x)
>>>> >
>>>> > cube = make_cube(1,1,1)
>>>> >
>>>> > engine = create_engine('sqlite:///jelle.db')
>>>> > Base = declarative_base(bind=engine)
>>>> > Session = scoped_session(sessionmaker(engine))
>>>> >
>>>> > def comp_brep(brepA, brepB):
>>>> >     import ipdb; ipdb.set_trace()
>>>> >     print 'jajajaj',brepB, brepA
>>>> >     return brepA.IsEqual(brepB)
>>>> >
>>>> > class Individual(Base):
>>>> >     '''used to store data about an individual
>>>> >     a row forms a generation
>>>> >     '''
>>>> >     __tablename__ = 'individual'
>>>> >
>>>> >     id = Column(Integer, primary_key=True)
>>>> >     #name = Column(String)
>>>> >     #fullname = Column(String)
>>>> >     #password = Column(String)
>>>> >     generation = Column(Integer)
>>>> >     ancestor_a = Column(PickleType())
>>>> >     ancestor_b = Column(PickleType())
>>>> >     brep = Column(PickleType(mutable=False)) #comparator=comp_brep))
>>>> > #)
>>>> )
>>>> >     fitness = Column(Float)
>>>> >
>>>> > Base.metadata.create_all()
>>>> >
>>>> >
>>>> > indy = Individual()
>>>> > indy.ancestor_a = 'parent_a'
>>>> > indy.fitness = 12.
>>>> > indy.ancestor_b = 'parent_a'
>>>> > indy.generation = 1
>>>> > #indy.id = 0
>>>> > indy.brep = cube
>>>> >
>>>> > '''
>>>> > to INSERT many rows very quickly, use the "executemany" style of
>>>> > insertion:
>>>> >
>>>> >
>>>> > connection.execute(table.insert(), [{'foo':'row1'}, {'foo':'row2'},
>>>> > {'foo':'row3'}, ...])
>>>> > '''
>>>> >
>>>> > s = Session()
>>>> > # s.begin()
>>>> > s.add(indy)
>>>> > s.commit()
>>>> > s.close()
>>>> >
>>>> > print('closed the previous db session\nlet\'s see if we can read back
>>>> the
>>>> > objects, that be cool...')
>>>> >
>>>> > engine = create_engine('sqlite:///jelle.db', echo=True)
>>>> > Base = declarative_base(bind=engine)
>>>> > Session = scoped_session(sessionmaker(engine))
>>>> > s = Session()
>>>> >
>>>> > from OCC.BRep import BRep_Tool
>>>> > bt = BRep_Tool().Pnt
>>>> >
>>>> > for indy in s.query(Individual):
>>>> > print indy.id
>>>> > for i in Topo(indy.brep).vertices():
>>>> >     print bt(i).Coord()
>>>> > ================================================
>>>> >
>>>>
>>>> --
>>>> Sent from my mobile device
>>>>
>>>> _______________________________________________
>>>> Pythonocc-users mailing list
>>>> Pythonocc-users@gna.org
>>>> https://mail.gna.org/listinfo/pythonocc-users
>>>>
>>>
>>>
>>
>> _______________________________________________
>> Pythonocc-users mailing list
>> Pythonocc-users@gna.org
>> https://mail.gna.org/listinfo/pythonocc-users
>>
>>
>

-- 
Sent from my mobile device

_______________________________________________
Pythonocc-users mailing list
Pythonocc-users@gna.org
https://mail.gna.org/listinfo/pythonocc-users

Reply via email to