Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
0xB16B00B5
Aug 24, 2006

by Y Kant Ozma Post
it was more data warehousing and updated once a day/once a week, and not constant writes, so i dunno

Adbot
ADBOT LOVES YOU

multigl
Nov 22, 2005

"Who's cool and has two thumbs? This guy!"

tinselt0wn posted:

it was more data warehousing and updated once a day/once a week, and not constant writes, so i dunno

data warehousing is pro, and it's much smarter to have your application & db design made for performance/scaling or whatever you need, and have a real data warehouse for reporting.

vapid cutlery
Apr 17, 2007

php:
<?
"it's george costanza" ?>

tinselt0wn posted:

i dunno ive dealt with sql databases up to about half a billion rows and it was ok and at least people understand it rather than the nosql du jour so whatever works for your particular application i guess

im a big fan of considering your design carefully and using the right tool for the job. im a tool eheh heh heh

Pendragon
Jun 18, 2003

HE'S WATCHING YOU
just like to say this thread rocks and has introduced me to some cool new topics.

too bad I'll never get to use them because I'm one of three programmers supporting a 30 year old enterprise system written in *sigh* Progress 4GL/OpenEdge ABL. I'm still trying to teach one of the programmers that's been with the company 20+ years how to use OO.

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Pendragon posted:

just like to say this thread rocks and has introduced me to some cool new topics.

too bad I'll never get to use them because I'm one of three programmers supporting a 30 year old enterprise system written in *sigh* Progress 4GL/OpenEdge ABL. I'm still trying to teach one of the programmers that's been with the company 20+ years how to use OO.

if you're not having fun and being intellectually challenged at your job you should quit and find one that does challenge you

salted hash browns
Mar 26, 2007
ykrop

BonzoESC posted:

if you're not having fun and being intellectually challenged at your job you should quit and find one that does challenge you

salted hash browns
Mar 26, 2007
ykrop
Also curious to know about the mongo hate too. Using it now for realtime analytics and it seems p sweet

Shaggar
Apr 26, 2006
mongo is fine if your data doesnt matter

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Shaggar posted:

mongo is fine if your data doesnt matter
shaggar was right

salted hash browns
Mar 26, 2007
ykrop

Shaggar posted:

mongo is fine if your data doesnt matter

is it just the retarded sharding issue? or does it have other data loss problems

Cold on a Cob
Feb 6, 2006

i've seen so much, i'm going blind
and i'm brain dead virtually

College Slice

Shaggar posted:

mongo is fine if your data doesnt matter

shaggar was indeed right and this why google created f1 to run their adwords biz to replace mysql, which is still better than nosql if your data matters

using nosql for important data is like using floats to store your financial data

Cold on a Cob fucked around with this message at 04:37 on Jul 22, 2012

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

iamthexander posted:

Also curious to know about the mongo hate too. Using it now for realtime analytics and it seems p sweet
it's basically way clumsier than just using SQL at a small scale, and once you need to share it, it turns out to be awful

the foursquare post I linked last page is basically that they shared based on ranges of user id and one of the nodes got overloaded and slowed way down, and they couldn't recover without a big offline recovery process because of fragmentation on the overloaded node

what a real distributed database does (Cassandra and riak) is sharded based on a cryptographic hash of the key, which means that distribution is more random; broken into vnodes, which makes distribution more flexible to modify while the cluster is online; and has tunable redundancy, so you can say that values in a given bucket are stored on three nodes, writes don't succeed until it's been flushed to disk on at least two, and if you want fast reads you just want to wait for an answer from one node instead of three

the indexing features that mongo's had since the beginning are initially attractive to idiot web devs, but the redundancy, distribution, and integrity features that riak has had since the beginning are better for sustained operations

you hear about lots of apps (like bump) moving from mongo to riak as they grow, but never anybody moving from riak to mongo and it's because riak is easy to keep running

salted hash browns
Mar 26, 2007
ykrop

BonzoESC posted:

you hear about lots of apps (like bump)

quote:

Instead, we've written a thousand-line Haskell program that acts as an interface between the app nodes and the database, which exclusively deals with conflict resolution and sibling merges. Every Riak interaction is done through this tool that we've dubbed /magicd/, which guarantees the app nodes always see a consistent truth. This obviates the largest pain point of eventually consistent databases.

Ugh

e: but the whole "just throw more nodes in the cluster and do read-repair" seems nice

salted hash browns fucked around with this message at 05:06 on Jul 22, 2012

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

iamthexander posted:

Ugh

e: but the whole "just throw more nodes in the cluster and do read-repair" seems nice
yeah that's the trade off since you can't do distributed locks, you have to use CRDTs to merge parallel writes

this is a fat idiot talking about crdts: http://vimeo.com/45433300

salted hash browns
Mar 26, 2007
ykrop

BonzoESC posted:

yeah that's the trade off since you can't do distributed locks, you have to use CRDTs to merge parallel writes

this is a fat idiot talking about crdts: http://vimeo.com/45433300

woah were you there when tef was there

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

iamthexander posted:

woah were you there when tef was there
tef lives there but yeah I spoke an hour or so before he did

tef
May 30, 2004

-> some l-system crap ->

iamthexander posted:

woah were you there when tef was there

goon meet

tef
May 30, 2004

-> some l-system crap ->

Shaggar posted:

mongo is fine if your data doesnt matter

mongo is fine if you want to spend an order of magnitude more time on operations than development.

tef
May 30, 2004

-> some l-system crap ->

BonzoESC posted:

if you're not having fun and being intellectually challenged at your job you should quit and find one that does challenge you

or slack off at your current job and do interesting things while no one is looking.

Pendragon posted:

just like to say this thread rocks and has introduced me to some cool new topics.

too bad I'll never get to use them

most of the cool poo poo you never get around to using. when you do, it sorta loses its shine.

Pendragon posted:

because I'm one of three programmers supporting a 30 year old enterprise system written in *sigh* Progress 4GL/OpenEdge ABL. I'm still trying to teach one of the programmers that's been with the company 20+ years how to use OO.

you're getting paid more than him, right ?

tef fucked around with this message at 05:32 on Jul 22, 2012

tef
May 30, 2004

-> some l-system crap ->
on the whole lol web2.0, people have been using things that speak memcache as persistent stores. but the libraries treat caches being offline as the key not being present, cos it assumes it's speaking to a cache.

so they either have to rewrite the library, or write more code around the library to check the server is up. that is, if they want the website not to fall over.

quote:

I remember Mike, Robert and I having great fun asking the same question over and over again: "what happens if it fails?" -- the answer we got was almost always a variant on "our model assumes no failures." We seemed to be the only people in the world designing a system that could recover from software failures.

Opinion Haver
Apr 9, 2007

who the gently caress designed the html5 canvas api, it's awful

tef
May 30, 2004

-> some l-system crap ->
apple

Sneaking Mission
Nov 11, 2008

ugh not those guys again they just seem to ruin everything they touch

Opinion Haver
Apr 9, 2007

why would you include a way to get the width of a block of text but not the height

THE PLATFORM MASTER
Jun 3, 2008

yaoi prophet posted:

why would you include a way to get the width of a block of text but not the height

lol its trivial just

vapid cutlery
Apr 17, 2007

php:
<?
"it's george costanza" ?>

yaoi prophet posted:

why would you include a way to get the width of a block of text but not the height

what api

tef
May 30, 2004

-> some l-system crap ->

yaoi prophet posted:

why would you include a way to get the width of a block of text but not the height

at a guess:

the underlying draw text primitive doesn't handle word-wrapping to a length

the measuring text works by rendering the text without drawing it, but checking where the new x,y coordinates are.

so because it doesn't wrap, the y coordinate will never change.

Zombywuf
Mar 29, 2008

Getting the height of a block of text can be really tricky these days. You've got quite a few different values that could be considered to be the text's height.

Better to just pretend height doesn't exist, otherwise webdevs will get confused.

Stringent
Dec 22, 2004


image text goes here

BonzoESC posted:

yeah that's the trade off since you can't do distributed locks, you have to use CRDTs to merge parallel writes

this is a fat idiot talking about crdts: http://vimeo.com/45433300

was this intentionally confusing or what?

0xB16B00B5
Aug 24, 2006

by Y Kant Ozma Post
how dumb are you really?

Stringent
Dec 22, 2004


image text goes here
reallyprettydubm

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Stringent posted:

was this intentionally confusing or what?

no but it was for a ruby thing not a php thing so i didn't feel i had to stick to one-syllable words

Pendragon
Jun 18, 2003

HE'S WATCHING YOU

BonzoESC posted:

if you're not having fun and being intellectually challenged at your job you should quit and find one that does challenge you

working on it.

tef posted:

or slack off at your current job and do interesting things while no one is looking.

that's kind of what I do now.

"hmmm... I have some downtime...."
*write python startup script for software package that can recover from failures*
*write flex class to replace 400 lines of error-prone code from almost all of our programs*
*document everything*
...
*no one ever uses them*

tef posted:

you're getting paid more than him, right ?

...probably not. that must be rectified.

MononcQc
May 29, 2007

BonzoESC posted:

it's basically way clumsier than just using SQL at a small scale, and once you need to share it, it turns out to be awful

the foursquare post I linked last page is basically that they shared based on ranges of user id and one of the nodes got overloaded and slowed way down, and they couldn't recover without a big offline recovery process because of fragmentation on the overloaded node

what a real distributed database does (Cassandra and riak) is sharded based on a cryptographic hash of the key, which means that distribution is more random; broken into vnodes, which makes distribution more flexible to modify while the cluster is online; and has tunable redundancy, so you can say that values in a given bucket are stored on three nodes, writes don't succeed until it's been flushed to disk on at least two, and if you want fast reads you just want to wait for an answer from one node instead of three

the indexing features that mongo's had since the beginning are initially attractive to idiot web devs, but the redundancy, distribution, and integrity features that riak has had since the beginning are better for sustained operations

you hear about lots of apps (like bump) moving from mongo to riak as they grow, but never anybody moving from riak to mongo and it's because riak is easy to keep running
Regarding Riak: that's a good overview, but an important point is that it allows you to manage quorum per-query, saying N/M nodes need to get the information for the request to be complete. This allows to have a granular control about how much of the cluster needs to be alive (in the "can communicate" sense of alive) in order for a certain operation to work. That way you could make reading presence work even under heavy splits, but financial transactions block when the cluster isn't healthy.

Cassandra doesn't have vnodes yet (they're coming soon afaik, though maybe my info is out of date), only hard server nodes. This creates lovely issues where you need to grow your cluster of DB servers by a number that evenly divides the currently existing hash ring; otherwise you'll be creating hot spots around it.

Also, MongoDB, before v2.0 (iirc) had one global lock for all writes. Write data? All tables everywhere on the server are locked, both for reads and writes.

Sapozhnik
Jan 2, 2005

Nap Ghost
i like how everyone itt likes to periodically jizz over the D Language Forum's performance, and my Java web thing is pretty much that fast and i don't even do anything terribly clever with it (there's a bunch of memcached hooks in the code but i haven't actually got around to writing a Cache impl that actually remembers anything. i prob never will because tef says cache invalidation is Hard and tef is always right)

postgres and the jvm ft loving w

Zombywuf
Mar 29, 2008

If you're writing a website use a web cache.

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Mr Dog posted:

i like how everyone itt likes to periodically jizz over the D Language Forum's performance, and my Java web thing is pretty much that fast and i don't even do anything terribly clever with it (there's a bunch of memcached hooks in the code but i haven't actually got around to writing a Cache impl that actually remembers anything. i prob never will because tef says cache invalidation is Hard and tef is always right)

postgres and the jvm ft loving w
the two hardest things in programming: naming things, cache invalidation, and off-by-one errors

Rufus Ping
Dec 27, 2006





I'm a Friend of Rodney Nano

BonzoESC posted:

the two hardest things in programming: naming things, cache invalidation, and off-by-one errors

:groan:

Alligator
Jun 10, 2009

LOCK AND LOAF

yaoi prophet posted:

why would you include a way to get the width of a block of text but not the height
you can

http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#textmetrics

its just theres like ten different things that qualify as height

Adbot
ADBOT LOVES YOU

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Alligator posted:

you can

http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#textmetrics

its just theres like ten different things that qualify as height



lol

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply