|
i really really like how datomic makes temporal data a first class citizen of any transaction in such a way that you can essentially go back in time and discover the truth "in the past"
|
# ? Oct 23, 2012 17:45 |
|
|
# ? May 9, 2024 11:43 |
|
Shaggar posted:but how does the database determine which data is conflicting, which is bad, and where to send it? if the application failed to write the complete data for an operation, how does the database know that? i guess thats what i dont understand A single node can have its own ACID semantics and have its own writes being consistent. Riak and Dynamo will read from more than one node (a configurable N, from 1 node to 100% of the nodes). It will then compare the values received from each of these nodes and see if they all are the same (they can usually work with hashes to make this faster). If they're all the same, no conflict. If they differ, you can use relative timestamps (using vector clocks or lamport clocks) to figure out a logically correct (as in mathematically correct) winner. If the winner can't be found, then you have a conflict. Once the conflict is detected, you can do: 1) random pick of a winner 2) last-write wins, if you decide you can trust your absolute timestamps (you shouldn't) 3) pick a majority winner across the reads 4) something else, or 5) push it to the user/application. The strategy you pick is dependent on the kind of application you write and what you can allow yourself. Banks can thus pick highly reliable factors with safe conflict-resolution semantics, while some guy writing distributed session handling for his website can pick something far less reliable. That's the model for Riak/Dynamo. Other databases built on other principles can do things differently if they want to. E: The consistency factors required can also be selected per-request, so that your money transactions have a higher consistency factor and different conflict resolutions from storing events of whoever logged in the system. Late Edit: The DB knows when writes fail based on some transaction manager, the same way one is used for two-phase commits. The mechanism can vary (it can be a 2 phase commits with only N/M nodes), or use something like Paxos to make it work, but the mechanism has the same challenges as whatever SQL database you're used to may have. MononcQc fucked around with this message at 18:10 on Oct 23, 2012 |
# ? Oct 23, 2012 17:46 |
|
good lord databases are boring
|
# ? Oct 23, 2012 17:46 |
|
databases are extremely interesting this nosql poo poo they're talking about is not
|
# ? Oct 23, 2012 17:49 |
|
Distributed systems are super interesting and fun
|
# ? Oct 23, 2012 17:53 |
|
page 219 stop jerking around alreadycode:
|
# ? Oct 23, 2012 17:59 |
219 motherfuckers
|
|
# ? Oct 23, 2012 18:00 |
|
man if we cant sperge out for two pages about transactions then i dont even know why we have a yospos
|
# ? Oct 23, 2012 18:03 |
|
rotor posted:man if we cant sperge out for two pages about transactions then i dont even know why we have a yospos goddamn right
|
# ? Oct 23, 2012 18:05 |
|
Your Transaction System is a Piece Of poo poo
|
# ? Oct 23, 2012 18:06 |
|
219 pages, every single one a testament to php supremacy
|
# ? Oct 23, 2012 18:08 |
|
dependency injection and inversion of control are both terrible names for hookin' up components of a system, they should have called it runtime component linking or something furthermore, what's with ovaltine? they should have called it roundtine
|
# ? Oct 23, 2012 18:09 |
|
glorious page 219
|
# ? Oct 23, 2012 18:11 |
|
Gazpacho posted:dependency injection and inversion of control are both terrible names for hookin' up components of a system, they should have called it runtime component linking or something Dependency injection is cool, butq I feel like it makes it easier for bad coders to write impossible to follow code
|
# ? Oct 23, 2012 18:23 |
|
Sweeper posted:Dependency injection is cool, butq I feel like it makes it easier for bad coders to write impossible to follow code How so? Also 219 bitches
|
# ? Oct 23, 2012 18:55 |
|
I come to this thread to forget about work, not talk about work
|
# ? Oct 23, 2012 19:07 |
|
shrughes posted:I come to this thread to forget about work, not talk about work it would be nice if u left thx
|
# ? Oct 23, 2012 19:17 |
|
shrughes posted:I come to this thread to forget about work, not talk about work you come to this thread, about programming languages, to forget about work, where you use programming languages. good work
|
# ? Oct 23, 2012 19:21 |
|
Jonnty posted:you come to this thread, about programming languages, to forget about work, where you use programming languages. good work best work, especially if you use modern powerful languages instead of outdated and broken trash like java & php
|
# ? Oct 23, 2012 19:25 |
|
Cocoa Crispies posted:best work, especially if you use modern powerful languages instead of outdated and broken trash like java & php
|
# ? Oct 23, 2012 19:47 |
|
Cocoa Crispies posted:especially if you use modern powerful languages like php
|
# ? Oct 23, 2012 20:58 |
|
rotor posted:literaly a door-to-door mongo salesman mongosteen
|
# ? Oct 23, 2012 21:02 |
|
Sweeper posted:Dependency injection is cool, butq I feel like it makes it easier for bad coders to write impossible to follow code Otoh it facilitates dividing a system among engineers of different skill levels so the better ones don't get throttled by the weaker ones
|
# ? Oct 23, 2012 21:16 |
|
MononcQc posted:A single node can have its own ACID semantics and have its own writes being consistent. so thats how notes works. you can set a per database conflict resolution of either 1) refuse to le the user save a conflicing document or 2) let the user save a conflicint document and mark it as conflicing. then the user will usually delete the conflicting document and wonder where their changes went. for transactions, is it still up to the application code to handle wrapping their code in transactions? is there a stored proc equivilent where you basically pass parameters to a statement (that then handles all the work) instead of orming?
|
# ? Oct 23, 2012 21:17 |
|
PHP is your teenage sweetheart, the girl you first awkwardly fumbled around with that one summer. Just don't try and start a more serious relationship - this girl has serious issues. Perl is PHP's older sister. She might be a bit old for you, but she was pretty popular back in the 90s. She's looking pretty ugly and scarred now, so you don't hear from her too much. Ruby is the cool kid of the scripting family. When you first saw her, she took your breath away with her beauty. She was fun, too. At the time she seemed a bit slow and ditzy - though she's matured a lot in the last few years. Python is Ruby's sensible (and slightly more boring) sister. Java is a successful career woman. What she lacks in raw intelligence she makes up for in dress - always turned out in immaculateCamelCase, sure to impress the enterprise customers. You might feel like she's the sensible type you should settle down with. Just prepare for years of "NO THAT DOESNT GO THERE GOD YOU ALWAYS USE THE WRONG TYPE AND YOU MISSED A SEMICOLON" nagging. C++ is Java's cousin. Similar to Java in many ways, the main difference being she grew up in a more innocent time and doesn't believe in condoms/automatic memory management, so be cautious. C is C++'s mom. Mention her name to some old grey beard hackers and they're sure to reminisce with a twinkle in their eye. Objective C is another member of the C family. She joined that weird church a while back, and won't date anyone outside of it. Haskell, Clojure, Scheme and their friends are those hipster, artsy, intellectual girls you probably spent a blissful college summer with a few years ago. The first girls who really challenged you. Of course, it could never have become something more serious (you tell yourself). Though you'll always be left asking "what if?" You might be put off C# due to her family's reputation. But they've gone legit, the last few years, they tell you. Once you're one of us, you're one of us, you hear? You need a database? Her brother MSSQL will hook you up. Need a place to stay? Heck, her daddy will even buy you your own mansion on Azure avenue. What's that, you're having second thoughts about all these overly friendly relatives? No, you can never leave. You're part of the family, now, ya hear? Javascript - hey, wasn't that the girl you first kissed, way before even PHP came on the scene? I wonder what she's doing now. I hear her career's really taken off in the last few years. Would be cool to catch up some time, if only for old time's sake... (You catch sight of her, dressed head to toe in designer jQuery)... wow, somebody grew into a beautiful swan...
|
# ? Oct 23, 2012 21:24 |
|
PHP is literally the broken woman seen in TBC's videos
|
# ? Oct 23, 2012 21:26 |
|
Shaggar posted:for transactions, is it still up to the application code to handle wrapping their code in transactions? is there a stored proc equivilent where you basically pass parameters to a statement (that then handles all the work) instead of orming? not really, most nosql systems don't have stored procedures because the big features are in data storage, not data processing what usually happens is wrapping the storage layer with an API service that provides the business logic and abstraction from app developers it's like stored procedures but you can mix and match storage layers in the same api: store users and their relation to organizations in postgresql, their relation to other users in neo4j, their profile pics in riak cs, wall posts in riak kv, etc.
|
# ? Oct 23, 2012 21:30 |
|
Hard NOP Life posted:How so? usually it makes things not so obvious. ex: in mybatis you create java interfaces and then map their methods to statements in a mapping xml file. normally you have to tie the interface to the mapping file by hand. however, since the standard convention is to name your xml files the same as the interface it seems like this could be automated. mybatis-spring provides a super easy class that will look in a specified package for interfaces and then try to find matching mapper xml files. when found, it will tie the two together and then generate a spring bean with an id that matches the mapper name. you can then inject this bean into any dependant beans. this is super helpful and saves time. however, if someone doesnt understand spring or doesnt understand mybatis they may get confused and not understand how the mapping is occuring. new devs will see the java interfaces (a thing they understand) but be confused by the total lack of implementation classes. now once they understand spring + mybatis it becomes very obvious. this case is pretty normal though. you can do some massively hosed up poo poo in spring that will confuse the poo poo out of even the hardened dev. usually that stuff has to do w/ aop though.
|
# ? Oct 23, 2012 21:31 |
|
0xB16B00B5 posted:PHP is your teenage sweetheart, the girl you first awkwardly fumbled around with that one summer. Just don't try and start a more serious relationship - this girl has serious issues.
|
# ? Oct 23, 2012 21:31 |
|
Tiny Bug Child posted:they can use their name they just can't use weird characters https://www.youtube.com/watch?v=zyu2jAD6sdo
|
# ? Oct 23, 2012 21:33 |
|
0xB16B00B5 posted:PHP is your teenage sweetheart, the girl you first awkwardly fumbled around with that one summer. Just don't try and start a more serious relationship - this girl has serious issues. jesus christ ban
|
# ? Oct 23, 2012 21:35 |
|
0xB16B00B5 posted:PHP is your teenage sweetheart, the girl you first awkwardly fumbled around with that one summer. Just don't try and start a more serious relationship - this girl has serious issues. BTW you are a MALE and are SEXUALLY INTERESTED in FEMALE
|
# ? Oct 23, 2012 21:35 |
|
yeah i guess it would be nice if i automatically stripped out the accents and umlauts and other floating letter doodads, but c'mon, you can't seriously expect an english site that has never been promoted in chinese in any way to work when you put chinese characters into it
|
# ? Oct 23, 2012 21:36 |
|
gucci void main posted:i think that we should gas this now poo poo thread before it gets to page 219 and shames yospos you're a bad person
|
# ? Oct 23, 2012 21:44 |
|
Cocoa Crispies posted:not really, most nosql systems don't have stored procedures because the big features are in data storage, not data processing those are webservices in soa.
|
# ? Oct 23, 2012 21:44 |
|
JawnV6 posted:BTW you are a MALE and are SEXUALLY INTERESTED in FEMALE
|
# ? Oct 23, 2012 21:45 |
|
if you don't <3 cum get the h*ck out of twitter
|
# ? Oct 23, 2012 21:46 |
|
Shaggar posted:so thats how notes works. you can set a per database conflict resolution of either 1) refuse to le the user save a conflicing document or 2) let the user save a conflicint document and mark it as conflicing. then the user will usually delete the conflicting document and wonder where their changes went. I've never used Notes, but it's one possible strategy for conflict resolution. You tend to adapt them to your precise use case. As said above, Amazon would do it automatically, without user input, but it did require for the calling code to make a resolving decision. Regarding stored procedures, Coacoa Crispies' answer is right, to the extent of my understanding. The API services will help, and sometimes the DB engine will give you a somewhat programmable database (see: "write a map-reduce query in Erlang, also go gently caress yourself" comic, CouchDB has stored Javascript procedures for queries (called views), Datomic has stored procedures, etc.) Then yes, the software developer may usually tie all kinds of different storage within their own model layer in their application, hiding away as many implementation or storage details as possible. There is no true uniform solution, because NoSQL basically just means "not relational" to some extent. You have object databases, key/value stores, document databases, some geospatial stores, or whatever, with different APIs available. They're hard to shove into one category. Some of them (like VoltDB) tend to have full consistency and relational approaches the way most SQL databases do it. While they're often classified in 'NoSQL', the VoltDB guys like to be called 'NewSQL' for a more modern approach to the same design goals as SQL databases. They'll have a drastically different approach from, say, MongoDB, but still be packaged in the same group of databases. Shaggar posted:those are webservices in soa. Yeah, they can be seen that way in many cases. This isn't a bad approach, as long as you don't get inside the ws-* world of endless specifications and architecture astronomy, I guess.
|
# ? Oct 23, 2012 21:49 |
|
Shaggar posted:those are webservices in soa. yeah exactly split up the data storage and the data processing responsibilities into independent services so you can scale horizontally easier ∴ stored procedures are a relic and shouldn't be used
|
# ? Oct 23, 2012 21:49 |
|
|
# ? May 9, 2024 11:43 |
|
haha wow way to be hysterical sweetheart
|
# ? Oct 23, 2012 21:53 |