As the future Drupal8 and eZ Publish 5 will both base on Symfony as their core, a few days ago one of my colleague at eZ Systems asked the technical difference between future Drupal 8 and eZ Publish 5. Here is my opinion about their difference: (more…)
- 20 July 2012
Man, your post is clearly biased towards eZPublish :) ... not saying that is bad or completely wrong but it…
You are right, it is biased towards eZ Publish because it is an originally a post for the market purpose…
Well, saying this and that is not available in Drupal's core system and hence it is not good enough is…
I agree with you. But the article had some bias in the other system. Drupal is a great system.…
- 9 July 2012
Redis Internals
Everything in Redis is ultimately represented as a string. Even collections like lists, sets, sorted sets, and maps are composed of strings. Redis defines a special structure, which it calls simple dynamic string or SDS. This structure consists of three parts, namely:
- buff — A character array that stores the string
- len — A long type that stores the length of the buff array
- free — Number of additional bytes available for use
Although you may think of storing len separately as an overhead, because it can be easily calculated based on the buff array, it allows for string length lookup in fixed time.
Redis keeps its data set in the primary memory, persisting it to disk as required. Unlike MongoDB, it does not use memory-mapped files for that purpose. Instead, Redis implements its own virtual memory subsystem. When a value is swapped to disk, a pointer to that disk page is stored with the key. Read more about the virtual memory technical specification at http://code.google.com/p/redis/wiki/VirtualMemorySpecification.
In addition to the virtual memory manager, Redis also includes an event library that helps coordinate the non-blocking socket operations.
WHY DOESN’T REDIS RELY ON OPERATING SYSTEM VIRTUAL MEMORY SWAPPING?
- Redis doesn’t rely on operating system swapping because:
Redis objects don’t map one-to-one with swap pages. Swap pages are 4,096 bytes long and Redis objects could span more than one page. Similarly, more than one Redis object could be in a single swap page. Therefore, even when a small percentage of the Redis objects are accessed, it’s possible a large number of swap pages are touched. Operating system swapping keeps track of swap page access. Therefore, even if a byte in a swap page is accessed it is left out by the swapping system. - Unlike MongoDB, Redis data format when in RAM and in disk are not similar. Data on disk is compressed way more as compared to its RAM counterpart. Therefore, using custom swapping involves less disk I/O.
Salvatore Sanfillipo, the creator of Redis, talks about the Redis virtual memory system in his blog post titled, “Redis Virtual Memory: the story and the code,” at http://antirez.com/post/redis-virtual-memory-story.html.
- 6 July 2012
NoSql Notes
In NoSQL stores, the create and read operations are more important than the update and delete operations, so much so that sometimes those are the only operations.
- 5 July 2012
Javascript embarrassment
Nowadays, we all write javascript code using various javascript frameworks, be it Jquery, YUI, prototype or many others. One reason we use this javascript frameworks is that they provide us rich features, easy understanding code, automatic browser compatibility and sometime, langauge extended features. Some of us may even didn’t right much the stand alone javascript code at all, actually, I usually heard people use javascript and Jquery as interchangeable terms. (more…)