Fork me on GitHub
#datomic
<
2015-10-14
>
frankiesardo09:10:42

Hi all, we're upgrading to datomic pro

frankiesardo09:10:06

Are 5 processes enough to maintain a staging + prod web server?

frankiesardo09:10:42

1 Peer prod, 1 Peer staging, 1 prod transactor, 1 staging transactor, 1 for occasional dev REPL

frankiesardo09:10:59

or do you usually share the same transactor between staging and prod?

mitchelkuijpers10:10:09

@frankie: you can use your license for multipe envs

mitchelkuijpers10:10:49

The limit is for the amount of peers you can apply to one transactor that is connected to a certain database

mitchelkuijpers10:10:18

So you can use the license for local dev

mitchelkuijpers10:10:40

start a test transactor with the max amount of peers

mitchelkuijpers10:10:46

and a prod with the max amount of peers

mitchelkuijpers10:10:17

from the datomic pricing page:

mitchelkuijpers10:10:20

A Datomic Pro license is priced by the number of simultaneous processes using Datomic software (peers + transactors) in production at your company. Testing and development use against non-production databases does not count towards your limit.

adam_awan10:10:16

@mitchelkuijpers: how are non-production databases / testing / development differentiated from production in Datomic’s eyes?

frankiesardo10:10:47

We don't want to use datomic-free in our dev/staging environment, if that's what you mean

mitchelkuijpers10:10:21

@frankie: No you can use the same license

mitchelkuijpers10:10:39

@adam_awan: they don't but you accept a license agreement

frankiesardo10:10:09

@mitchelkuijpers: I mean, we want to use a transactor, not an in-memory db

mitchelkuijpers10:10:22

Again: A Datomic Pro license is priced by the number of simultaneous processes using Datomic software (peers + transactors) in production at your company. Testing and development use against non-production databases does not count towards your limit.

mitchelkuijpers10:10:31

you can start multiple transactors with the same license

frankiesardo10:10:02

Interesting. But obviously the question is how do they know which database is a production database?

frankiesardo10:10:26

If you can use the same license to start multiple transactors then you can potentially cheat and have N production databases, right?

frankiesardo10:10:59

^ ok license agreement i see

mitchelkuijpers10:10:42

@frankie: So you can simply start with datomic pro starter and then grow from there simple_smile

frankiesardo10:10:26

@mitchelkuijpers: thanks a lot that was really useful

mitchelkuijpers10:10:53

@frankie We went through the same 2 months ago, glad to help

adam_awan10:10:27

@mitchelkuijpers: yes thanks, very helpful

bostonaholic16:10:35

when trying to alter an attribute to [:db/add :person/name :db/fulltext true] I'm getting:

Caused by: java.lang.IllegalArgumentException: :db.error/invalid-alter-attribute Error: {:db/error :db.error/unsupported-alter-schema, :attribute :db/fulltext, :from :disabled, :to true}
Do I need to first [:db/retract :person/name :db/index true]?

bostonaholic16:10:17

(I'm assuming I can't have both :db/index true AND :db/fulltext true on the same attribute)

marshall16:10:27

@bostonaholic: You can’t alter :db/fulltext

bostonaholic16:10:52

that's what I was afraid of

bostonaholic16:10:22

so I guess a new "shadow field" should be added?

marshall16:10:43

if you need to add the fulltext capability, you can rename the existing attribute, create a new one with the appropriate settings (fulltext true) and migrate the data from the existing attribute to the new one

bostonaholic16:10:01

that would work, too

marshall16:10:03

make sure you backup your DB before doing any schema alteration or migration

bostonaholic16:10:11

right on, thanks!

bostonaholic16:10:57

@marshall: am I correct in my assumption that an attribute cannot have both :db/index and :db/fulltext?

marshall17:10:39

@bostonaholic: an attribute can have both. if it is :db/index true, it will be indexed in AVET, :db/fulltext allows it to be substring searched using the fulltext query funcion

bostonaholic17:10:35

that makes sense. I wasn't sure

marshall17:10:07

the mbrainz sample repo shows use of both. https://github.com/Datomic/mbrainz-sample

curtosis19:10:46

is Cloudant congruent enough to Couchbase to work as a storage backend?

bhagany19:10:21

Regarding the resolution of temp id's - I am using the rest api and thus need a way to go from temp id to actual id outside of the JVM. I'm currently doing some bitshifting that I found in a mailing list post, but this requires knowing the partition id. I notice that resolve-tempid doesn't need the partition id though, and I'm in a situation now where this is highly desirable. Is there a way for me to resolve tempids without knowing the partition id?