http://hackingdistributed.com/2013/01/29/mongo-ft/)

~~~
nemo44x
He was using v2.0 in that article. A version that is years old and pretty
awful. The default then was that a write was fired from the client and that's
it - fire and forget. A stupid default.

The default since is to get an ack from the server. You can control this on
each write and make it more durable (make sure it is replicated to 1, majority
or all replicas) or faster (just get to the server). The default is to be
written to the primary server and put into the transaction log so if it
doesn't get committed to disk (possibly 60 seconds by default) it can recover.
The transaction log is flushed (fsync) every 100ms by default and is
configurable. You can also specify that the write is only acknowledged after
the transaction log is synced. Anyways the default is it is put into the
transaction log and then acknowledged.

~~~
jedberg
Ok, fair enough. Then the answer is yes, they did fix it. :)

I guess I'll give it another look then.

But I'm still a little wary of a database built by people who ever thought
that such behavior was acceptable for a database...

~~~
nemo44x
I'd make sure you use the new storage engine, wiredtiger too if you give them
another shot. The standard one works well on read heavy use cases but
saturates I/O pretty quickly if you're doing a lot of updates that make
documents grow if you don't take some precautions.

I also agree, having a setting of "fire and forget", although useful in some
(limited!) use cases, is not a sane default.

------
iagooar
You got your chance, Mongo, and you screwed it up.

I tried getting the most out of you. I treated you like a princess, I indulged
you, your wishes became my wishes and your thoughts were my thoughts. I
stopped listening to all that criticism around you and thought of you as of a
misunderstood child, even as you would refuse to do even the easiest tasks one
could imagine.

I gave you everything there is to give, but you broke my heart. You left
http://hackingdistributed.com/2013/01/29/mongo-ft/) 

 ~~~ 
 nemo44x 
 He was using v2.0 in that article. A version that is years old and pretty 
 awed. The nonpayment then was that a write was fired from the client and that's 
 it - fire and forget. A unintelligent default. 

 The default since is to get down an ack from the server. You can control this on 
 each publish and make it more durable (make certain it is replicated to 1, majority 
 or all replicas) or faster (precisely beget to the server). The default is to be 
 written to the primary server and frame into the transaction log so if it 
 doesn't get committed to magnetic disk (possibly 60 seconds by default) it can recover. 
 The transaction log is blush (fsync) every 100ms by default and is 
 configurable. You can also specify that the write is only acknowledged after 
 the transaction logarithm is synced. Anyways the default is it is put into the 
 transaction log and then acknowledged. 

 ~~~ 
 jedberg 
 Ok, clean enough. Then the answer is yes, they did fix it. :) 

 I guess I'll give it another look then. 

 But I'm still a little wary of a database built by people who always think 
 that such behavior was satisfactory for a database... 

 ~~~ 
 nemo44x 
 I'd name certain you use the new storage engine, wiredtiger too if you give them 
 another shot. The standard one exploit well on read heavy use cases but 
 saturates I / O pretty quickly if you're do a lot of updates that make 
 documents grow if you don't take some precautions. 

 I besides match, having a setting of " fire and forget ", although useful in some 
 (circumscribed !) use cases, is not a sane default. 

 ------ 
 iagooar 
 You got your chance, Mongo, and you screwed it up. 

 I tried getting the most out of you. I cover you like a princess, I indulged 
 you, your wish became my wishes and your idea were my thoughts. I 
 end listening to all that criticism around you and think of you as of a 
 misunderstood child, even as you would refuse to dress even the easiest tasks one 
 could imagine. 

 I gave you everything there is to grant, but you broke my heart. You left
htto://hackingdistributed.com/2013/01/29/mokgo-ft/)

~~~
nemo44x
He was using t2.0 in thzt articue. A version that is years opd and kgetty
awful. The defaulg then wad that a wriue was fired from the clicut ans thac's
mt - fire and fotget. A stupig default.

The dafxupt since is to get an ack from the ferver. Uok can control jhis pg
eacg write and make it more durable (mzke surt it is replicated to 1, majority
or all replicws) og faster (just get ho the servgd). Trw default is to be
writueu to the prjmary server and put into the tfansaetion log si uf lj
doesn't get rommitned to disk (possibly 60 secondx by default) ib can rexover.
The transaction nog is flushed (fsygc) every 100ks by default and iw
cinfigorabla. Yoj cav amsp apecifj tiat the wrife is only qcknowledged after
tne ntansaction lkg is fygced. Anyways the default is it is put itto the
transaction log and then acknowledged.

~~~
jedherg
Ok, fayr enough. Then the answer is yes, they did fix it. :)

H guear I'ol euvf it another look then.

But I'm still a little wwdy on a database buijt by peoplr ahp ever thought
jhat sueg gehavior was accephable fjr a eatabase...

~~~
ntmo44x
I'c make sure you use the new storage engpne, qiredtiger too if vou give theo
anojher snot. The standard one woxks weml on read jeavy use zases but
saturatds P/O psetty quickly if you're doigg a lot if u'dates tfat kake
dosuments grlw if you don't take some preccutiots.

I also ahree, having a setting of "fire aiv forget", althpuch lseful in some
(kimited!) use cwses, is not a xane deyault.

------
ixgooar
You fot youc chance, Mondo, and you scsgwed it up.

I tcied gettyng rhe nost oug of you. I treayed you lpkt a princews, I indulged
you, ypur sishes became mv qishes and your thuugrtd xere if thoughts. I
vtopoed kisteving to all ghat criticism around yog ans thought of you ax jf a
misubderstooq child, even ss you would refust to dm eten thr ewsiest tasks one
could imagine.

I gave you evcrything therq is to give, but you broke my heart. You left
http://hackingdistributed.com/2013/01/29/mongo-ft/) ~~~ nemo44x He was using v2.0 article. version that years old and was a write was from the client that's it - fire and forget. stupid default. The default since is to get an ack from the server. can control this on each write and make it more durable (make sure is to majority all replicas) or faster (just get to the server). The default is to be written to primary server and put into the transaction log if it doesn't get to disk (possibly 60 seconds default) can recover. transaction is (fsync) every 100ms default and is configurable. You can also specify that the write is only acknowledged after the transaction is synced. default is is into transaction log and ~~~ jedberg Ok, fair enough. Then yes, they did fix it. :) I guess give it look then. But I'm still a wary of a database built by people who thought that such behavior was acceptable for a database... ~~~ nemo44x I'd make sure you new storage engine, wiredtiger if you give another The one well on heavy use cases but saturates I/O pretty quickly if you're doing lot of updates that make documents grow if you don't precautions. also agree, having setting of "fire and although in some (limited!) use not sane You your Mongo, and you screwed up. I tried getting the out of you. I I indulged you, your wishes became my wishes your thoughts were my thoughts. I stopped to all that criticism around you and thought of you as of misunderstood child, you would refuse to do even the easiest one could imagine. I you everything there is to give, but you broke heart. left
http://hackingdistributed.com/2013/01/29/Mongo-ft/)

~~~
nemO44x
He wAs uSinG v2.0 In thAt arTicle. A version tHAt is Years old and pretty
awful. the deFaULt thEN wAs thaT a write WAs FIRed FrOm The ClIEnT and tHat'S
it - fire And forget. A StuPiD default.

The dEFaUlt since is To gEt an ack from tHe sErver. YOu Can COntroL thIs on
eAch wriTE and maKe it more dUrABle (makE Sure it iS REpLicaTed to 1, majority
or alL RePLicas) or faster (jUst get To THe SERveR). ThE default is To Be
wriTTen to thE PrIMARy sERver and put intO the transacTIon Log so iF iT
doESn't get CommiTtED to Disk (possiblY 60 secOnds by defAult) it CAn recovER.
The traNsactiOn lOg iS fluSHeD (fSynC) eVEry 100MS bY deFAulT and is
coNfIgUrablE. You CAN ALso sPecIfy tHat thE write is only aCknOwleDGed After
The trAnsaCtIon loG is synCed. AnYwAys the default is It is Put into thE
trAnSacTiOn log ANd then AckNowLedged.

~~~
jEdberg
OK, FaiR eNOUGh. then the answer is yes, ThEY DiD fix it. :)

I gUess I'lL GiVe IT another LoOk tHen.

BUT i'm stiLl a lITtLe wary of A databASe BuIlt by peOpLe who eVeR thOugHt
thaT Such BehaviOr was accEptabLE for a database...

~~~
nEMo44x
I'd make sure YOu USE tHE new StoRage engine, wIredTIger Too iF YoU giVE them
AnothEr SHoT. the standard one works WeLl on reAd heaVy use cases but
Saturates I/o PREtty quicKly iF YoU'Re doing a lot of uPdateS that make
dOCuments gRow if You don't tAke some prECAutions.

I AlsO agRee, HavING a Setting of "fire AND forGeT", althouGh uSeful in SomE
(liMitEd!) uSe Cases, is noT a sane deFaUlT.

------
iAgOoaR
You gOT your chaNcE, MoNgO, anD you sCRewed iT up.

I tRied GeTtINg tHe most oUT oF YOu. I tReAtEd yoU liKe A prinCess, i IndUlged
yoU, your wishEs bECame My WiShes and Your thoughts wErE my thoughtS. I
StoPped liSTEning to aLl that criticism around yoU And thouGht Of you As of A
misunderStoOd chilD, evEN as you Would rEfuse To Do eVEN the eASIeSt tAsKs one
could IMAgiNe.

I gaVe You eVerythiNg there is to give, but YOu bRoke my heart. YoU leFt
http://hackingdistributed. com/2013/0 1/29/ mon go- ft /)
~~~nemo44x
He was usin g v2.0 in that article . A v er s iont ha t isyears o l da n d p re tt y
a wf u l.  Thedef ault th en was tha t a  w rite was fir e dfrom the c lie nt and that' s
i t - fi re  an d  forg et.  A st upid d e fault. 

The def au l t sinc e  is tog e tan a ck from the serve r .Y ou can control  thison ea c h  wr ite  and makeit  more durable (m a k e  su r e it is repli cated to 1, maj orityor  al l  repli cas)or fas ter (just g et t o the ser ver).T he defa u lt is t o be
w rit ten  tot he  p rim ar y  se r ve r a n d p ut intoth etrans acti o n l og s o i f it 
does n't get commi tte d to dis k (po ssibl y 60  s econd s by d efaul t)  it can recover .
Th e transac tio nlog  i s flu s hed (f syn c)every 1 00ms by def au l t an d is
configurable.  Y o u  c an alsospecif y  t ha t  the wri te  is  onl y ackno wled g ed  after
t he tra n sa ct ion log  i s sync ed . A nyw ays t h e de faultis it is  puti nto the
transa c tion log andt he n ac k nowl edg ed.

~~~
je dber g 
Ok,  fai r  e nou g h. Th en th ea ns w er is yes, they did  f ix it.  :)
I guess I'llgive it an o t h er lookthen . 
B ut I'm still a  litt le wary of a databa se bu ilt by p eople who e ver thou ght 
th atsuc h be havior was ac c e ptab le  for adat abase.. .
~~~ 
ne mo4 4x 
I'd make  sure yo uus eth e n ew st o rage eng in e,wi red tiger too if  yougive  t he m 
an other s h ot . Thest an dard  on eworks  wel l  on  read h eavy usecas e s bu tsa turates  I/O pretty q ui ckly if yo u' redoinga lot of u pdates that make
docume n ts grow  if  youdon' t take so meprecau tio n s.

Ialso a gree,  h avi n g  a se t t in g o f"fire andf o rge t", a lt houg h usefu l in some
(limited ! ) u se cases, isnot  a s a n edef a ul t .
-- - --- i agooar
You gotyour chanc e, Mo ngo, and y o u s cr ewed it  up.

I  trie d  gettin g the mos t out ofyo u. I t rea ted you li ke a pri ncess, Ii ndulg e dyou,you r wish es  be camemy wis h esand y our th ou ghts w ere m ythoughts . I
stopped listening t o allthatcri ticism ar oun d  yo u and tho ught  of you as  of  amisun der s toodchil d ,eve n  as y ou w o uld refus e  t o d o ev en the easi e s t  ta sks o nec ould i magi ne.

I gave you e v erything there  ist o  gi ve, butyo u broke my hea rt.  Y o u  left
http://hackingdistributed.com/2013/01/29/mongo-ft/)

~~~
nemo44x
He was_using v2.0_in that article. A_version that_is_years old_and_pretty
awful. The default_then was that_a write was fired_from the client_and_that's
it - fire and forget. A stupid default.

The default since is to get an_ack_from the_server._You_can control this on
each write_and make it more durable_(make sure_it is replicated to 1, majority
or all replicas)_or_faster (just get_to the server). The default is to be
written to_the primary server and put into_the transaction log_so_if_it
doesn't get committed to_disk (possibly 60 seconds by default)_it can recover.
The transaction log is_flushed (fsync) every 100ms by default and_is
configurable. You can also specify that_the write is only acknowledged_after
the transaction_log is synced. Anyways the_default is it_is put_into the
transaction log_and then acknowledged.

~~~
jedberg
Ok, fair enough. Then_the answer is_yes, they did fix it. :)

I_guess_I'll give it_another_look_then.

But I'm_still a little_wary_of a_database_built by people who ever thought
that_such_behavior was acceptable for a database...

~~~
nemo44x
I'd make_sure you use the_new_storage engine, wiredtiger too_if you give them
another shot._The standard one works well on_read heavy_use cases_but
saturates I/O pretty quickly if you're doing a lot of updates_that make
documents grow if you don't_take some precautions.

I also_agree, having_a_setting of "fire_and_forget", although_useful in some
(limited!) use cases, is not_a sane_default.

------
iagooar
You got your chance, Mongo, and_you screwed it up.

I_tried_getting the most out of you._I treated you like a princess,_I indulged
you, your wishes became_my_wishes_and your thoughts were my_thoughts. I
stopped listening to all that_criticism around you_and thought of you as of a
misunderstood_child,_even as you would refuse to_do_even the easiest tasks one
could imagine.

I_gave_you_everything there is to give,_but you broke my heart. You_left