- 博客(81)
- 资源 (1)
- 收藏
- 关注
转载 Java中数据库连接池原理机制的详细讲解
连接池的基本工作原理 1、基本概念及原理 由上面的分析可以看出,问题的根源就在于对数据库连接资源的低效管理。我们知道,对于共享资源,有一个很著名的设计模式:资源池 (Resource Pool)。该模式正是为了解决资源的频繁分配?释放所造成的问题。为解决上述问题,可以采用数据库连接池技术。数据库连接池的基本思想就是为数据库连接 建立一个“缓冲池”。预先在缓冲池中放入一定数量的连
2014-08-14 18:25:42
574
转载 阿里巴巴常考面试题及汇总答案
个人总结,仅自己学习用。愿与大家一起分享!如有错误请指正。一、String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?答: 1、String是字符串常量,StringBuffer和StringBuilder都是字符串变量。后两者的字符内容可变,而前者创建后内容不可变。2、String不可变是因为在JDK中St
2014-08-11 10:08:38
592
转载 虚拟存储器 与虚拟内存详解
在没有虚拟存储器之前源程序在gcc –o 后生成的文件是可执行目标程序a.out,每条指令都有一个逻辑地址 32位。它存在硬盘上。要执行时,只需找到该文件,将其装入内存。装入的方式可以有多种,比如分页,分段等等。但是,必须将该程序完全装入内存。 分页:将一个进程的逻辑地址空间(32位)分成若干大小相等的页。使用分页方式时有一个问题,必须清楚:
2014-07-12 11:32:17
1082
转载 Linux 编程中的API函数和系统调用的关系
原文地址:Linux 编程中的API函数和系统调用的关系 作者:up哥小号API:(Application Programming Interface,应用程序编程接口) 指的是我们用户程序编程调用的如read(),write(),malloc(),free()之类的调用的是glibc库提供的库函数。API直接提供给用户编程使用,运行在用户态。 我们经常说到的POS
2014-07-12 09:19:41
740
原创 分布式数据库系统
随着业务量的发展,数据库系统有集中式走向分布式是必然选择。1 在介绍分布式系统是先来做一下概念说明:我们自在看分布式数据库的相关知识的时候,常常会看到集群,分布式集群,分布式系统等,其实集群与分布式是有区别的:(1)集群:集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。在客户端看来,一个集群就象是一个服务实体,但事实上集群由一组服务实体组成。与单一服务
2014-07-08 23:20:16
1148
转载 Amoeba for MySQL---分布式数据库Proxy解决方案
Amoeba for MySQL 位于Client、Database Server(s)之间,具有负载均衡、高可用性、sql过滤、可承受高并发、读写分离、Query Route(解析sql query语句,并且根据条件与预先设定的规则,请求到指定的目标数据库。可并发请求多台数据库合并结果)、对客户端透明,能降低数据切分带来的复杂多数据库结构、数据切分规则给应用带来的影响。适用mysql 4.1或者
2014-07-08 23:10:27
691
转载 大型分布式数据库应用的案例
1 背景我们知道数据是一个公司的命脉,随着业务越做越大,数据量也会越来越大,计算也会越来越复杂,性能,可靠性,可扩展性的需求就会越来越强烈,这个时候一个集中式的数据库显然已经满足不了需求了。对于技术决策者来说有两条路可以走,第一:按照现有的大型数据库的解决方案,比如SQL SERVER Cluster或者Oracle RAC等,但是这也就等于走上了一条烧钱的道路,小则几十万,大则上
2014-07-08 23:08:07
3433
转载 浅谈mysql集群
一、什么是MySQL集群 MySQL集群是一个无共享的(shared-nothing)、分布式节点架构的存储方案,其目的是提供容错性和高性能。 数据更新使用读已提交隔离级别(read-committedisolation)来保证所有节点数据的一致性,使用两阶段提交机制(two-phasedcommit)保证所有节点都有相同的数据(如果任何一个写操作失败,则更新失败)
2014-07-08 23:07:48
527
转载 可扩展的分布式数据库架构
本文发表在《程序员》杂志2010年第6期引 言数据库的可用性和扩展性一直是数据库厂商和用户最关注的问题。过去我们采用高端的设备,比如使用小型机和大型存储来保证数据库的可用 性。而扩展性主要采用向上扩展(Scale up)的方式,通过增加CPU,内存,磁盘等方式提高处理能力。这种集中式数据库的架构,使得数据库成为了整个系统的瓶颈,已经越来越不适应海量数据对计 算能力的巨大需求。近些年来,
2014-07-08 23:04:50
652
转载 分布式数据库概述
1.前言随着传统的数据库技术日趋成熟、计算机网络技术的飞速发展和应用范围的扩充,数据库应用已经普遍建立于计算机网络之上。这时集中式数据库系统表现出它的不足:数据按实际需要已在网络上分布存储,再采用集中式处理,势必造成通信开销大;应用程序集中在一台计算机上运行,一旦该计算机发生故障,则整个系统受到影响,可靠性不高;集中式处理引起系统的规模和配置都不够灵活,系统的可扩充性差。在这种形势下,集中
2014-07-08 22:08:53
1086
转载 从分布式数据库结构入手讲解其前世今生
由于分布式数据库克服了集中式数据库的许多缺点,并且自然地适应于许多单位地理上分散而逻辑上统一的组织结构,因此,20多年以来从理论到实践都得到了迅速发展,并取得了决定性成果。 分布式数据库结构 分布式数据库的典型定义是:分布式数据库是一个数据集合,这些数据在逻辑上属于同一个系统,但物理上却分散在计算机网络的若干站点上,并且要求网络的每个站点具有自治的处理能力,能执行本地的应用。每
2014-07-08 22:07:40
690
转载 淘宝小故事:一个大型MySQL分布式系统诞生
在淘宝,有一个业务系统,在一年半以前,这个业务系统很小,访问量很低,相关的表跟核心数据库放在一起,后来由于产品升级,新产品的许多功能很受会员的喜爱,会员大量使用,很快就对核心数据库造成了相当程度的IOPS冲击与威胁,也迅速消耗着核心存储的空间,为了不影响淘宝的核心业务,我们将此业务相关的表迁移出了核心库,创建了一个独立的ORACLE数据库,这种拆分数据库的方式,就是大家常说的垂直拆分。这种拆分
2014-07-08 21:30:10
704
转载 集群与分布式的区别
集群:集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。在客户端看来,一个集群就象是一个服务实体,但事实上集群由一组服务实体组成。与单一服务实体相比较,集群提供了以下两个关键特性:· 可扩展性--集群的性能不限于单一的服务实体,新的服务实体可以动态地加入到集群,从而增强集群的性能。· 高可用性--集群通过服务实体冗余使客户端免于轻易遇到o
2014-07-08 21:13:39
587
转载 分析Redis架构设计
一、前言因为近期项目中开始使用Redis,为了更好的理解Redis并应用在适合的业务场景,需要对Redis设计与实现深入的理解。我分析流程是按照从main进入,逐步深入分析Redis的启动流程。同时根据Redis初始化的流程,理解Redis各个模块的功能及原理。二、redis启动流程1.初始化server变量,设置redis相关的默认
2014-07-07 23:21:16
494
转载 memcached实现多个web应用session共享
memcached是一个Client Server结构的远程Cache实现。Server是用C写的,提供了多种语言的客户端API,包括Java, C#, Ruby, Python, PHP, Perl, C等多种语言。memcached主要使用在Shared Nothing Architecture中。应用程序通过客户端API,从memcached server存取数据。典
2014-07-07 23:07:20
2005
转载 高扩展Web应用HTTP Session共享方案
在构建能够灵活地进行水平扩展、高可用性的Java Web应用程序时候,对http session的处理策略很大程度决定了应用程序的扩展性、可用性。一般而言对http session有如下的处理方案:1、在服务器端不保存Session,完全无状态 对于不需要保持用户状态的Web应用,采用Stateless是最为恰当的,因此就不存在Session共享的问题。REST (Repr
2014-07-07 22:57:10
1490
转载 浅谈数据库中的存储过程
一、存储过程与函数的区别: 1.一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。 2.对于存储过程来说可以返回参数(output),而函数只能返回值或者表对象。 3.存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一个部分来调用,由于函数可以返回一个表对象,因此它可以在查询语句中位于FROM关键字的后面。 二、存
2014-07-06 20:33:04
509
转载 数据库中函数和存储过程的区别
先看一下存储过程和函数的定义。存储过程:存储过程可以使得对数据库的管理、以及显示关于数据库及其用户信息的工作容易得多。存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。存储过程可包含程序流、逻辑以及对数据库的查询。它们可以接受参数、输出
2014-07-06 20:31:54
408
转载 数据库中视图的作用
最近在做一个功能,是和别的项目组一起合作的。背景:现在要做一个用户管理的系统,需要我们提供服务来实现和原始数据库的兼容,但是现在我们的数据库和网站数据库中存储的内容或者说是字段有些不同,但是我们还是希望可以的话,将改动降低到最小,当然,这只是我的初步了解,现在具体的情况还没有很了解,为了这方面的应用,上网了解了一下数据库的相关操作,了解到“视图”是个比较有利的武器可以解决这个问题。
2014-07-06 19:07:10
592
转载 理解MySQL——架构与概念
写在前面:最早接触的MySQL是在三年前,那时候MySQL还是4.x版本,很多功能都不支持,比如,存储过程,视图,触发器,更别说分布式事务等复杂特性了。但从5.0(2005年10月)开始,MySQL渐渐步入企业级数据库的行列了;复制、集群、分区、分布式事务,这些企业级的特性,使得现在的MySQL,完全可以应用于企业级应用环境(很多互联网公司都用其作为数据库服务器,尽管节约成本是一个因素,但是没有强
2014-07-05 10:09:07
444
转载 配置对位于网络地址转换(NAT)后方的服务的访问
配置对位于网络地址转换(NAT)后方的服务的访问欲了解关于The Cable Guy所主持的所有专栏的列表和更多信息,请点击此处。网络地址转换(NAT)是RFC 1631和2663中定义的一种IP路由器,它能够在转发数据包时转换它们的IP地址和TCP/UDP端口号。对于传出的数据包,源IP地址和TCP/UDP端口号被映射到一个公共源IP地址和一个可能被改变的TCP/IP端口号。对于传入
2014-06-27 20:51:19
943
转载 IP地址的分类——a,b,c 类是如何划分的
现在的IP网络使用32位地址,以点分十进制表示,如172.16.0.0。地址格式为:IP地址=网络地址+主机地址 或 IP地址=主机地址+子网地址+主机地址。 IP地址类型 最初设计互联网络时,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等
2014-06-26 10:05:36
673
转载 TopK算法及实现
1. 问题描述 在大规模数据处理中,常遇到的一类问题是,在海量数据中找出出现频率最高的前K个数,或者从海量数据中找出最大的前K个数,这类问题通常称为“top K”问题,如:在搜索引擎中,统计搜索最热门的10个查询词;在歌曲库中统计下载率最高的前10首歌等等。2. 当前解决方案 针对top k类问题,通常比较好的方案是【分治+trie树/hash+小顶堆】,即先将数据集按照h
2014-06-22 16:03:25
4554
转载 海量数据库的查询优化及分页算法方案
随着“金盾工程”建设的逐步深入和公安信息化的高速发展,公安计算机应用系统被广泛应用在各警种、各部门。与此同时,应用系统体系的核心、系统数据的存放地――数据库也随着实际应用而急剧膨胀,一些大规模的系统,如人口系统的数据甚至超过了1000万条,可谓海量。那么,如何实现快速地从这些超大容量的数据库中提取数据(查询)、分析、统计以及提取数据后进行数据分页已成为各地系统管理员和数据库管理员亟待解决的难题。
2014-06-16 23:20:39
469
转载 Top K算法详细解析—百度面试
问题描述:这是在网上找到的一道百度的面试题:搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。假设目前有一千万个记录,这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个。一个查询串的重复度越高,说明查询它的用户越多,也就是越热门。请你统计最热门的10个查询串,要求使用的内存不能超过1G。问题解析:
2014-06-16 22:10:25
607
原创 递归算法的时间复杂度分析
在算法分析中,当一个算法中包含递归调用时,其时间复杂度的分析会转化为一个递归方程求解。实际上,这个问题是数学上求解渐近阶的问题,而递归方程的形式多种多样,其求解方法也是不一而足,比较常用的有以下四种方法:
2014-06-16 17:32:09
2083
转载 9种排序算法总结
排序算法可以说是计算机专业学生要学习的最基础的算法,但其实也是最重要的,现在大部分互联网公司笔试面试也都会涉及到排序算法的知识。除了了解思想之外,还应该动手写一写,分析一些具体思路、时间复杂度、空间复杂度和稳定性等。我们面试讨论小分队也简单讨论了一下排序算法,为了加深记忆,我自己也动手写了一些代码(Linux平台写的,自己测试是通过了),并做一些分析(由于水平较水,代码可能有误!)。
2014-06-12 21:31:39
522
转载 外部排序
在网上找了不少的资料,不够全面也不够清楚,这里组合和修改一下两份资料,将外部排序中过程详细的介绍下参考网址(http://www.cnblogs.com/songQQ/archive/2011/02/22/1961071.html and http://chenkegarfield.blog.163.com/blog/static/62330008200910249526638/)
2014-06-11 23:28:16
516
转载 10种排序算法总结
排序算法经过了很长时间的演变,产生了很多种不同的方法。对于初学者来说,对它们进行整理便于理解记忆显得很重要。每种算法都有它特定的使用场合,很难通用。因此,我们很有必要对所有常见的排序算法进行归纳。 我不喜欢死记硬背,我更偏向于弄清来龙去脉,理解性地记忆。比如下面这张图,我们将围绕这张图来思考几个问题。 上面的这张图来自一个PPT。它概括了数据结构中的所有常见
2014-06-11 23:14:45
543
转载 数据结构之优先队列--二叉堆(Java实现)
前言 数据结构队列的学习中,我们知道队列是先进先出的。任务被提交到队列中,按照先进先出的原则 对各个任务进行处理。不过在现实的情况下,任务通常有着优先级的概念,例如短任务、管理员的操作 应该优先执行。这是使用队列就无法描述了,这种特殊的应用我们使用一种称之为优先队列(堆)的方式 来解决。 优先队列
2014-06-11 16:15:36
563
转载 B树的java实现
B树是为磁盘或其他直接存取辅助存储设置而设计的一种平衡查找树。其能够有效降低磁盘I/O操作次数。许多数据库系统使用B树或B树的变形来储存信息。清明节这几天闲来无事,参考《算法导论》第二版第十八章的思想使用java语言实现了一颗简单的B树,在此跟大家分享下,就当是抛砖引玉,欢迎大家跟我讨论。[java] view plaincopypackag
2014-06-10 21:39:29
1130
转载 java实现红黑树
红黑树是一种经典的数据结构,在linux内存管理、nginx 等很多地方用到它。主要操作包括插入、删除,其中插入6种情况,删除8种情况,详细的思路就不说了,如果不太明白的请参考算法导论13章,看的时候一定要把每一种插入、删除的情况在纸上自己画出来,这样会节省你很多时间。下面是java实现的代码:[java] view plaincopy
2014-06-10 20:40:54
465
转载 OLAP 和数据挖掘的关系
从技术角度看,商务智能的过程是企业的决策人员以企业中的数据仓库为基础,经由数据挖掘工具、联机分析处理工具加上决策规划人员的专业知识,从数据中获得有用的信息和知识,帮助企业获取更多的利润。 数据仓库是一个用以更好地支持企业或组织的决策分析处理的的数据集合,它有面向主题、集成、相对稳定、随时间不断变化四个特性,将数据仓库与传统的面向事务处理的数据库区分开来。数据仓库的关键技术包括数据的抽
2014-05-29 16:37:12
1000
转载 IO - 同步,异步,阻塞,非阻塞 (亡羊补牢篇)
当你发现自己最受欢迎的一篇blog其实大错特错时,这绝对不是一件让人愉悦的事。《 IO - 同步,异步,阻塞,非阻塞 》是我在开始学习epoll和libevent的时候写的,主要的思路来自于文中的那篇link 。写完之后发现很多人都很喜欢,我还是非常开心的,也说明这个问题确实困扰了很多人。随着学习的深入,渐渐的感觉原来的理解有些偏差,但是还是没引起自己的重视,觉着都是一些小错误,无伤大雅。直到
2014-05-28 21:34:22
571
转载 tcp/ip协议栈实现机制
CSDN lidp http://blog.csdn.net/perfectpdltcp/ip协议栈属于操作系统内核层,通过提供系统调用供用户空间访问,从数据报到达最底层的网卡到最终传递给上层软件有一个过程,当一个数据报到达时网络驱动程序把数据报放到一个队列中,同时发送一个消息给ip进程,这里ip进程是一个独立的程序,专门处理ip数据报,tcp/ip协议栈中,根据协议的功能及
2014-05-27 21:23:36
1395
转载 tomcat中StandardContext
一个上下文容器(Context)代表一个web应用,每一个上下文包括多个包装器(Wrapper),每个包装器代表一个Servlet上下文还需要其它的一些组件如加载器和管理器Context接口的标准实现,org.apache.catalina.core.StandardContext类StandardContext配置创建一个StandardContext实例之后,必须调用它的s
2014-05-25 19:24:39
779
转载 JSF生命周期总结
JSF实现使用一个控制器servlet 来处理请求,然后执行 JSF 生命周期.如图显示了JSF 生命周期中的事件处理。 上图是正常的JSF组件的生命周期.一共12个.2.2 请求处理生命周期已经谈过JSF如何使用组件、事件、监听器和其他一些优雅的概念来简化Web开发。这也正是此节是关于处理请求的原因。为了使你理解框架是如何掩藏底层对 Servlet AP
2014-05-25 15:47:31
1157
转载 tomcat配置文件web.xml与server.xml解析--重要
Web.xml里主要的内容: 关于servlet的定义: default org.apache.catalina.servlets.DefaultServlet debug 0
2014-05-25 15:35:30
605
转载 TOMCAT原理以及处理HTTP请求的过程、ContextPath ServletPath
一、TOMCAT1 - Tomcat Server的组成部分 1.1 - Server A Server element represents the entire Catalina servlet container. (Singleton) 1.2 - Service A Service element represents the combination
2014-05-25 15:33:42
791
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人