Skip to main content

Posts

Hibernate Template vs Entity Manager while Persisting a List of Entites

I did a test for comparison between  org.springframework.orm.hibernate3.HibernateTemplate and   javax.persistence.EntityManager . I am sharing the result of my analysis. use case : Persistence of a List of Entities. environment : Linux 64-bit, jdk_1.8 When I run the test I found that Entity Manager performing better when persisting large size of list. An image can tell better than thousands words. So find the below image to see the performance difference between the frameworks. Data Table: Graph Chart:

Best Way to use ArrayList in Java

                      I n the following post we are goning to discuss a little variation in use of ArrayList in java. We will see how we can improve the performance by just a small change. First of all run the below java code on your machine. import java.util.ArrayList; import java.util.List; public class Test{ public static void main(String... args) { int s = 10000000; String v = "PROGRAMMING"; long t1,t2; //Segment-1 t1 = System.currentTimeMillis(); List<String> l1 = new ArrayList<>(); for(int i=0; i<s; ++i){ l1.add(v); } t2 = System.currentTimeMillis(); System.out.println("Time for above segment-1 : "+(t2-t1)+" ms"); //Segment-2 t1 = System.currentTimeMillis(); List<String> l2 = new ArrayList<>(s); for(int i=0; i<s; ++i){ l2.add(v); } t2 = System.currentTimeMillis(); System.out.println("Time for abo...

About Software Design and Development

When we plan to design a software we need to focus certain things. Here are some important points we can go through. Functional Decomposition: Functional decomposition is natural way to deal with complexity. The challenges with this approach: to dealing with change and bugs originate with changes to code. Low cohesion, tight coupling Focus on function leads to a cascade of changes from which it is difficult to escape. The Problem of Requirements: Requirements always change. Requirements are incomplete. Requirements are usually wrong. Requirements (and users) are misleading. Requirements do not tell the whole story. Deal with Changes(Use Functional Decomposition): Shift responsbility from yourself to...

Builder Pattern : Java Code Example

Builder Pattern Builder Pattern is used when the increase of object constructor parameter combination leads to an exponential list of constructors. It is a solution to the telescoping constructor anti-pattern. Let's describe the pattern by using a sample requirement. Problem: We need to create a class for a Customer in a Bank and need following attributes in the Customer object. {Name, Father's Name, Date Of Birth, Mobile, Email, PAN, Permanent Address, Correspondence Address, Account, Branch} Constraint : Name,Date Of Birth,Account can not be null or empty There are 10 attributes in the objects So there will be total 2^10(1024) possible constructor and It is not practical to write all required constructors. One alternative could be to use Setter method but it will not work if any attribute has final modifier and would be difficult to fulfill the constraint that some attributes can not be null or empty. Now We will see how Builder Design Pattern helps to solve...

How to Create a Namespace in Aerospike Database

                      T his post is about creating a namespace in Aerospike. I could not find any concrete method to create a namespace like create database in MySQL and MongoDB. So I am suggesting a way to create a namespace in Aerospike Database. Step-1: Locate config file aerospike.conf and open it in your favorite editor and make sure you have permission to modify the file. In my system the path of file /etc/aerospike/aerospike.conf (Default in Ubuntu). Here the content of the file. # Aerospike database configuration file. service { user root group root paxos-single-replica-limit 1 # Number of nodes where the replica pidfile /var/run/aerospike/asd.pid service-threads 4 transaction-queues 4 transaction-threads-per-queue 4 proto-fd-max 15000 } logging { # Log file must be an absolute path. file /var/log/aerospike/aerospike.log { context any info } } net...

Books : Every Computer Science Student Should Read Before Leaving College

Awesome books for Computer Science students: =================================================================== ------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------ -------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------    ------------------------------------------------------------------------------------------------------------------------  -----------------------------------------------------------------------------------------------------------...

com.mongodb.MongoCommandException: Command failed with error 18: 'Authentication failed.' on server

If you are trying to connect Mongo DB Server and it insanely throwing following error. com.mongodb.MongoTimeoutException : Timed out after 1000 ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster state is {type=UNKNOWN, servers=[{address=192.168.1.10:27010, type=UNKNOWN, state=CONNECTING, exception={ com.mongodb.MongoSecurityException: Exception authenticating MongoCredential {mechanism=null, userName='user123', source='admin', password=<hidden>, mechanismProperties={}}}, caused by {com.mongodb.MongoCommandException: Command failed with error 18 : 'Authentication failed.' on server 192.168.1.10:27010 . The full response is { "ok" : 0.0, "code" : 18, "errmsg" : "Authentication failed." }}}] If you start looking the error content First you encounter with Timeout Exception which may mislead you. It is basically an authentication error. I...