You were also pondering whether or not a swtch invokes a TLB flush or not. The answer is “it depends” :) It is architecture specific and implementation specific. On older x86 hardware, TLB flushes do happen. On newer hardware it can be avoided if you implement it the right way. If you are running virtualization, then all this changes, naturally.
TLB shootdowns happen when one core decides it needs to change address mappings for something which is shared between cores. For instance to lock it for exclusivity. So if the memory space is shared among several processes, this becomes a problem.
As for the discussion itself, stateless servers are boring. You want problems that requires keeping state in between requests - and also have that state invoke operations on itself based on events or timers. And you want it on several physical machines next to each other for redundancy. These are way harder to solve, and I will hypothesize Node.js is a bad fit for those.
Hopefully that work can live on again in the future.
Brad Pitcher, on
I’ve got it working with the gtk-webkit-ruby gem: https://github.com/brad/yamr
Kyle, if you aren’t planning on maintaining this any more, can you remove your app from Yammer to free up the namespace?
anonymous, on
sefafe
Rowan C. de la Barre, on
Where is this? Do you have more photos of this elevator?
Tim, on
Looking forward to that tech talk!
Aphyr, on
Hey James, sorry, but I haven’t used Yammer in a few years. Haven’t had the time to maintain this client since. :-/
Aphyr, on
Jose, I haven’t figured it out yet, but I think it’s something to do with deleted objects. You may want to try checking metadata[‘X-Riak-Deleted’].
d_don, on
how about ‘dubl’
James, on
Could not get the ruby webkit bindings ( rbwebkitgtk ) to build on Ubuntu 11.10 :-(
Hi, Did you finally fix this error? I’m having the same issue with riak-1.0.1.
Regards,
Jose
Aphyr, on
Yes, precommit hooks are a great way to enforce application-level logic. A few things to keep in mind:
Since they block requests, they count against write latency budgets. You may not want to block on Riak for that long. You really shouldn’t be doing any IO in precommits, which could be necessary for certain validation.
You might not consider blocking on writes for 10ms to be a big deal once, but objects that are frequently written will have precommit hooks applied every time. You can’t distinguish between a trusted component saving a known good value and an untrusted component saving values that need thorough double-checking.
Your security/validation model may not fit cleanly inside Riak without porting a lot of code. No big deal here–just split up the constraints and apply what you can inside precommit hooks.
Anything you do here takes away cpu cycles and cache from your database. It may be more efficient to do expensive operations on the client instead, especially if you can scale out the clients faster than the Riak cluster itself.
That said, the combination of hot code reloading and being right next to the write makes commit hooks a great place to do validation and computational flow. We use postcommits extensively at Showyou to pull in additional data for videos, etc.
Jess, on
This seems like a good model. I have a couple of questions related to my limited understanding of Riak.
I’m not sure whether you’ve discouraged or just avoided this possibility above, but would you see any problems with enforcing application-type constraints in pre-commit hooks? For instance, a user might only be able to create a particular type of object if she already had a valid container for that type of object. This would also be enforced in the “app server” level, but I always appreciated the “defense in depth” that relational db triggers could provide in addition to application logic.
I saw the exchange on the riak-users list that led to this post. I don’t necessarily agree with the more extreme sentiments expressed there, but it does seem that Riak could do a bit more, especially in more “open” situations such as on a shared host. I was going to ask if self-signed certificates would be helpful, and then I took a look at the v1.0 vm.args file and saw the -ssl_dist_opt client_certfile and -ssl_dist_opt server_certfile lines. I need to investigate these! Hopefully these allow TLS from outside the riak cluster as well as within it…
doop, on
Hello! Your description of hypnagogic synaesthesia came up when I googled for the phrase, while wondering if anyone else had the same thing. Your experience sounds exactly the same as mine - right down to the diagonal lines! I often find that they’re a bit zigzaggy, and they sort of wax and wane with the amplitude of the sound.
cutepig, on
I had same problem on Ubuntu Lucid, my phone is HTC desire cdma.
thanks a lot
Jonathan, on
Lmfao.
LOL man, on
I can’t understand the picture :P
some IT intern guy, on
Lol these are pretty funny
Accidentally ended here but don’t stop making these !
Adam Midvidy, on
Hey! Thank’s so much for this. I’ve been learning to use LaTeX this summer and this was very helpful.
Brandon, on
Isn’t he also a young earther? Even if he isn’t, that statement is either equally ignorant or intentionally misinformational. Either way, fuck Fox.
Aphyr, on
There is a spatial resolution limit for directed antennas as a result of diffraction, but I think you can broadcast most radio frequencies over small distances just fine. iPod radios operate at <100MHz over distances less than a few meters.
I’ve even got a 10-foot range 10 MHz transmitter in my little box of shortwave gear. :)
Ali Shah, on
Do you think television waves would be too big to operate a such a small zone allowance, e.g. would some data be lost?
Tom, on
Very nice lava eye. And how could anyone not love it.
alyana, on
I LOVE THAT PIC IT IS SO COOL
Tsung.W, on
Thank you, dude.
(I just missed plug again) lol
Aphyr, on
Yeah, that’s been broken for several months. You’re welcome to tear open the oauth code and submit a pull req on github if you like. I spent an hour with it a while back and got nowhere.
Adam Bolte, on
This would be perfect, if only I could get it working.
Currently, I get Authorization Error: “The application Yamr can not be authorized in your network. Please contact the application author.”
Any ideas? Thanks!
Alex, on
Thanks! Exactly what I needed!
Aphyr, on
THANKS MOM. ;-)
Mom, on
Shall I send money so you can afford a little more fabric in your … uh … outfit?
You were also pondering whether or not a swtch invokes a TLB flush or not. The answer is “it depends” :) It is architecture specific and implementation specific. On older x86 hardware, TLB flushes do happen. On newer hardware it can be avoided if you implement it the right way. If you are running virtualization, then all this changes, naturally.
TLB shootdowns happen when one core decides it needs to change address mappings for something which is shared between cores. For instance to lock it for exclusivity. So if the memory space is shared among several processes, this becomes a problem.
As for the discussion itself, stateless servers are boring. You want problems that requires keeping state in between requests - and also have that state invoke operations on itself based on events or timers. And you want it on several physical machines next to each other for redundancy. These are way harder to solve, and I will hypothesize Node.js is a bad fit for those.
I’d love an in depth review on where the attempted multi-threading in node branch- isolates- went wrong, where the worst complexities were. http://groups.google.com/group/nodejs/msg/6b8b8a487d2ab817
Hopefully that work can live on again in the future.
I’ve got it working with the gtk-webkit-ruby gem: https://github.com/brad/yamr Kyle, if you aren’t planning on maintaining this any more, can you remove your app from Yammer to free up the namespace?
sefafe
Where is this? Do you have more photos of this elevator?
Looking forward to that tech talk!
Hey James, sorry, but I haven’t used Yammer in a few years. Haven’t had the time to maintain this client since. :-/
Jose, I haven’t figured it out yet, but I think it’s something to do with deleted objects. You may want to try checking metadata[‘X-Riak-Deleted’].
how about ‘dubl’
Could not get the ruby webkit bindings ( rbwebkitgtk ) to build on Ubuntu 11.10 :-(
Build errors here: http://danlucraft.com/blog/2008/04/ruby-webkit-2/#comment-359677061
Correction: riak-1.0.0
Hi, Did you finally fix this error? I’m having the same issue with riak-1.0.1.
Regards, Jose
Yes, precommit hooks are a great way to enforce application-level logic. A few things to keep in mind:
That said, the combination of hot code reloading and being right next to the write makes commit hooks a great place to do validation and computational flow. We use postcommits extensively at Showyou to pull in additional data for videos, etc.
This seems like a good model. I have a couple of questions related to my limited understanding of Riak.
I’m not sure whether you’ve discouraged or just avoided this possibility above, but would you see any problems with enforcing application-type constraints in pre-commit hooks? For instance, a user might only be able to create a particular type of object if she already had a valid container for that type of object. This would also be enforced in the “app server” level, but I always appreciated the “defense in depth” that relational db triggers could provide in addition to application logic.
I saw the exchange on the riak-users list that led to this post. I don’t necessarily agree with the more extreme sentiments expressed there, but it does seem that Riak could do a bit more, especially in more “open” situations such as on a shared host. I was going to ask if self-signed certificates would be helpful, and then I took a look at the v1.0 vm.args file and saw the -ssl_dist_opt client_certfile and -ssl_dist_opt server_certfile lines. I need to investigate these! Hopefully these allow TLS from outside the riak cluster as well as within it…
Hello! Your description of hypnagogic synaesthesia came up when I googled for the phrase, while wondering if anyone else had the same thing. Your experience sounds exactly the same as mine - right down to the diagonal lines! I often find that they’re a bit zigzaggy, and they sort of wax and wane with the amplitude of the sound.
I had same problem on Ubuntu Lucid, my phone is HTC desire cdma. thanks a lot
Lmfao.
I can’t understand the picture :P
Lol these are pretty funny Accidentally ended here but don’t stop making these !
Hey! Thank’s so much for this. I’ve been learning to use LaTeX this summer and this was very helpful.
Isn’t he also a young earther? Even if he isn’t, that statement is either equally ignorant or intentionally misinformational. Either way, fuck Fox.
There is a spatial resolution limit for directed antennas as a result of diffraction, but I think you can broadcast most radio frequencies over small distances just fine. iPod radios operate at <100MHz over distances less than a few meters.
I’ve even got a 10-foot range 10 MHz transmitter in my little box of shortwave gear. :)
Do you think television waves would be too big to operate a such a small zone allowance, e.g. would some data be lost?
Very nice lava eye. And how could anyone not love it.
I LOVE THAT PIC IT IS SO COOL
Thank you, dude. (I just missed plug again) lol
Yeah, that’s been broken for several months. You’re welcome to tear open the oauth code and submit a pull req on github if you like. I spent an hour with it a while back and got nowhere.
This would be perfect, if only I could get it working.
Currently, I get Authorization Error: “The application Yamr can not be authorized in your network. Please contact the application author.”
Any ideas? Thanks!
Thanks! Exactly what I needed!
THANKS MOM. ;-)
Shall I send money so you can afford a little more fabric in your … uh … outfit?
I owe you a steak.