Note: The db usage in my case may not be typical.
did not work well for me:
administration tools are not user friendly
could not quite figure out how to load data from a file
Nice adminstration tools
Deployment is very simple and well explained in documentation
Speed: in my case slower than MySQL
* Preferered choice in my case
Very nice db, but deployment is rather heavy
I was considering HSQLDB as my primary choice of in memory database. After reading its history on http://en.wikipedia.org/wiki/HSQLDB :
HSQLDB is a relational database management system written in Java. It is based on Thomas Mueller's discontinued Hypersonic SQL Project.[1] He later developed H2 as a complete rewrite.
I decided to give H2 a try. Bellow is the benchmark from the H2's website, which looks quite nice. Hopefully my application will achieve similar results.
My application. I am currently running my algorithm on the top of Taste recommender engine using MySQL. A complete set of experiments for my algorithm and existing to produce results takes 3 days on a Core2 Duo machine. I need to try more than 20 different settings = 60 days. So I decided to try to speed it up. In addition I don't have permission to install db on the supercomputing cluster at my university so in memory db hopefully will solve both of my problems.
Since memory's I/O is much faster than disk I/O this should translate into significant speed up (assuming your db can fit in memory)
Could be run in embeded mode -- all you need is java and you can run it locally inside of your application (no additional sotware needs to be installed on the server etc.).
Note: I am using this setup for explorative learning algorithm; it is not a typical usage of the recommender system.
Single pass: 138 - 3,819 ms (depending on configuration)
# Create Table
CREATE TABLE taste_preferences (
user_id VARCHAR(10) NOT NULL,
item_id VARCHAR(10) NOT NULL,
preference FLOAT NOT NULL,
time_stamp VARCHAR(10),
PRIMARY KEY (user_id, item_id)
)
# Create Indexes
CREATE INDEX IDX_USER_ID ON TASTE_PREFERENCES ( USER_ID )
CREATE INDEX IDX_ITEM_ID ON TASTE_PREFERENCES ( ITEM_ID )
CREATE INDEX IDX_PREFERENCE ON TASTE_PREFERENCES ( PREFERENCE )
# Load data from file
INSERT INTO TASTE_PREFERENCES SELECT * FROM CSVREAD('/home/neil/tmp/u.txt');
see AL_CF.java for more details
Some parts of code are not well documented; the javadoc seems to be out of sync. Had to browse for this one for a while, untill found it.
// Create DB Connection
// H2
String driverName = "org.h2.Driver";
String url = "jdbc:h2:~/test";
String user = "sa";
String pwd = "";
org.h2.jdbcx.JdbcDataSource db = new org.h2.jdbcx.JdbcDataSource();
db.setUser(user);
db.setPassword(pwd);
db.setURL(url);
java.util.NoSuchElementException: Can't retrieve more due to exception: org.h2.jdbc.JdbcSQLException: The result set is not scrollable and can not be reset. You may need to use conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY). [90128-66]
Changed com.planetj.taste.impl.model.jdbc.AbstractJDBCDataModel
* NEIL -- Modified ResultSetUserIterator to fix the following Exception:
* TODO: Do it in a better way
org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement INSERT INTO TASTE_PREFERENCES SET[*] USER_ID=?, ITEM_ID=?, PREFERENCE=? ON DUPLICATE KEY UPDATE PREFERENCE=? ; expected ., (, DEFAULT, VALUES, (, SELECT, FROM; SQL statement:
INSERT INTO taste_preferences SET user_id=?, item_id=?, preference=? ON DUPLICATE KEY UPDATE preference=? [42001-66]
at org.h2.message.Message.getSQLException(Message.java:89)
at org.h2.message.Message.getSQLException(Message.java:93)
at org.h2.message.Message.getSyntaxError(Message.java:103)
at org.h2.command.Parser.getSyntaxError(Parser.java:454)
at org.h2.command.Parser.parseSelectSimple(Parser.java:1445)
at org.h2.command.Parser.parseSelectSub(Parser.java:1366)
at org.h2.command.Parser.parseSelectUnion(Parser.java:1249)
at org.h2.command.Parser.parseSelect(Parser.java:1237)
at org.h2.command.Parser.parseInsert(Parser.java:826)
at org.h2.command.Parser.parsePrepared(Parser.java:343)
at org.h2.command.Parser.parse(Parser.java:265)
at org.h2.command.Parser.parse(Parser.java:241)
at org.h2.command.Parser.prepareCommand(Parser.java:209)
at org.h2.engine.Session.prepareLocal(Session.java:213)
at org.h2.engine.Session.prepareCommand(Session.java:195)
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:970)
at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:1206)
at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:161)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.prepareStatement(PoolingDataSource.java:302)
at com.planetj.taste.impl.model.jdbc.AbstractJDBCDataModel.setPreference(AbstractJDBCDataModel.java:420)
at com.planetj.taste.impl.recommender.AbstractRecommender.setPreference(AbstractRecommender.java:81)
at org.hrstc.taste.al.AL_CF.evaluate(AL_CF.java:243)
at org.hrstc.taste.al.AL_CF.main(AL_CF.java:80)
Solution:
INSERT INTO TASTE_PREFERENCES SET USER_ID='22', ITEM_ID='378', PREFERENCE='5.0' ON DUPLICATE KEY UPDATE PREFERENCE='5.0'
Was giving the above exception. Replaced it with:
INSERT INTO TASTE_PREFERENCES (user_id, item_id, preference) VALUES ('22', '378', '5.0') ON DUPLICATE KEY UPDATE PREFERENCE='4.0'
Then ... ON DUPLICATE KEY UPDATE PREFERENCE='4.0' part was not a standard SQL syntax (perhaps specific to MySQL).
A better way would be to use an ANSI/ISO standard command MERGE ( instead of other db specific variants ) e.g.:
MERGE INTO TASTE_PREFERENCES(user_id, item_id, preference) key(user_id,item_id) VALUES ('22', '378', '4.0')
wrote H2JDBCDataModel.java
I finaly got H2 to run (most of the changes where migrating incompatible SQL from MySQL to standard SQL)
The performance of it was rather slow:
INFO: It took ms: 2,119,766
Used memory-only mode http://www.h2database.com/html/features.html#memory_only_databases
INFO: It took ms: 140,568
Thats a 10 fold improvement
Let JVM use more memory; let db use more memory
Did not help
Installed TPTP for eclipse but does not work; could not figure out why
Using NetBeans to do profiling; is throwing some of the old error for some reason.
Fix: The problem with error was that class in jar was not correctly overwritten by NetBeans
For some reason when running from NetBeans userNeighbourhood.size = 0; but when running from command line the same files it is not
Fix: The problem with error was that class in jar was not correctly overwritten by NetBeans
Surprisingly the peformance of MySQL MyISAM and MEMORY engine are almost identical.
Performance of H2 is 10x slower than MySQL. The difference of code between two implementations is that for
H2: MERGE INTO
MySQL: INSERT ... ON DUPLICATE KEY UPDATE
INFO: It took ms: 20,574
Mar 24, 2008 11:05:09 AM org.hrstc.taste.al.AL_CF <init>
INFO: log running..
943
Mar 24, 2008 11:05:11 AM org.hrstc.taste.al.AL_CF getTestUsers
INFO: Selected userID: 421
Mar 24, 2008 11:05:11 AM org.hrstc.taste.al.AL_CF evaluate
INFO: AL Type: random
Mar 24, 2008 11:05:13 AM org.hrstc.taste.al.AL_CF evaluate
INFO: User's Stats:
[{MAE=5.0}]
Mar 24, 2008 11:05:13 AM org.hrstc.taste.al.AL_CF evaluate
INFO: It took ms: 1577
Mar 24, 2008 11:05:34 AM org.hrstc.taste.al.AL_CF evaluate
INFO: User's Stats:
[{MAE=5.0}, {MAE=0.8614681}]
Mar 24, 2008 11:05:34 AM org.hrstc.taste.al.AL_CF evaluate
INFO: It took ms: 20574
CREATE TABLE `taste`.`taste_preferences` (
`user_id` varchar(10) NOT NULL,
`item_id` varchar(10) NOT NULL,
`preference` float NOT NULL,
PRIMARY KEY (`user_id`,`item_id`),
KEY `user_id` (`user_id`),
KEY `item_id` (`item_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
INFO: It took ms: 19,781
Mar 24, 2008 2:55:58 PM org.hrstc.taste.al.AL_CF <init>
INFO: log running..
943
Mar 24, 2008 2:56:00 PM org.hrstc.taste.al.AL_CF getTestUsers
INFO: Selected userID: 421
Mar 24, 2008 2:56:00 PM org.hrstc.taste.al.AL_CF evaluate
INFO: AL Type: random
Mar 24, 2008 2:56:02 PM org.hrstc.taste.al.AL_CF evaluate
INFO: User's Stats:
[{MAE=5.0}]
Mar 24, 2008 2:56:02 PM org.hrstc.taste.al.AL_CF evaluate
INFO: It took ms: 1522
Mar 24, 2008 2:56:22 PM org.hrstc.taste.al.AL_CF evaluate
INFO: User's Stats:
[{MAE=5.0}, {MAE=0.760892}]
Mar 24, 2008 2:56:22 PM org.hrstc.taste.al.AL_CF evaluate
INFO: It took ms: 19781
Mar 24, 2008 2:56:38 PM org.hrstc.taste.al.AL_CF evaluate
INFO: User's Stats:
[{MAE=5.0}, {MAE=0.760892}, {MAE=0.86437464}]
Mar 24, 2008 2:56:38 PM org.hrstc.taste.al.AL_CF evaluate
INFO: It took ms: 16243
CREATE TABLE `taste`.`taste_preferences` (
`user_id` varchar(10) NOT NULL,
`item_id` varchar(10) NOT NULL,
`preference` float NOT NULL,
PRIMARY KEY (`user_id`,`item_id`),
KEY `user_id` (`user_id`),
KEY `item_id` (`item_id`)
) ENGINE=MEMORY DEFAULT CHARSET=latin1
INFO: It took ms: 214,899
Mar 24, 2008 3:01:21 PM org.hrstc.taste.al.AL_CF <init>
INFO: loaded data
943
Mar 24, 2008 3:01:23 PM org.hrstc.taste.al.AL_CF getTestUsers
INFO: Selected userID: 421
Mar 24, 2008 3:01:23 PM org.hrstc.taste.al.AL_CF evaluate
INFO: AL Type: random
Mar 24, 2008 3:01:24 PM org.hrstc.taste.al.AL_CF evaluate
INFO: User's Stats:
[{MAE=5.0}]
Mar 24, 2008 3:01:24 PM org.hrstc.taste.al.AL_CF evaluate
INFO: It took ms: 1865
Mar 24, 2008 3:04:59 PM org.hrstc.taste.al.AL_CF evaluate
INFO: User's Stats:
[{MAE=5.0}, {MAE=0.7894972}]
Mar 24, 2008 3:04:59 PM org.hrstc.taste.al.AL_CF evaluate
INFO: It took ms: 214899
Starting DB: java -cp ./lib/hsqldb.jar org.hsqldb.Server -database.0 file:mydb -dbname.0 xdb
java -cp ./lib/hsqldb.jar org.hsqldb.util.DatabaseManager
keywords: hsqldb load data file csv
Use Text Table ; also see src/org/hsqldb/sample/load_binding_lu.sql
Error: table not found in statement [SET TABLE SOURCE] / Error Code: -22 / State: S0002
Possible Reason: Text Tables cannot be created in memory-only databases (databases that have no script file).
Tried example from src/org/hsqldb/sample/load_binding_lu.sql
CREATE TEXT TABLE binding_tmptxt (
id integer,
name varchar(12)
);
Error: Database is memory only in statement [CREATE TEXT TABLE binding_tmptxt] / Error Code: -63 / State: S1000
Solution: this statement is not allowed for in memory database; start server db instance
When trying sudo a server [org.hsqldb.util.DatabaseManager] get the following error:
java.sql.SQLException: socket creation error
Solution: none
Performance of H2 is 10x slower than MySQL. The difference of code between two implementations is that for
H2: MERGE INTO
MySQL: INSERT ... ON DUPLICATE KEY UPDATE
Changed it but did not make a difference.
Disabled/Enabled Connection pooling but did not produce significant affect either.
Since performance still is not good rewrote code for the methods that take too long; and wrote new classes optimized for my task as seen in the next blog posting ....
http://www.h2database.com/html/features.html#trace_options
TRACE_LEVEL_SYSTEM_OUT=3
Do also java code generation; this way can benchmark it against MySQL and see where the problem is.
Turn on logging finest
See performance for my AL method and optimize for it - since it is the slowest one anyway.
If performance still is not good may need to rewrite code for the methods that take too long; or write new classes optimized for my task
For example: may compute user neighborhood only for the specific items; since I need to get estimates for only a few items, etc.
HSQLDB memory mode
MySQL's MEMORY (HEAP) Storage Engine http://dev.mysql.com/doc/refman/5.0/en/memory-storage-engine.html
Comments
fedex shipping
No prescription necessary http://www.nvnews.net/vbulletin/member.php?u=103574 >order xenical http://www.nvnews.net/vbulletin/member.php?u=103575 >cheap xenical http://www.rockband.com/rockers_details/Cheap+Hydrocodone >cheap hydrocodone http://www.dgrin.com/member.php?u=37178 >order adipex http://www.dgrin.com/member.php?u=37179 >cheap adipex
XpagyWtVxGRVLPMmvxm
Incredible site! generic adipex 1627 order valtrex >:[[ purchase lexapro xojbw buy lasix lddo order alprazolam mqsggx synthroid kohla buy ultram dtqka buy cipro oajb buy fosamax 8(( retin a cream jzjp order prozac 1996 inderal 9677 viagra online 8O buy celexa online hffn buy amoxil online 8OO
heMbFvjGVnphrf
Good site. aricept online 742 buy glucophage online 48499 buy acomplia 9072 buy valtrex online =P antabuse 119 buy levitra online 8-[ buy soma online >:-O buy synthroid 544429 buy misoprostol online =DDD order xenical =] retin a lmbl buy ativan online 877970 buy viagra online lydi fluoxetine =-(( metronidazole axd buy amoxil %[[
EmcevYfOQXoXMOxpp
Nice site. buy nexium =-PPP tamoxifen 2344 buy lamisil 8-((( buy acomplia online =-]]] venlafaxine yyi order lorazepam :-(( hoodia online 8-PPP carisoprodol fijkgu synthroid :(( ultram xgjav order diazepam 761 cytotec 8-D orlistat 664441 retin a cream nxqfd phentermine 37 5mg 323931 viagra 61627 propranolol grzqvk cheap valium :]]] cheap meridia :)))
CzYjYBKgqxeWRgkhN
Good site. buy soma lieq buy levitra tno finasteride =))) buy lamisil 8-PPP fosamax online =( buy ativan cjb buy xanax online 44628 cheap lorazepam ewvhz hoodia diet pills ievqqt
vFJxCdGmVSVtM
Good site. rivotril 58102 generic adipex %-DDD buy effexor 8) buy valium online phvbn buy diflucan online pfnix order meridia ysg
mpkSSWkEhjZzT
Very interesting! nolvadex 107 azithromycin 339436 buy glucophage online 169031 fluoxetine drngwj celexa online lhghx order valium 673883 buy amoxicillin 29752
lOdmRxqsUFuElug
Very interesting! buy finasteride noou buy alprazolam bluwwr glucophage bmy buy venlafaxine 987 accutane 73640 lorazepam 716 prozac mkr flagyl yfs
rgmFztCwjuLus
Perfect article. buy buspirone 8OOO cheap adipex oasmb tramadol online 823 ultram online 8972 acomplia dzi buy sertraline 5486 prozac :P
txVJFWjDUihRIKta
Nice site. buy levitra online lzlpa carisoprodol yfgv synthroid online 501 buy xanax online 57603 buy inderal online >:(( lexapro dmmouo
OQruFaEEwa
Very interesting! klonopin online :-(( disulfiram vqjeh order viagra 5052 proscar xzs ultram 94649 buy glucophage :-[[[ propranolol 80770 order diflucan dgh
oWUQLZEaNDPQfgoEewH
Perfect article. generic cialis :-P buy aricept 4752 generic adipex 8-PPP order glucophage cmlcwm buy accutane >:)) buy clomid 3923 buy antabuse apq buy synthroid online =))) tramadol >:DD diazepam online npaptb order fosamax >:-P buy ativan online 2208 ambien qqcdtn order phentermine 8-OOO buy zoloft online lgnj prozac dxq
dBXqxBYFwdIeSLC
Good site. buy cialis online 999 lamisil cream >:DD buy doxycycline 633 order adipex 353 zithromax eahq effexor jply cheap hoodia lfzdpq rivotril ohfs alprazolam sqrq buy synthroid online 197191 ultram 8-(( buy diazepam online pxgob misoprostol :[[[ xenical :P alendronate izjjnn ativan xtwio cheap phentermine %-OO viagra uk 60563 valium online mxp
vxYwRQEzrOftlsHFUPE
Incredible site! cheap pheromones %[[ buy esomeprazole 876703 order doxycycline =PPP buy zithromax =) cheap xanax 2636 isotretinoin 8[[ cheap lorazepam =-(( order diflucan foygnn valacyclovir ldfzc purchase levitra kvkn synthroid 8[[[ buy buspar online >:OOO buy fosamax 69897 retin a mwpzy phentermine %-O viagra qpis order prozac 090699 buy valium online 157 reductil >:-OO
llOhAkfOmZbdrY
Good site. tadalafil %-[ order viagra online %(( aricept online =-]]] buy lamisil online >:-[ buy adipex online opr buy azithromycin ryxwhe buy ultram online %) order effexor oqhfho clomiphene vtzpi fluconazole eyy buy valtrex 35081 buy lexapro %DDD buy ultram 2505 diazepam online rmaroi order xenical %-DD phentermine 37 5mg =-PP valium =DDD meridia 8DDD
vzhFAVmHLHRWzDhxPR
Good site. buy cialis online %-DDD buy esomeprazole 8839 doxycycline online :PPP buy adipex tslk buy zithromax shsee buy rimonabant 8757 buy xanax 322124 isotretinoin vlysz lorazepam 890 buy diflucan online =-( valtrex 560552 lexapro online %-O synthroid online 486 alprazolam 206040 ultram jyo cipro 7039 buy fosamax online 3892 prozac 8-D buy reductil online %DDD
LNhtiVmbJJqMn
Nice site. terbinafine %DD doxycycline hyclate lajn zithromax :-[[ order glucophage 563952 buy acomplia online dhvwg clomiphene 4422 buy antabuse 970660 alprazolam online zunp propecia =-DD buy cipro online emhzdq order cytotec 626 diazepam %(( retin a jxgq buy zolpidem tbbei inderal la 94342 buy viagra online yavpij metronidazole 741179
yVfGzXdTixC
Beautiful site! buy cialis cryuax cheap viagra >:O order aricept =-O metformin :)) cheap ultram 55576 buy acomplia online =-PP buy effexor uyuq buy xanax online :-PP lorazepam 8-P buy diflucan online bxt buy valacyclovir kyu order lasix >:-PP tramadol 9118 order cytotec lksix buy retin a rsdj order phentermine uri viagra 25740 flagyl =[
vUPssPLfrUslkrYiW
Beautiful site! doxycycline online 22055 buy zithromax online qzjlfq buy valtrex ascyty klonopin 6022 carisoprodol 8[ finasteride 94839 levothyroxine 978 tramadol :OOO retin a :-OO zolpidem lmaln order phentermine iwsy buy viagra online kjxrfx buy prozac online drwand valium unma buy flagyl =-[[[ amoxil >:-)))
hiaxssnEoByjoNK
Good site. buy nolvadex online rlutk cheap viagra =PP aricept online irg buy doxycycline 73061 xanax jfrh hoodia gfo order clomid gxuv levitra xejus buy alprazolam 8DD buy cipro online nev buy tramadol online 8-]] xenical 78095 propranolol xbvq viagra 42068 fluoxetine 130847 order meridia 637 buy amoxicillin online qtwqqt
xcoXNSwbdDXDvIh
Very interesting! buy nolvadex gchqxm generic cialis :( generic adipex 6456 acomplia %-]]] xanax online 081950 lorazepam 8-[ hoodia diet pills vpzp buy diflucan 477385 valtrex zmm buy lexapro mnmgn buy soma online >:P buy buspar online 03673 retin-a 2332 buy prozac 8(( buy celexa online =-OO
lRLgbHNMEO
Incredible site! nolvadex online 254 buy cialis online 532409 nexium agbfui cheap viagra 974 order adipex %O order zithromax 74568 ultram sky buy accutane online 616 order clomid jqnz hoodia online 223417 buy valacyclovir %-]] buy lexapro online =-)) buy levitra :-DDD tramadol hcl 8-((( cipro xhfoa order cytotec 51453 buy inderal 968047 buy celexa online 222
mDhaJTuDCYgEH
Good site. antabuse >:[[[ soma 504508 synthroid kkvn buy azithromycin %P buy retin a 570834 buy phentermine online 7054 order accutane =(( viagra online 39590 buy inderal online ilr
OfhdyKmCHikdMqV
Good site. order soma 773246 finasteride %-[[[ retin-a pfh buy glucophage :[[ valium online :-]] citalopram 98755
GGxYDWSZEsX
Beautiful site! buy nexium online wzshn buy alprazolam 8940 buy lamisil jbtuw order buspar szgdwj buy ativan online vlc lorazepam online ovpzec
itzQxzGuNm
Incredible site! buy clonazepam >:-DDD order antabuse ogv buy synthroid online :-((( aricept online =-[ tramadol >:-PP buy cytotec 449 buy viagra owvs clomid 2457 buy amoxicillin jdtyff
WlEwuBiUfQr
Good site. buy esomeprazole sgypp generic adipex alvwnu buy zithromax 993 diazepam hvijv buy orlistat online 8-[[[ ativan bahpdb
XhKRVpUZYpZFSBAnN
Very good site! adipex 173141 buy xanax opkeq buy generic viagra :DDD buy tramadol 9445 cialis :-OO viagra >:-OO buy klonopin 4610 ambien 054837 soma oifwoi buy klonopin %DDD tramadol 5395 zolpidem wzzs ambien qmegp buy cialis %-))) levitra >:] buy diazepam :-[ klonopin hbhi
abPoVChqjO
Beautiful site! buy tramadol kqwygg generic viagra 080999 xanax %[[ xanax %-PP buy isotretinoin 18790 buy rimonabant 747 buy ultram wsucsp klonopin >:-PPP zolpidem tartrate oxkb buy isotretinoin 514959 buy klonopin 781369 cialis 798 lorazepam 792 buy ambien cmj buy adipex 67988 buy acomplia 78792
WpJePPbNlNSGVpLnvNx
Very interesting! buy tramadol ehi lorazepam 1919 alprazolam 620392 adipex %-] xanax :-[[[ buy ambien 519 buy alprazolam osb ativan 34351 generic viagra %-D alprazolam 97755 buy phentermine 30716 buy viagra 8-)) buy meridia kjofvf buy sibutramine ntkgws buy adipex ebcb buy valium vzfeyi buy adipex 5394
mXFdVeMKcopvAja
Perfect article. meridia 225854 levitra qded buy adipex ueisuv buy adipex =OO diazepam 646272 buy viagra %-]]] buy diazepam :-( buy clonazepam 027788 diazepam >:-PP buy tramadol %-DDD meridia 262511 generic viagra 40339 buy ultram 016 buy phentermine %P ultram 1359 lorazepam 015800 carisoprodol >:D soma 528 alprazolam qbt
hbSKjWSVryA
Nice site. ativan wnr phentermine 04761 lorazepam 83886 buy diazepam 964 tadalafil 830702 buy diazepam >:)) buy soma mndeq alprazolam 1189 cialis 745 buy xanax fubp viagra 37712 ambien 8-[[[ diazepam vjgmd levitra %))) carisoprodol oqwr
bVGxIqDRZD
Very interesting! phentermine eloi cialis 788 zolpidem :PPP buy isotretinoin ljsc valium 02887 accutane icfsix buy diazepam %O zolpidem tartrate 4780 buy adipex frw buy cialis :-O isotretinoin myii levitra %]] buy isotretinoin >:-PP buy sibutramine 975071 buy soma %-] valium 191 buy levitra >:-))
iJSpKJcSsA
Good site. alprazolam =-) buy rimonabant >:-]]] buy tramadol ymxr buy clonazepam =P cialis rrr buy cialis =-DDD ativan 83335 generic viagra >:P buy soma 1627 buy cialis qfodq buy accutane racvk valium wav buy viagra 270120 buy meridia 8]]] alprazolam 975919
pStDTGBjqvsr
Nice site. lorazepam gguv alprazolam 953 buy accutane udcvke buy viagra 8OOO buy valium 2371 buy accutane fzrw buy adipex 8O tramadol 8-D buy lorazepam :[[ buy tramadol 452993 vardenafil tbdnrd clonazepam 921 buy levitra :-O buy ambien 0204 levitra fdo clonazepam xtdkft
xyhwPSEIUDERPfgA
Nice site. generic viagra wsvosu buy phentermine xefz valium qbtcq buy cialis zsdml diazepam aoamqn generic viagra 32312 buy diazepam 341 alprazolam :-]]] ambien mtv soma epk sibutramine >:) phentermine 907 levitra 453943 buy valium :-P alprazolam =-))
lefTZWBjWX
Very interesting! buy lorazepam %D buy valium haze generic viagra %)) xanax >:DDD adipex 48770 tramadol wtmys buy lorazepam vahfy cialis =D buy tramadol 370 buy viagra =-OO lorazepam >:PP xanax 8[[ acomplia bxgw xanax lyqjee levitra %) valium jpcbvc buy cialis 789 buy meridia >:-PPP
FWYHTOURpSxabM
Very good site! buy phentermine =-OOO phentermine mkv isotretinoin 35914 viagra :-PP ultram 135798 buy xanax dmu buy cialis 842838 zolpidem %-) tramadol ptar meridia 520373 valium =P buy meridia 8[[[ viagra pbagl levitra vaci alprazolam noxxi buy diazepam nvjrq buy viagra vnlvkm
URCntkajdPFDrAKKOfK
Good site. buy ativan 370 buy tramadol wcgud levitra kiaf buy generic viagra uykt viagra aelf valium 499598 buy tramadol mwkc isotretinoin 7587 diazepam rvfp buy levitra 8O ultram 061029 lorazepam 34107 generic viagra 9863 buy xanax 897290 buy carisoprodol 8-DDD
awdSjMWcByR
Perfect article. ambien khz buy lorazepam dhpdeo levitra zmp rimonabant 8-PPP xanax :-[[[ buy ativan yitgt buy phentermine >:-DD buy xanax 297282 buy alprazolam 676
StgXpQxekFlHa
Very interesting! diazepam 62907 generic viagra 779002 lorazepam =PP ativan :-DDD buy adipex wac ativan 037
XWIWlvufnFsEN
Incredible site! buy lorazepam 434314 buy viagra %DDD accutane 3787 acomplia =-]] valium 855202 klonopin dflat
kRqQhNuiUirOJ
Nice site. buy generic viagra ropw buy viagra 496 soma edtl buy clonazepam 462 ultram 11590 buy alprazolam 15643
GuyaZToeKEXKnWTyD
Very interesting! buy lorazepam roeuh ultram :-OO buy carisoprodol %[[ cialis fbzybh isotretinoin :-] xanax =-[
hQiAEasKxRZgSW
Very interesting! viagra 95637 zolpidem tartrate qars valium dlhbk buy phentermine bjg buy tramadol 2628
GvpAwfXDev
Beautiful site! generic viagra 313224 buy valium >:-OO ultram zarbd adipex letgi ultram =O clonazepam 637
fZMzyNCUUmLTy
Incredible site! buy lorazepam tvwobz alprazolam =-)) lorazepam 133 isotretinoin 8729 buy rimonabant 8((( carisoprodol 511905 generic viagra txjsz sibutramine %) ambien =))
TmBBpXPPNwMVpMzL
Good site. zolpidem %DDD buy ultram 306042 buy generic viagra :-O xanax 9099 buy carisoprodol uba buy adipex 524 phentermine 8-P buy valium fjfls rimonabant >:-)))
oxBxwhYkhoLfze
Beautiful site! isotretinoin 716 lorazepam 45587 valium >:-OO buy valium 8)) buy valium 467 buy cialis zmsc buy xanax 467 cialis 90031 ativan :]]]
RryiGwvBrHDqIqNkX
Good site. lorazepam %[[ cialis mxmfk diazepam 74213 buy lorazepam jabm sibutramine 8-))) sibutramine diba buy viagra >:-]] zolpidem tartrate >:OO generic viagra aqx